Sadržaj:

Povezivanje Processinga i Arduino -a te 7 -segmentni i servo GUI kontroler: 4 koraka
Povezivanje Processinga i Arduino -a te 7 -segmentni i servo GUI kontroler: 4 koraka

Video: Povezivanje Processinga i Arduino -a te 7 -segmentni i servo GUI kontroler: 4 koraka

Video: Povezivanje Processinga i Arduino -a te 7 -segmentni i servo GUI kontroler: 4 koraka
Video: Arduino Rover 2024, Studeni
Anonim
Povezivanje Processinga i Arduina te Make 7 Segment i Servo GUI Controller
Povezivanje Processinga i Arduina te Make 7 Segment i Servo GUI Controller

Za neke projekte koje ste morali koristiti morate koristiti Arduino jer pruža laku platformu za izradu prototipova, ali prikazivanje grafike na serijskom monitoru Arduina može potrajati, pa čak i teško izvesti. Možete prikazati grafikone na Arduino serijskom monitoru, ali grafikoni nisu jedino što ćete možda morati prikazati. Svi interaktivni objekti poput klizača, gumba, programa s 2D, 3D, PDF ili SVG izlazom, a također možete jednostavno stvoriti animacije. Zadani način programiranja za obradu je Java, ali možete je prebaciti na Android, p5.js, REPL, CoffeeScript i JavaScript. U ovom Instructable -u koristit ćemo način programiranja Java.

Sav sadržaj i kôd također su dostupni na mom githubu ovdje.

Korak 1: Korištenje Processing.serial

Kod obrade

Prva dva retka koda bit će

uvoz obrada.serial.*; Serijski myPort;

Ovdje u prvom retku uvozimo biblioteku - obradu, a u drugom retku stvaramo objekt klase Serijski pod imenom myPort, možete ga nazvati kako god želite prema pravilima imenovanja identifikatora.

U obradi imamo void setup () i void draw () gdje je void povratni tip funkcije koju također možete promijeniti u int setup () i int draw () ili drugu vrstu podataka koju želite, ali ćete morati vratiti vrijednost koja ima isti tip podataka kao tip podataka koji koristite prije funkcija.

u setup () zapisujemo izraze koje moramo jednom izvršiti, dok u draw () upisujemo izjave koje trebamo izvršiti više puta. Dva gore navedena retka koda trebaju biti napisana iznad void setup () jer trebaju imati globalni pristup.

U void setup () inicijalizirat ćemo objekt myPort.

void setup () {

veličina (800, 800);

myPort = novi serijski (ovo, "COM18", 9600);

}

Veličina linije (800, 800); definira veličinu zaslona 800 x 800 piksela.

Ključna riječ new u drugom retku koristi se za rezerviranje prostora za objekt u memoriji, argument ovo je referentna varijabla koja se odnosi na trenutni objekt. Argument COM18 je priključena luka Arduino, ovo nam je potrebno jer ćemo prenositi podatke putem serijskog sučelja. Broj 18 može biti različit u vašem slučaju, možete ga pronaći pod Alati> Priključak u Arduino IDE -u, a 9600 je brzina prijenosa koju možete promijeniti u Arduinu i u obradi.

Korak 2: Shvatite serijsku klasu

Konstruktor za Serial

Serijski (nadređeni, portName, baudRate, paritet, dataBits, stopBits)

Argumenti:

roditelj: obično koristite "ovo"

baudRate (int): 9600 je zadana vrijednost

portName (String): naziv porta (COM1 je zadana postavka)

paritet (char): 'N' za ništa, 'E' za parno, 'O' za neparno, 'M' za oznaku, 'S' za razmak ('N' je zadana postavka)

dataBits (int): 8 je zadana vrijednost

stopBits (float): 1.0, 1.5 ili 2.0 (1.0 je zadana postavka)

Važne metode:

  1. myPort.available () - vraća broj dostupnih bajtova.
  2. myPort.clear () - prazni međuspremnik i uklanja sve tamo pohranjene podatke.
  3. myPort.read () - Vraća broj između 0 i 255 za sljedeći bajt koji čeka u međuspremniku.
  4. myPort.readString () - Vraća sve podatke iz međuspremnika kao niz ili null ako nema ništa dostupno.
  5. myPort.write ("test") - Zapisuje bajtove, znakove, ints, bajtove , nizove na serijski port.
  6. myPort.stop () - Uspostavlja komunikaciju podataka na portu.

Korak 3: Arduino serijska klasa

Ne morate uvoziti serijsku klasu u Arduino prije uporabe.

U Arduinu postoje 2 funkcije koje se zovu setup () i loop () postavljanje se pokreće samo jednom, ali petlja se izvodi više puta. U setup () moramo pisati pomoću metode begin () za početak serijske komunikacije. U Arduinu za razliku od obrade, ne moramo spominjati port kao argumente metode begin () jer smo već naveli port prilikom učitavanja skice u Arduinu.

Dakle, setup () će izgledati ovako:

void setup () {

Serial.begin (9600); // započinje serijska komunikacija

}

9600 ovdje navodi brzinu prijenosa koju smo također spomenuli u datoteci za obradu. Za pravilnu komunikaciju, i brzine prijenosa trebale bi biti jednake ili ćete serijski izlaz vidjeti kao nešto blesavo.

Pogledajmo sada dio loop (). Ovaj dio koda radi više puta. Ako želimo čitati neke podatke putem porta, upotrijebit ćemo metodu Serial.read (). Ova funkcija vraća null ako nema dostupnih podataka pa ćemo ovu metodu nazvati samo kada imamo neke podatke na raspolaganju u Serial stream.

Za provjeru ima li dostupnih podataka upotrijebit ćemo metodu Serial.available (). Ako vrati vrijednost veću od 0 - dostupni su neki podaci.

Tako će dio loop () izgledati ovako:

void loop () {{100} {101}

if (Serial.available ()> 0) {// ako su neki podaci dostupni u serijskom portu

stanje char = Serial.read (); // očitavanje vrijednosti

// if izrazi ili prebacivanje velikih slova

}

}

Sada možemo koristiti ako ljestve ili ako postoji mnogo mogućih ishoda možemo koristiti i prekidač za promjenjivo stanje.

Korak 4: Izgradite GUI 7 segmentni kontroler

Izgradite GUI 7 segmentni kontroler
Izgradite GUI 7 segmentni kontroler
Izgradite GUI 7 segmentni kontroler
Izgradite GUI 7 segmentni kontroler
Izgradite GUI 7 segmentni kontroler
Izgradite GUI 7 segmentni kontroler

Datoteke su priložene ovdje. Napomena: Za obradu ćete također morati instalirati kontrolnu knjižnicu p5 koju sam koristio za stvaranje interaktivnih gumba GUI.

PIN brojevi

7 segment (abecednim redom) upućuju na sliku

a - digitalni pin 2

b - digitalni pin 3

c - digitalni pin 4

d - digitalni pin 5

e - digitalni pin 6

f - digitalni pin 7

g - digitalni pin 8

dp - digitalni pin 9

Sav sadržaj i kôd također su dostupni na mom githubu ovdje

Preporučeni: