IoT rörelse kontrollerad servon (7 / 10 steg)
Steg 7: En närmare titt på servo.py
Python-koden att kontrollera servon är ganska rakt fram, så länge du förstår Python. Personligen, jag är inte så mycket ett fan av detta språk, men som är ovidkommande. Du kan läsa denna en kopia av servo.py filen på GitHub.
Precis som i Java-kod, måste du lägga din personliga PubNub publicera och prenumerera på nycklar i här, samt namnet på din kommunikationskanal.
Pi kommer att göra följande på boot:
- Återställa styrkrets AVR matris.
- Initiera PubNub med dina nycklar
- Prenumerera på PubNub kanal "leap2pi"
- Slinga för evigt, kontrollera en output mode-omkopplaren (mer om detta i en minut)
Under huven hanterar PubNub biblioteket allt hårt arbete. Här en prenumerera på samtal tar hand om allt, vi behöver bara ange några callbacks - detta är funktioner som anropas när en händelse sker.
#Subscribe till subchannel, inställd på callback funktion _callback och Ställ in fel fucntion till _error pubnub.subscribe (kanaler = kanal, återuppringning = _callback, fel = _error, ansluta = _connect, återansluta = _reconnect, koppla bort = _disconnect)
Callbacks för anslutningen bör vara uppenbart (ansluta, återansluta, etc), men det som gör mest arbete är passande namnet "callback" callback. Denna funktion faktiskt gör något med det meddelande som vi får från den tecknade kanalen. Som nämnts ovan, har i rutan ett par utgångslägena valts av en slide switch ansluten till några IO rader.
- SPEGEL - robotar kommer att spegla dina rörelser; Hejduk, vänster hand omvänt styr rätt bot
- FUNKTIONSHINDER - kommer servon inte svarar
- KLON - robotar kommer att klona din rörelser; därav styr vänster hand direkt vänster bot
Logiken för dessa lägen samt I2C drivande uttalanden hanteras i _callback funktion.
Den bara andra punkten att notera i denna fil är användningen av GPIO stift 4 som en utgång. Detta stift driver utfärda utegångsförbud för av en MOSFET som ansluter en matris med blå lysdioder till marken. Denna pin är aktiverat på en anslutning till PubNub, så lamporna fungerar som en symbol för anslutning. Detta är en mycket viktig aspekt av huvudlösa inställningar - det måste finnas en indikation att veta vi har blivit ansluten till internet!