Stap 5: De Software
De software draait op de Arduino is zeer ongecompliceerd. Maar eerst, het vermeldenswaard het volgende:
- De ArduImu heeft een seriële communicatiepoort. De Arduino ontvangt seriële pakketten van de IMU die vervolgens decodeert en vertaalt in numerieke waarden ter aanduiding van de oriëntatie van de Raad van bestuur. Dit deel van de code zou moeten worden gewijzigd als u andere IMU, speciaal als u ervoor kiest een IMU die met I2C of SPI communiceert.
- De NeoPixel library is ontwikkeld door Adafruit, en het is zeer makkelijk te gebruiken. Hier is het leerprogramma.
De arduIMU was niet gemakkelijk te installeren, maar deze tutorial sociaal assistente alot. De code op die pagina gedeeld had wat problemen, laten we aannemen dat het was vanwege de firmware-versie wordt uitgevoerd op de ArduIMU. Na wat het zuiveren werkte het keurig.
De lichte nib heeft 2 schakelaars voor interactie met de gebruiker en zet hem in- of uitschakelen.
Wat de software doet is:
- Tijdens de installatie configureert de code: de Input-pinnen om te lezen de schakelaars, de seriële poort gegevens kunnen ontvangen van de ArduiIMU v3 en de pennen waarmee de NeoPixel.
- Eenmaal in de lus-sectie van de code:
- De readPacket() functie ontvangt en controleert of de code van de IMU ontvangen. Het resultaat is true als het pakket geldig, false anders is.
- Wanneer een geldig pakje heeft ontvangen, gelezen en de staat van de schakelopties met de functie ReadInputs(). Deze functie geeft een opsomming van alle mogelijke combinaties van de schakelaars. Voor twee switches, de totale combinaties zijn 2 ^ 2 = 4. De opsomming begint met 0, dit toont alle schakelaars zijn uitgeschakeld, dit wordt gebruikt om te schakelen de LEDs.
- De combinaties is gedecodeerd met behulp van een instructie switch, afgezien van de weg staat, er zijn 3 meer combinaties gebruikt om andere patronen van de lichte nib trigger.
- Zodra het bijbehorende patroon heeft opgesteld over de LED's, wordt de lus weer gestart.
U kunt zoveel schakelopties die u wilt activeren de verschillende lichteffecten hebben. Het toevoegen van een derde zou geven u de mogelijkheid om 2 ^ 3 = 8 mogelijke combinaties. Maar duwen dat veel knoppen tijdens het tekenen moeilijk kan zijn, maar nog steeds een mogelijkheid. Het stroomschema gekoppeld aan deze stap wordt beschreven wat er is besproken.
Het Zip-bestand bevat drie mappen voor u schetsboek directory:
- ReadBinaryArduIMUV3-de code om te ontvangen en decoderen van de pakketten van de ArduIMU in de Arduino.
- NeoPixelTest - de code gedeeld door Adafruit aan de slag met NeoPixel. De NeoPixel library is niet inbegrepen.
- LightNib-de volledige code om de lichte nib uitgevoerd, met behulp van de hardware beschreven hier.