StandardFirmata - Unterstützung für neue Hardware hinzufügen hinausgehende (2 / 10 schritt)

Schritt 2: Angabe und Gestaltung der neuen PyMata API und Reporter Methodenschnittstellen


Verwenden Sie die Stepper.h öffentliche Schnittstelle zur Orientierung, können wir beginnen, PyMata Schrittmotor API und Reporter Methodenschnittstellen zu entwerfen.

Zuerst benötigen wir eine Methode, die die serielle Bibliothek ein motor-Objekt zu instanziieren beauftragen wird. Nennen wir diese Methode, Stepper_config, und ähnlich wie bei der Stepper Bibliothek Konstruktoren, wir lassen den Anrufer angeben, die Anzahl der Schritte pro Umdrehung, sowie eine Liste der Motorsteuerung Pins zur Verfügung. Dieser Liste, auf die Anrufer-Option enthält 2 Pin-Werte für einen 2-Leiter-Motor oder 4 Werte für einen 4-Leiter-Motor.

Hier ist die Signatur für die 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 """ 

Unter Bezugnahme auf Stepper.h, die Bibliothek separate stellt Methoden bereit, um die Drehzahl des Motors und den Motor bewegen eine bestimmte Anzahl von Schritten.

Unsere PyMata -Schnittstelle benötigen, das gleiche zu tun, aber wir werden eine Designentscheidung zu treffen und kombinieren beide Vorgänge in eine Methode.

Nennen wir diese Methode Stepper_step und die API-Signatur ist unten dargestellt.

 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 """ 

Außerdem müssen wir eine Methode, um dem Benutzer erlauben, die Stepper Motor Bibliothek Version anfordern. Durch die asynchrone Natur Firmata Berichterstattung benötigen wir bieten separate Methoden Version Ersuchen an den Arduino zu senden und die Antwort abrufen. Beide Methoden sind Teil der öffentlichen API.

Die Anforderungsmethode haben die folgende API-Signatur:

 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(). """ 

Wir müssen vor der Diskussion der letzten API-Methode, die Signatur der Methode Reporter angeben, die die Daten aus dem Arduino an den Client gesendet. Diese Daten sind in Form von zwei 7-Bit-Bytes, die zusammengesetzt werden, um die Versionsnummer der Bibliothek bilden, die vom Client gespeichert werden müssen.

 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 """ 

Der Rückgabewert von dem Arduino in der Stepper_version_response-Meldung wird intern durch PyMata gespeichert werden. Um den Wert abzurufen, ruft der Benutzer die Get_stepper_version-API-Methode. Um für Arduino die Datenübertragung und Bearbeitungszeiten zu ermöglichen, ist ein Wartezeit von maximal Zeitparameter angegeben. Der Standardwert für diesen Parameter beträgt 20 Sekunden. Wenn die Arduino antwortet vor Ablauf der maximale Zeit, der Wert wird sofort zurückgegeben und der Timer wird abgebrochen. Die Signatur für diese Methode lautet:

 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. """ 

Ein wichtiger Hinweis

In pymata.pysind alle PyMata "Befehl" Methoden implementiert. Also wenn wir Stepper_config, Stepper_step, Stepper_request_library_version und Get_stepper_version, code werden sie alle pymata.py hinzugefügt werden.

Alle "Reporter-Nachrichten" aus dem Arduino erfolgt durch pymata_command_handler.py. Daher wird die Umsetzung der Stepper_version_response zu dieser Datei hinzugefügt werden.

In Verbindung stehende Artikel

Fan-Unterstützung für Gen6 Elektronik hinzufügen

Fan-Unterstützung für Gen6 Elektronik hinzufügen

für eine Weile jetzt habe ich einen 3D-Drucker. Ein Orca V0.43 um genau zu sein.Dies ist ein 3D-Drucker von http://www.mendel-parts.com/.Ich bin sehr zufrieden mit dem Drucker, druckt es gut, es ist nicht so schwer, zusammen und es sieht gut aus.Aber
Werkzeuge-CLOUD: Neue Werkzeug hinzufügen

Werkzeuge-CLOUD: Neue Werkzeug hinzufügen

Neues Werkzeug hinzufügenSchritt 1: Klicken Sie "Werkzeug"Schritt 2: Daten bearbeitenGeben Sie BlueSwarf Dashboard sechsstellige Nummer, falls zutreffend. Wenn Sie eine zuweisen möchten, benutzen Sie diesen Zufallszahlen-Generator. Wenn Sie eine
ALTES MESSER NEUE HOLZ HINZUFÜGEN!

ALTES MESSER NEUE HOLZ HINZUFÜGEN!

Haben Sie ein altes Taschenmesser, Sie lieben, aber das Holz sieht schrecklich, nun ist es besser als neu aussehen könnte.Schritt 1: Finden Sie Holz ich habe einen Pice übrig gebliebenen Walnuss aus einem früheren Projekt aber können Sie, was Ihnen a
Wie Peter Ritters Auduino Projekt hinzufügen Schaltfläche Funktionen

Wie Peter Ritters Auduino Projekt hinzufügen Schaltfläche Funktionen

es macht Spaß! Gib nicht auf! Ich will nicht.Schritt 1: Erstellen der Auduino! Dieses Projekt ist einfach und sehr lustig. Ein großes Lob an Peter Ritter!Leute empfehlen in der Regel Prototyping mit einem Steckbrett sicherstellen, Ihre Töpfe arbeiten
Lebensdauer der Batterie für Ihre Turtle Beach X31 drahtlose Kopfhörer hinzufügen

Lebensdauer der Batterie für Ihre Turtle Beach X31 drahtlose Kopfhörer hinzufügen

haben Sie ein paar dieser Turtle Beach wireless-Gaming-Kopfhörer, Sie bereits wissen, sie sind ziemlich süß. Leider, Sie wahrscheinlich auch wissen, dass sie zu häufig aus Batterien ausgeführt werden können.Geringe Turtle Beach Attribute Akkulaufzeit
Mit Ihrem iPhone OSM POI-Standorte hinzufügen

Mit Ihrem iPhone OSM POI-Standorte hinzufügen

hinzufügen von Orten von Interesse (OVI) Standorte für das Projekt Open Street Map (OSM) ist ein guter Weg, um die digitale Darstellung von den umliegenden Gemeinden zu verbessern! Es ist einfacher als Sie denken, da Sie einfach mit Ihrem iPhone (und
Gewusst wie: Hinzufügen von Übergängen in iMovie HD

Gewusst wie: Hinzufügen von Übergängen in iMovie HD

Dieser Screencast zeigt Ihnen die Grundlagen des Hinzufügen von Übergängen in iMovie HD. Es bietet Ihnen Schritt für Schritt Anleitung beginnen ganz am Anfang des gewusst wie: Öffnen Sie die Anwendungen und starten Sie ein neues Projekt hinzufügen vo
Gewusst wie: hinzufügen Emoticons auf iOS 6

Gewusst wie: hinzufügen Emoticons auf iOS 6

Schritt 1: Öffnen Sie die Einstellungen Einstellungen öffnen, und tippen Sie auf allgemein.Schritt 2: Wählen Sie Tastatur Tastatur finden Sie im unteren Bereich.Schritt 3: Wählen Sie Tastaturen.Schritt 4: Wählen Sie neue Tastatur hinzufügenSchritt 5:
Hinzufügen von Digispark (mit Bootloader) Unterstützung zu bestehenden Arduino 1.6.x IDE

Hinzufügen von Digispark (mit Bootloader) Unterstützung zu bestehenden Arduino 1.6.x IDE

Digispark ist kleiner Arduino IDE kompatibel Entwicklungsboard basiert auf dem Atmel attiny85, die direkt mit USB verbunden. Es hat sehr wenige Pins, aber immer noch einige nette Dinge tun kann. Digispark ist copyright von Digistump LLC (digistump.co
ESP8266 mit Beispielcode Test Arduino-Unterstützung hinzufügen

ESP8266 mit Beispielcode Test Arduino-Unterstützung hinzufügen

Esp8266 packt eine Menge Punch. Es ist nicht nur ein WiFi-Modul, sondern auch einen anständigen Mikrocontroller erbaut. Jetzt ist das beste Teil hat die Gemeinschaft gemacht Programmierung dieser eingebauten Mikrocontroller sehr einfach durch das Hin
Hinzufügen von Bluetooth-Unterstützung zu Ihrem Auto

Hinzufügen von Bluetooth-Unterstützung zu Ihrem Auto

Ich kaufte mir eine gebrauchte Toyota Matrix 2011 und es hat einen AUX-Anschluss Ihr Handy oder MP3-Player anschließen, so dass es auf das Autoradio spielt. Es ist ein großartiges Feature und ich nutze es aber das Audio-Kabel ist ärgerlich und ist im
Machen Sie unentbehrlich, Portable, nützliche Unterstützung Beiträge.

Machen Sie unentbehrlich, Portable, nützliche Unterstützung Beiträge.

Diese instructable zeigt wie man eine portable, und äußerst hilfreiche Unterstützung post(s). Einsetzbar in vielen Funktionen, viele Bereiche. Wie Sie sehen werden, gibt es viele Einsatzmöglichkeiten für diese Beiträge.Schritt 1: Verwenden von Formul
Stativ-Unterstützung für eine QuickCam (oder andere Webcam)

Stativ-Unterstützung für eine QuickCam (oder andere Webcam)

es gibt viele Gründe, vielleicht möchten Ihre Webcam auf einem Stativ zu setzen.  Ich musste dies tun, da Stand für meine Logitech QuickCam Pro 4000 fehlte, aber es oft schön, im Allgemeinen für bessere Bilder mit einem Stativ verwenden, ist vor alle
Unterstützung der Obdachlosen auf einem Etat

Unterstützung der Obdachlosen auf einem Etat

Ich arbeite an einer sehr belebten Ecke in L.A. mit einer signifikanten obdachlose Bevölkerung in der Nachbarschaft. Es ist ein besonderer Kerl mit einem kleinen Hund, der immer vor dem gleichen Restaurant, und jedes Mal, wenn ich an ihm vorbeiging,