Die verder gaan dan StandardFirmata - ondersteuning voor nieuwe apparaten toe te voegen (2 / 10 stap)

Stap 2: Opgeven en ontwerpen van de nieuwe PyMata API en verslaggever methode Interfaces


Met behulp van de openbare interface van Stepper.h als een gids, kunnen we beginnen met de PyMata , stappenmotor API en verslaggever methode interfaces ontwerpen.

Eerste plaats moeten wij een methode die zal instrueren de seriële bibliotheek om te instantiëren van een motor-object. Laten we deze methode aanroepen, stepper_config, en gelijkaardig aan van de bibliotheek van de stepper constructeurs, wij zullen toestaan dat de beller te geven van het aantal stappen per omwenteling, evenals een lijst van motorische controle pinnen te verstrekken. Deze lijst, bij de bellers optie, zal bevatten 2 pin waarden voor een motor 2 dirigent of 4 voor een motor 4 dirigent.

Hier is de handtekening voor de API methode stepper_config.

 def stepper_config(self, steps_per_revolution, stepper_pins): """ Configure stepper motor prior to operation. steps_per_revolution: number of steps per motor revolution stepper_pins: a list of control pin numbers - either 4 or 2 """ 

Verwijst naar Stepper.h, biedt de bibliotheek verschillende methoden om de snelheid van de motor te verplaatsen van de motor en een bepaald aantal stappen.

Onze PyMata interface zal moeten hetzelfde te doen, maar we willen maken van een ontwerpbesluit en het combineren van beide bewerkingen in één methode.

We zullen de naam van deze methode stepper_step en haar handtekening API is hieronder weergegeven.

 def stepper_step(self, motor_speed, number_of_steps): """ Move a stepper motor for the number of steps at the specified speed motor_speed: 21 bits of data to set motor speed number_of_steps: 14 bits for number of steps & direction positive is forward, negative is reverse """ 

We moeten ook zorgen voor een methode als u wilt dat de gebruiker de Stepper Motor bibliotheek versie aan te vragen. Omdat asynchrone Firmata rapportage, zullen we kunnen afzonderlijke methoden voor het verzenden van het verzoek van de versie aan de Arduino, en voor het ophalen van het antwoord. Beide methoden zijn onderdeel van de openbare API.

De aanvraagmethode zal hebben de volgende API handtekening:

 def stepper_request_library_version(self): """ Request the stepper library version from the Arduino. To retrieve the version after this command is called, call get_stepper_version(). """ 

Alvorens de bespreking van de laatste methode van de API, moeten we specificeren de handtekening van de methode van de verslaggever die de data van de Arduino naar de client verzonden verwerkt. Deze gegevens zijn in de vorm van twee 7 bit bytes die worden samengevoegd moeten tot het versienummer van de bibliotheek die door de client worden opgeslagen.

 def stepper_version_response(self, data): """ This method handles a stepper library version message sent from the Arduino and stores the value until the user requests its value using get_stepper_version() data -Two 7 bit bytes that contain the library version number """ 

De resultaatwaarde van de Arduino in het bericht van de stepper_version_response worden intern opgeslagen door PyMata. Als u wilt de waarde ophalen, roept de gebruiker de get_stepper_version API methode. Als u wilt toestaan voor de overdracht van de gegevens van de Arduino en doorlooptijden, is een maximum wacht tijdparameter opgegeven. De standaardwaarde voor deze parameter is 20 seconden. Als de antwoorden van de Arduino voordat de maximumtijd verloopt, de waarde zal onmiddellijk worden geretourneerd en wordt de timer geannuleerd. De handtekening voor deze methode is:

 def get_stepper_version(self, timeout=20): """ timeout: specify a max time to allow arduino to process and return the version the stepper version number if it was set. """ 

Een belangrijke opmerking

Alle PyMata "command" methoden worden toegepast in pymata.py. Dus wanneer we stepper_config, stepper_step, stepper_request_library_version en get_stepper_version code, zullen ze alle worden toegevoegd aan pymata.py.

Alle "verslaggever berichten" afkomstig uit de Arduino worden verwerkt door pymata_command_handler.py. Daarom zal de uitvoering van stepper_version_response naar dat bestand worden toegevoegd.

Gerelateerde Artikelen

Die verder gaan dan de HORIZON met LoRa RF1276

Die verder gaan dan de HORIZON met LoRa RF1276

Ik heb gevonden RF1276 Transceiver te leverende meest opmerkelijke prestaties in termen van signaalbereik en kwaliteit. Op mijn eerste vlucht was ik in staat tot 56km afstand op - 70dB signaalniveau met kleine kwart golflengte antennes.Stap 1: BOM (r
Help en ondersteuning voor Yahoo E-mail problemen vandaag Contact nummer

Help en ondersteuning voor Yahoo E-mail problemen vandaag Contact nummer

Yahoo E-mail is een's werelds meest prominente e-mail beheer met een groot aantal records van de klant in aanwezigheid. Nog wat kunnen overreden problemen geïdentificeerd met Yahoo E-Mail waren we in komt. Onze gecertificeerde specialisten probleem a
Het afstellen van de Ember afdrukinstellingen voor nieuwe harsen

Het afstellen van de Ember afdrukinstellingen voor nieuwe harsen

Heb je een nieuwe hars uw willen proberen met behulp van in de Ember printer, of is een bijzonder afdrukken waardoor u problemen? In beide gevallen is er een goede kans dat het veranderen van de standaard afdrukparameters u toelaten zal om betere res
Gebruikt rotoren prepping voor nieuwe Pads

Gebruikt rotoren prepping voor nieuwe Pads

nu als de titel van dit niet duidelijk genoeg ik weet niet hoeveel meer ik kan u helpen =)Deze techniek kan niet alleen worden gebruikt voor nieuwe pads, maar ook om te proberen andere problemen diagnosticeren die u zou kunnen hebben met uw huidige r
De externe auto die kan gaan enywhere

De externe auto die kan gaan enywhere

dit is een auto die kan gaan waar je maar aan het wilt water, land en veel meer plaatsen!!om deze auto de dingen die je zal nodig zijn:-1.a oude auto die het motor van de achterwielen en front draaien motor heeft2. ubehoefte 2 van 9 volt batterijen3.
Hoe te te herbouwen van een Dana-Spicer transmissie voor een Lil' Gasser 7 1/2 "meten van 1 1/2" schaal locomotief

Hoe te te herbouwen van een Dana-Spicer transmissie voor een Lil' Gasser 7 1/2 "meten van 1 1/2" schaal locomotief

dit ' Ible "brengt u door de stappen te demonteren, indien nodig te repareren, inpakken en monteer een kleine F-N-R transmissie voor een Cannonball schaal ride-on locomotief, aangedreven door een kleine benzinemotor. De kleine gele locomotief is dege
Ondersteuning voor laptop en Smartphone geïntegreerd

Ondersteuning voor laptop en Smartphone geïntegreerd

dit instructable is gewijd aan de opbouw van een laptop stand met een ingebouwde draaibare ondersteuning voor smartphone; Het lijkt bijna nutteloos, maar mijn ervaring vertelt me dat soms ik heb ze allebei om tegelijkertijd te gebruiken, en de mogeli
Tumblr: Aangepast minimalistische thema met ondersteuning voor Addthis, Adsense, en Disquss

Tumblr: Aangepast minimalistische thema met ondersteuning voor Addthis, Adsense, en Disquss

Opmerking: Species identificatie wedstrijd 2Herkent u dit beestje hier ? Gevonden 9 oktober in de Heritage Park in Blacksburg, Virginia. Exemplaar werd gevonden in een enkele, geïsoleerde patch op een korte heuvel, onder diepe borstel en ongeveer 10
PcDuino3 nano is een kleinere, goedkopere mini PC met Arduino ondersteuning voor

PcDuino3 nano is een kleinere, goedkopere mini PC met Arduino ondersteuning voor

De makers van de pcDuino-lijn van producten bieden meerdere kleine, low-power single-board computers met ARM-processors en ondersteuning voor Arduino Shields.Het nieuwste model is de kleinste (en goedkoopste) tot nu toe. De pcDuino3 nano is nu beschi
Automatische k'nex verborgen mes (voor nieuwe mensen zoals ik)

Automatische k'nex verborgen mes (voor nieuwe mensen zoals ik)

dit is een gewijzigde versie van een andere verborgen blad ik zag, gemaakt door Raz1r Knex Bull3t.Ik maakte het automatische door middel van elastiekjes, ik maakte een trigger vinger, en zet een kartonnen vambrace op, zodat u kunt van nemen en zet he
Statief ondersteuning voor een QuickCam (of andere webcam)

Statief ondersteuning voor een QuickCam (of andere webcam)

er zijn vele redenen wilt u misschien uw webcam op een statief gezet.  Ik moest dit doen omdat de stand voor mijn Logitech QuickCam Pro 4000 ontbrak, maar het is vaak leuk om te gebruiken met een statief voor betere foto's in het algemeen, vooral als
PVC ondersteuning voor fotografische camera

PVC ondersteuning voor fotografische camera

maken van een functionele PVC-ondersteuning voor uw camera. gebruik voor verschillende filmen en fotografiePS:Excuse de mogelijke spelling fouten ik kom uit een ander land en een andere taal te gebruiken als u de tekst niet begrijpt, de foto's kunnen
Help en ondersteuning voor Yahoo E-mail problemen deze dagen Contact Support nummer

Help en ondersteuning voor Yahoo E-mail problemen deze dagen Contact Support nummer

Er is geen gewijzigde tijd voor de kopers aanpak de yahoo lijn bereik van Yahoo vergemakkelijken. De kopers op ongeacht doel ze confronteren elk type van dergelijke problemen bekend met Yahoo, zij zal alleen het bereik van de hulplijn benadering zelf
Ondersteuning voor overhead Camera's

Ondersteuning voor overhead Camera's

Bekijk de video hierboven waar ik ben het opbouwen van mijn eigen ondersteuning voor overhead camera's te verminderen van het gewicht op mijn gimbal.