Stap 3: De Firmware Flash
De code is vrij eenvoudig.
We hebben een RS232 (seriële) interface menu voor het configureren van de I2C adres, zachte limieten op de sensor, de motorsnelheid en de standaard post. Allermeest naar de firmware is gekoppeld dat seriële interface menu. Gebruik een USB naar RS232 TTL apparaat zoals een FTDI chip te knipperen uw Arduino Pro Mini, de seriële terminal zal vervolgens tonen u het menu voor configuratie.
De echte logica is in "uitwijken", deze routine maatregelen de positie van de sensor en voer vervolgens de motoren tot tweemaal de snelheid die aangegeven "catch-up" naar de andere kant.
Voor I2C hebben we twee subroutines, receiveEvent wordt aangeroepen wanneer gegevens aankomen voor de Arduino op de I2C-bus. RequestEvent treedt op wanneer de aanvraaggegevens van een I2C-apparaat van de Arduino met de SwerveSteerTwoTone.
EEPROM gebruiken we voor het opslaan van de instellingen, zodat het apparaat de instellingen herinneren kan wanneer deze is uitgeschakeld. U kunt dit beschouwen als een harde schijf voor de Arduino. Herinner me er slechts zeer weinig bytes.
Slimme beet van deze code is met behulp van de functie Testsignaal maken een consistente timer voor het genereren van twee verschillende frequenties voor de twee stappenmotoren. Om dit te doen de Toon functie uitvoer op Pin 2 en sinds Pin 2 is ook Int 0 veranderingen in Int 0 en roep vervolgens de interrupt handler "intHandler". intHandler controleert dat als de pin voor de stepper motor moet worden van een knevel gevoorzid, het doet dit voor twee pinnen.
Dit alles zou is meer elegante maar dit een goede manier om het maken van de inkapseling van de beweging van de voet weg van de rest van de code voor de robot.
Tot slot een laatste opmerking. Wij zijn sterk gelovigen in "Het eenvoudigste ding dat kon misschien werk." dus het is mogelijk dat deze code in sommige gevallen mislukken zal of sneller of hebben schonere consistenter timing kon worden geschreven. Maar dit is de eenvoudigste we dachten dat het zou werken. En het lijken te werken zoals verwacht.