Sadržaj:

Povezivanje Processinga i Arduino -a i Make 7 Segment i Servo GUI kontrolera: 4 koraka
Povezivanje Processinga i Arduino -a i Make 7 Segment i Servo GUI kontrolera: 4 koraka

Video: Povezivanje Processinga i Arduino -a i Make 7 Segment i Servo GUI kontrolera: 4 koraka

Video: Povezivanje Processinga i Arduino -a i Make 7 Segment i Servo GUI kontrolera: 4 koraka
Video: Использование Ember от Autodesk — 3D Hangouts 2024, Novembar
Anonim
Povezivanje Processinga i Arduina i Make 7 Segment i Servo GUI kontrolera
Povezivanje Processinga i Arduina i Make 7 Segment i Servo GUI kontrolera

Za neke projekte koje ste napravili morate koristiti Arduino jer pruža laku platformu za izradu prototipova, ali prikazivanje grafike na serijskom monitoru Arduina može potrajati prilično dugo, 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 ga promijeniti Android, p5.js, REPL, CoffeeScript i JavaScript. U ovom Instructable -u koristit ćemo način programiranja Java.

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

Korak 1: Korištenje Processing.serial

Kod obrade

Prva dva reda koda će biti

import processing.serial.*; Serijski myPort;

Ovdje u prvom retku uvozimo biblioteku - obradu, a u drugom retku stvaramo objekt klase Serijski po imenu 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 neki drugi tip podataka koji vam se sviđa, ali ćete morati vratiti vrijednost koja ima isti tip podataka kao tip podataka koji koristite prije funkcija.

u setup () zapisujemo naredbe koje moramo jednom izvršiti, dok u draw () upisujemo izjave koje trebamo izvršiti više puta. Dvije gore navedene linije koda trebale bi biti napisane 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 ekrana 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čeni port Arduino, ovo nam je potrebno jer ćemo prenositi podatke putem serijskog sučelja. Broj 18 može biti drugačiji u vašem slučaju, možete ga pronaći pod Alati> Port 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 nijedno, 'E' za parno, 'O' za neparno, 'M' za oznaku, 'S' za razmak ('N' je zadano)

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 bafer i uklanja sve podatke koji su tamo pohranjeni.
  3. myPort.read () - Vraća broj između 0 i 255 za sljedeći bajt koji čeka u baferu.
  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 upotrebe.

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

Dakle, setup () će izgledati ovako:

void setup () {

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

}

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

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

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 na serijskom portu

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

// if naredbe ili velika slova

}

}

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

Korak 4: Izgradite GUI 7 segmentni kontroler

Napravite GUI 7 segmentni kontroler
Napravite GUI 7 segmentni kontroler
Napravite GUI 7 segmentni kontroler
Napravite GUI 7 segmentni kontroler
Napravite GUI 7 segmentni kontroler
Napravite GUI 7 segmentni kontroler

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

PIN brojevi

7 segmenata (po abecednom redu) 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 su takođe dostupni na mom githubu

Preporučuje se: