Arduino a Standard Firmata

Najprv vám vysvetlím, kedy a prečo používať Standard Firmata. Potom uvidíte, ako rýchlo nastaviť Standard Firmata na vašom Arduine. A potom si na svojom počítači vytvoríte klienta, ktorý bude skutočne komunikovať a dávať príkazy vášmu Arduinu.

PC-arduino

Potreba komunikácie, ak je vaša aplikácia Arduino program, ktorý nepotrebuje komunikovať so žiadnym iným zariadením, potom nebudete musieť používať Firmata.

Teraz povedzme, že chcete ovládať svoje Arduino z iného počítača – tu jednoducho použijeme váš počítač. Chcete, aby všetka logika vášho programu bola na vašom počítači, zatiaľ čo doska Arduino iba vykonáva príkazy (aktivuje hardvérové ​​kolíky) a poskytuje niektoré informácie (číta hardvérové ​​kolíky).

V podstate chcete urobiť svoje Arduino „dynamickejším“ a exportovať „mozog“ Arduina do vášho počítača. Inými slovami, logiku firmvéru chcete napísať na svojom počítači, nie na Arduine.

V tomto prípade musíte implementovať nejaký druh komunikácie.

Najjednoduchšia komunikácia je sériová komunikácia cez USB.

To je pravdepodobne to, čo ste použili pri učení základov Arduina.

A funguje to dobre. Môžete posielať správy do Arduina (bajty, int, reťazec atď.) a tiež prijímať správy.

Knižnica používa protokol Firmata, ktorý komunikuje cez sériový port. Arduino Firmata je akési rozhranie na vysokej úrovni, ktoré zjednodušuje veci a uľahčuje a zrýchľuje písanie kódu. Môžete si napísať vlastnú knižnicu založenú na Serial, alebo môžete použiť Firmata.

V tomto návode sa zameriame na Standard. Je to prognam založený na knižnici Firmata (na protokole Firmata), ktorý vám umožní ovládať všetky piny Arduina z vášho počítača. Budete môcť zmeniť režim Pinu, stav, prečítať Pin atď. A to všetko bez písania akéhokoľvek kódu na strane Arduina. Arduino bude fungovať ako server

(prijíma požiadavky a odosiela údaje) a váš počítač sa bude správať ako klient (odosiela požiadavky a prijíma údaje).

Napríklad, ak chcete nastaviť pin 13 na OUTPUT a nastaviť jeho stav na HIGH, potom to urobíte na svojom počítači pomocou klienta Firmata. Príkaz bude odoslaný do Arduina, ktoré ho skutočne vykoná.

Nahrajte knižnicu Standard Firmata na vašu dosku Arduino. Vyberte systém (Windows, Mac, Linux), ktorý práve používate, stiahnite si a spustite inštalačný program. Ak už máte na počítači nainštalované Arduino IDE, uistite sa, že verzia je aktuálna (v prípade potreby aktualizujte). Teraz otvorte svoje Arduino IDE a pripojte dosku Arduino k počítaču. Vyberte správnu dosku v časti „Nástroje“ > „Dosky“ (tu Arduino Uno) a port, ku ktorému je doska pripojená. V systéme Windows často uvidíte niečo ako COMX. Môže sa líšiť v závislosti od vášho systému a toho, čo je ešte pripojené k vášmu počítaču.

Teraz, keď máte dosku Arduino správne rozpoznanú pomocou Arduino IDE, môžete otvoriť náčrt StandardFirmata z dostupných príkladov.

Ak nevidíte „Firmata“ v časti „Príklady“, znamená to, že knižnica Firmata nie je nainštalovaná. To tiež určite znamená, že vaše Arduino IDE nie je aktuálne, pretože pre posledné vydania je Firmata automaticky zahrnutá. Takže môžete aktualizovať svoje Arduino IDE alebo skontrolovať v časti „Sketch“ > „Zahrnúť knižnicu“ > „Spravovať knižnice…“.

Napíšte „firmata“ do vyhľadávacieho panela a nájdete knižnicu Firmata (Firmata Built-In od Firmata Developers). Ak nie je nainštalovaná, vyberte najnovšiu verziu a kliknite na tlačidlo „Inštalovať“.

Teraz, keď máte Firmata na svojom Arduino IDE, vyberte príklad náčrtu StandardFirmata. Tým sa otvorí nové okno s dosť dlhým programom. V skutočnosti tento program čítať nemusíte. Všetko, čo musíte urobiť, aby ste ho nahrali na dosku Arduino.

Kliknite na tlačidlo „Nahrať“.

OK Super

Náčrt je nahraný na dosku Arduino, ktorá používa protokol Firmata.

Teraz, aby ste mohli hovoriť so svojou doskou Arduino, musíte napísať nejaký klientsky kód na vašom počítači. V podstate musíte komunikovať pomocou protokolu Firmata cez sériovú komunikáciu.

Na prvý pohľad to môže znieť dosť ťažko, ale nebojte sa, k dispozícii sú vám aj klientske knižnice, ktoré sa postarajú o všetku komunikáciu hneď po vybalení! Napríklad pyfirmata je slávna knižnica Pythonu na použitie Firmata ako klienta. Knižnice sú dostupné v mnohých jazykoch, Napr :

  • processing
  • pyhon
  • perl
  • ruby
  • clojure
  • javascript
  • java
  • .NET
  • PHP
  • iOS
  • Dart
  • Max/MSP
  • Elixir
  • Modelica
  • golang
  • Qt/QML
  • Android/Kotlin
  • Smalltalk
  • Lab/WIEW
  • vvvv/VL

ale v tomto návode sa zameriame iba na písanie klienta Python.

Nainštalovať pyfirmata:

Základný kód s pyfirmata : Tu sa jednoducho pokúsime vytvoriť príklad Blink (blikanie LED 13 každú sekundu) pomocou Pythonu a modulu pyfirmata.

Rozoberme si tento kód

Najprv importujeme funkcie Arduina z pyfirmata.

Na začatie komunikácie jednoducho použite funkciu Arduino() od pyfirmata, ktorej zadáte jeden parameter: port, ktorý používate pre svoju dosku Arduino. Toto je rovnaký port, ktorý ste použili na nahranie programu na vašu dosku. Po úspešnom spustení komunikácie (môže to chvíľu trvať) sa zobrazí log na vašom termináli.

A tu máme blikajúci LED kód Python. Štruktúra kódu je úplne rovnaká ako v príklade blikania LED v jazyku Arduino. Pri zápise board.digital[13].write(1) napríklad pyfirmata vytvorí požiadavku pomocou protokolu Firmata. Pošle to do Arduina cez sériovú komunikáciu. Doska Arduino analyzuje túto požiadavku a preloží ju na digitalWrite(13, HIGH);. Teraz jednoducho spustite svoj Python kód a uvidíte blikanie vstavanej LED na doske Arduino!

Záver

S týmto tutoriálom by ste mali mať jednoduchý, ale dobrý prehľad o tom, ako používať Firmata s Arduinom. Je to úplne základné, ale s týmito znalosťami môžete začať vyvíjať zložitejšie projekty a aplikácie. Akákoľvek aplikácia, ktorá vyžaduje veľa výpočtového výkonu, ako aj manipuláciu s hardvérom, je možným kandidátom na použitie Firmata. „Mozgová“ doska/stroj zvládne všetku logiku a vydá príslušné príkazy hardvérovému ovládaču, v tomto prípade doske Arduino.

Ďalej môžete : Použitie Firmata medzi doskou Raspberry Pi a doskou Arduino. Implementácia klienta v rôznych jazykoch (JavaScript, Java, Php, …) na komunikáciu s vaším Arduinom vo webových/desktopových/Android aplikáciách. Ponorte sa hlbšie do protokolu Firmata, aby ste pochopili, ako sa vyrába a ako ho implementuje Arduino. Upozorňujeme tiež, že Firmata nie je odpoveďou na všetky problémy. V niektorých aplikáciách, ktoré vyžadujú komunikáciu, zistíte, že môže byť vhodnejšia vlastná sériová komunikácia alebo iný protokol. Ako to spoznáte? Cvičte, cvičte a ešte cvičte!


Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *

Nemôžete kopírovať obsah tejto stránky