Obsah:

Pripojenie procesora a Arduina a 7 -segmentového a servo radiča GUI: 4 kroky
Pripojenie procesora a Arduina a 7 -segmentového a servo radiča GUI: 4 kroky

Video: Pripojenie procesora a Arduina a 7 -segmentového a servo radiča GUI: 4 kroky

Video: Pripojenie procesora a Arduina a 7 -segmentového a servo radiča GUI: 4 kroky
Video: BTT Manta M8P v2 - Basics with CB1 v2.2 2024, Septembra
Anonim
Pripojenie procesora a Arduina a 7 -segmentového a servopohonu GUI
Pripojenie procesora a Arduina a 7 -segmentového a servopohonu GUI

Pri niektorých projektoch, ktoré ste urobili, musíte použiť Arduino, pretože poskytuje jednoduchú platformu na prototypovanie, ale zobrazenie grafiky v sériovom monitore Arduina môže trvať dosť dlho a dokonca je ťažké ho vykonať. Grafy môžete zobrazovať na sériovom monitore Arduino, ale grafy nie sú jedinou vecou, ktorú budete musieť zobraziť. Všetky interaktívne objekty, ako sú posuvníky, tlačidlá, programy s výstupom 2D, 3D, PDF alebo SVG, a tiež môžete ľahko vytvárať animácie. Predvolený režim programovania na spracovanie je Java, ale môžete ho prepnúť na Android, p5.js, REPL, CoffeeScript a JavaScript. V tomto návode však použijeme režim programovania Java.

Všetok obsah a kód je tiež k dispozícii na mojom github tu.

Krok 1: Použitie súboru Processing.serial

Spracovateľský kód

Prvé dva riadky kódu budú

spracovanie importu.sériové.*; Sériový myPort;

Tu v prvom riadku importujeme knižnicu - spracovanie a v druhom rade vytvárame objekt triedy Sériové meno myPort, podľa pravidiel pomenovania identifikátora ho môžete pomenovať, ako chcete.

Pri spracovaní máme neplatné nastavenie () a neplatné kreslenie (), kde neplatnosť je návratový typ funkcie, môžete ju tiež zmeniť na int setup () a int draw () alebo iný typ údajov, ktorý sa vám páči, ale budete musieť vrátiť hodnota, ktorá má rovnaký dátový typ ako dátový typ, ktorý používate pred funkciami.

v setup () napíšeme príkazy, ktoré potrebujeme vykonať raz, zatiaľ čo v draw () napíšeme príkazy, ktoré potrebujeme vykonať viackrát. Dva vyššie uvedené riadky kódu by mali byť zapísané nad neplatné nastavenie (), pretože potrebujú globálny prístup.

V neplatnom nastavení () inicializujeme objekt myPort.

neplatné nastavenie () {

veľkosť (800, 800);

myPort = nový sériový port (tento, „COM18“, 9600);

}

Veľkosť čiary (800, 800); definuje veľkosť obrazovky 800 x 800 pixelov.

Kľúčové slovo nové v druhom riadku slúži na rezerváciu miesta pre objekt v pamäti. Argument toto je referenčná premenná, ktorá odkazuje na aktuálny objekt. Argument COM18 je port pripojeného Arduina, potrebujeme to, pretože budeme prenášať údaje cez sériové rozhranie. Číslo 18 sa vo vašom prípade môže líšiť, nájdete ho v časti Nástroje> Port v Arduino IDE a 9600 je prenosová rýchlosť, ktorú môžete zmeniť v Arduine aj v Processingu.

Krok 2: Pochopte sériovú triedu

Konštruktor pre Serial

Sériové (nadradený, názov_portu, prenosová rýchlosť, parita, dátové bity, stopbity)

Argumenty:

rodič: zvyčajne používajte „toto“

baudRate (int): 9600 je predvolená hodnota

portName (String): názov portu (COM1 je predvolený)

parita (char): „N“pre žiadne, „E“pre párne, „O“pre nepárne, „M“pre značku, „S“pre medzeru („N“je predvolené)

dataBits (int): 8 je predvolená hodnota

stopBits (float): 1,0, 1,5 alebo 2,0 (1,0 je predvolené)

Dôležité metódy:

  1. myPort.available () - vráti počet dostupných bytov.
  2. myPort.clear () - vyprázdni vyrovnávaciu pamäť a odstráni všetky tam uložené údaje.
  3. myPort.read () - Vráti číslo od 0 do 255 pre ďalší bajt, ktorý čaká vo vyrovnávacej pamäti.
  4. myPort.readString () - Vráti všetky údaje z vyrovnávacej pamäte ako String alebo null, ak nie je nič k dispozícii.
  5. myPort.write ("test") - Zapíše bajty, znaky, inty, bajty , reťazce na sériový port.
  6. myPort.stop () - Zastaví začatie údajov na porte.

Krok 3: Sériová trieda Arduino

Pred použitím sériovú triedu do Arduina nemusíte importovať.

V Arduine existujú 2 funkcie nazývané setup () a loop (), nastavenie beží iba raz, ale slučka beží viackrát. V setup () musíme na spustenie sériovej komunikácie použiť metódu begin (). V Arduine na rozdiel od spracovania nemusíme uvádzať port ako argumenty metódy begin (), pretože port už zadávame pri odosielaní náčrtu do Arduina.

Takže setup () bude vyzerať takto:

neplatné nastavenie () {

Serial.begin (9600); // spustenie sériovej komunikácie

}

9600 tu určuje prenosovú rýchlosť, ktorú sme uviedli aj v spracovateľskom súbore. Pre správnu komunikáciu by mali byť obidve prenosové rýchlosti rovnaké alebo môže byť sériový výstup považovaný za niečo bláznivé.

Teraz sa pozrime na časť loop (). Táto časť kódu beží viackrát. Ak chceme z portu načítať niektoré údaje, použijeme metódu Serial.read (). Táto funkcia vráti hodnotu null, ak nie sú k dispozícii žiadne údaje, takže túto metódu zavoláme, iba ak budeme mať k dispozícii nejaké údaje v sériovom prúde.

Na kontrolu, či sú k dispozícii nejaké údaje, použijeme metódu Serial.available (). Ak vráti hodnotu väčšiu ako 0 - sú k dispozícii niektoré údaje.

Časť loop () bude teda vyzerať takto:

prázdna slučka () {

if (Serial.available ()> 0) {// ak sú v sériovom porte k dispozícii nejaké údaje

char state = Serial.read (); // prečítaj hodnotu

// if vyhlásenia alebo veľkosť písmen

}

}

Teraz môžeme použiť if ladder alebo ak existuje veľa možných výsledkov, môžeme použiť aj prípad prepínača pre variabilný stav.

Krok 4: Zostavte segmentový radič GUI 7

Zostavte segmentový ovládač GUI 7
Zostavte segmentový ovládač GUI 7
Zostavte segmentový ovládač GUI 7
Zostavte segmentový ovládač GUI 7
Zostavte segmentový ovládač GUI 7
Zostavte segmentový ovládač GUI 7

Súbory sú priložené tu. Poznámka: Na spracovanie budete tiež musieť nainštalovať knižnicu control p5, ktorú som použil na vytvorenie interaktívnych tlačidiel GUI.

Čísla pinov

7 segmentové (v abecednom poradí) odkazujú na obrázok

a - digitálny kolík 2

b - digitálny kolík 3

c - digitálny kolík 4

d - digitálny kolík 5

e - digitálny kolík 6

f - digitálny kolík 7

g - digitálny kolík 8

dp - digitálny pin 9

Všetok obsah a kód je tiež k dispozícii na mojom github tu

Odporúča: