Stap 7: Een Closer Look op servo.py
De python code om te controleren de servo's is vrij ongecompliceerd, zolang u Python begrijpt. Persoonlijk, ik ben niet zozeer een fan van deze taal, maar dat is naast het punt. U kunt lezen samen met dit exemplaar van het servo.py bestand op GitHub.
Net als in de code van Java, u moet zetten uw persoonlijke PubNub publiceren en abonneren sleutels in hier, evenals de naam van uw communicatiekanaal.
De Pi doet het volgende bij het opstarten:
- De bestuurder met AVR-matrix als resetcircuit.
- Initialiseren van de PubNub met uw sleutels
- Abonneer je op het PubNub-kanaal "leap2pi"
- Eeuwig, het controleren van een uitvoer-modus-schakelaar (meer hierover in een minuut)
Onder de motorkap, is de PubNub-bibliotheek verwerken van al het harde werk. Deze abonneren oproep zorgt voor alles, we moeten alleen een paar retouraanroepen opgeven - dit zijn de functies die worden aangeroepen wanneer een gebeurtenis plaatsvindt.
#Subscribe naar subchannel, stel callback functie op _callback en set fout fucntion te _error pubnub.subscribe (kanalen = kanaal, terugbellen = _callback, fout = _error, verbinden = _connect, opnieuw = _reconnect, verbreken = _disconnect)
Callbacks met betrekking tot de verbinding zou duidelijk moeten zijn (verbinden, verbinding, enz), maar degene die het meeste werk doet is de toepasselijk genaamde "terugbellen" callback. Deze functie doet eigenlijk iets met de boodschap die we van de geplaatste zender ontvangen. Zoals hierboven vermeld, heeft het vak een paar uitvoer modi geselecteerd door een schuifschakelaar verbonden met een paar lijnen van IO.
- SPIEGEL - de bots zal spiegel je bewegingen; Vandaar, uw linkerhand omgekeerd bepaalt de juiste bot
- Lichamelijk gehandicapten - zullen de servo's niet reageert
- KLOON - de bots zal kloon uw bewegingen; Vandaar regelt uw linkerhand rechtstreeks de linker bot
De logica voor deze modi evenals de I2C drijvende verklaringen worden behandeld in de _callback functie.
Het alleen andere item voor note in dit bestand is het gebruik van GPIO pin 4 als uitgang. Deze pin is het besturen van de poort van een MOSFET die een matrix van blauwe LED's met grond verbindt. Deze pin is ingeschakeld op een verbinding met PubNub, zodat de LED's als een indicator van de verbinding fungeren. Dit is een zeer belangrijk aspect van headless opstellingen - moet er een indicatie om te weten dat we succesvol verbonden zijn met het internet!