Stap 1: Begrijpen waarom het niet direct uit de doos werkt
Als een Grove Seeed Motorschild is aangesloten op een Intel Edison Arduino Breakout board met zijn standaard configuratie "out of the box", zullen slechts één gelijkstroommotor controleerbaar door de standaard motor demo Arduino schetsen.
Ik merkte dat een reboot van de motor schild in een korte draai van de tweede DC-motor resulteren zou. Het zou alleen verplaatsen eens, ondanks de lus van de schets herhaaldelijk probeert te rijden de motoren in wisselende richtingen.
Aansluiten van een stappenmotor en laden van een stepper besturingselement schets zou leiden tot geen beweging motor helemaal. Ik gebruikte een Arduino Uno om te bevestigen dat de motor shield, motoren en demo schetsen op oorspronkelijke Arduino hardware werkten. De controleproblemen waren iets specifiek voor de Intel Edison Arduino-emulatie.
Gezien het feit dat slechts één van de twee DC-motoren was reageren op controle ingangen, probeerde ik verschillende bewerkingen van de schets in een poging om het ruilen tussen de twee motoren probleem te hebben. Ik heb aangepast de gelijkstroommotoren besturingselement schets te wijzigen van de volgorde in staat stellen pinnen zijn bijgewerkt, en de vertragingen tussen toewijzingen en gebruik van de pinnen. Alle tevergeefs.
Ik heb een V1 en een V2 versie van het Seeed Motor Control schild. De V2 versie was voor meer hulp bij het debuggen van het probleem van de controle. De V2 motor schild heeft LED-lampjes voor de motor inschakelen van lijnen. De V1 beschikt niet over die indicatoren. Met behulp van de V2-shield kon ik zien dat één van de lijnen van de motor inschakelen nooit over te naar actieve schakelen was.
Ik investeerde een heleboel tijd opsporen van internet vermeldingen van de onverenigbaarheid van de Grove Seeed Motor schilden met de Intel Edison. Beschrijvingen van problemen werden gevonden, maar geen verwijzingen naar oplossingen opgedoken. Enkele suggesties voor het aanpassen van de GPIO pin timing werden geprobeerd, zonder succes.
Het was niet totdat ik vond de Edison Arduino Breakout board hardware guide die een kruimel brood op het spoor naar het antwoord werd gevonden.
https://communities.Intel.com/servlet/JiveServlet/...
De eerste aanwijzing was in de documentatie voor een blok van jumpers PWM gemarkeerd op het bord breakout. Deze set van 10 pins met 4 2-pins jumpers wordt beschreven als de PWMSwizzler. Het bepaalt welke 4 van de 6 standaard Arduino PWM pinnen zijn actief op het Edison Arduino Breakout board. Slechts 4 van de normale 6 PWM pinnen zijn beschikbaar voor een bepaalde hardware-configuratie van de breakout board. Alhoewel er PWM ~ merken ook naast alle 6 pinnen op de breakout board, niet alle van deze pinnen kan zijn actief op hetzelfde moment.
De configuratie van de fabriek van de Arduino Breakout board kan PWM pinnen 3, 5, 6 en 9. Het PWM-10 en 11 pins zijn inactief.
Herziening van de gegevensbladen Grove Seeed Motor Shield blijkt dat de schilden pinnen D8 via D13 gebruiken.
http://www.seeedstudio.com/wiki/Motor_Shield_V1.0
http://www.seeedstudio.com/wiki/Motor_Shield_V2.0
Het was steeds duidelijk dat de standaardconfiguratie van de hardware voor de Arduino Breakout board niet met het Seeed Motor schild praten zou omdat de D10 en D11 pinnen niet actief waren.