Kazalo:

Povezovanje procesorja in Arduina ter izdelovanja 7 -segmentnega in servo krmilnika grafičnega vmesnika: 4 koraki
Povezovanje procesorja in Arduina ter izdelovanja 7 -segmentnega in servo krmilnika grafičnega vmesnika: 4 koraki

Video: Povezovanje procesorja in Arduina ter izdelovanja 7 -segmentnega in servo krmilnika grafičnega vmesnika: 4 koraki

Video: Povezovanje procesorja in Arduina ter izdelovanja 7 -segmentnega in servo krmilnika grafičnega vmesnika: 4 koraki
Video: Создание автомата с помощью Micro:bit 2024, November
Anonim
Povežite procesor in Arduino ter naredite 7 -segmentni in servo krmilnik grafičnega vmesnika
Povežite procesor in Arduino ter naredite 7 -segmentni in servo krmilnik grafičnega vmesnika

Za nekatere projekte, ki ste jih naredili, morate uporabiti Arduino, saj zagotavlja preprosto platformo za izdelavo prototipov, vendar lahko prikaz grafike v serijskem monitorju Arduina traja precej dolgo in je celo težko izvedljiv. Grafe lahko prikažete na serijskem monitorju Arduino, vendar grafikoni niso edino, kar boste morda morali prikazati. Vsi interaktivni predmeti, kot so drsniki, gumbi, programi z izhodom 2D, 3D, PDF ali SVG, lahko pa tudi preprosto ustvarite animacije. Privzeti način programiranja za obdelavo je Java, vendar ga lahko preklopite na Android, p5.js, REPL, CoffeeScript in JavaScript. V tem Instructable pa bomo uporabljali programski način Java.

Vsa vsebina in koda sta na voljo tudi na mojem githubu tukaj.

1. korak: Uporaba Processing.serial

Koda za obdelavo

Prvi dve vrstici kode bosta

uvozna obdelava.serial.*; Serijski myPort;

Tukaj v prvi vrstici uvažamo knjižnico - obdelavo, v drugi vrstici pa ustvarjamo objekt razreda Serijski z imenom myPort, ki ga lahko poimenujete po želji po pravilih poimenovanja identifikatorja.

Pri obdelavi imamo void setup () in void draw (), kjer je void vrsta vrnitve funkcije, ki jo lahko spremenite tudi v int setup () in int draw () ali drugo vrsto podatkov, ki vam je všeč, vendar boste morali vrniti vrednost, ki ima isti tip podatkov kot tip podatkov, ki ga uporabljate pred funkcijami.

v setup () napišemo stavke, ki jih moramo enkrat izvesti, medtem ko v draw () napišemo stavke, ki jih moramo izvesti večkrat. Dve zgoraj omenjeni vrstici kode bi morali biti zapisani nad void setup (), ker morata imeti globalni dostop.

V void setup () bomo inicializirali objekt myPort.

void setup () {

velikost (800, 800);

myPort = nov serijski (to, "COM18", 9600);

}

Velikost črte (800, 800); določa velikost zaslona 800 x 800 slikovnih pik.

Ključna beseda novo v drugi vrstici se uporablja za rezervacijo prostora za predmet v pomnilniku, argument to je referenčna spremenljivka, ki se nanaša na trenutni objekt. Argument COM18 je povezana vrata Arduino, to potrebujemo, saj bomo podatke prenašali prek serijskega vmesnika. Številka 18 je lahko v vašem primeru drugačna, najdete jo pod Orodja> Vrata v Arduino IDE in 9600 je hitrost prenosa, ki jo lahko spremenite tako v Arduinu kot v obdelavi.

2. korak: Razumejte serijski razred

Konstruktor za Serial

Zaporedni (nadrejeni, portName, baudRate, paritetni, dataBits, stopBits)

Argumenti:

starš: običajno uporabite "to"

baudRate (int): 9600 je privzeto

portName (String): ime vrat (privzeto je COM1)

pariteta (char): 'N' za nič, 'E' za sodo, 'O' za liho, 'M' za oznako, 'S' za presledek ('N' je privzeto)

dataBits (int): 8 je privzeto

stopBits (float): 1,0, 1,5 ali 2,0 (1,0 je privzeto)

Pomembne metode:

  1. myPort.available () - vrne število razpoložljivih bajtov.
  2. myPort.clear () - izprazni vmesni pomnilnik in odstrani vse tam shranjene podatke.
  3. myPort.read () - Vrne številko med 0 in 255 za naslednji bajt, ki čaka v medpomnilniku.
  4. myPort.readString () - Vrne vse podatke iz vmesnega pomnilnika kot niz ali nič, če ni na voljo nič.
  5. myPort.write ("test") - Zapiše bajte, znake, črke, bajte , Nize na serijska vrata.
  6. myPort.stop () - ustavi povezovanje podatkov na vratih.

3. korak: Serijski razred Arduino

Serijskega razreda v Arduino vam ni treba uvoziti, preden ga uporabite.

V Arduinu obstajata 2 funkciji, imenovani setup () in loop (), namestitev se izvede le enkrat, zanka pa se izvede večkrat. V setup () moramo za začetek serijske komunikacije pisati z metodo begin (). V Arduinu za razliko od obdelave nam ni treba omeniti vrat kot argumentov metode begin (), saj vrata že navajamo med nalaganjem skice v Arduino.

Tako bo setup () izgledal takole:

void setup () {

Serial.begin (9600); // zaženemo serijsko komunikacijo

}

9600 tukaj določa hitrost prenosa, ki smo jo omenili tudi v datoteki za obdelavo. Za pravilno komunikacijo morata biti hitrosti prenosa enake ali pa lahko vidite, da je serijski izhod nekaj neumnega.

Zdaj pa poglejmo del zanke (). Ta del kode se izvaja večkrat. Če želimo prebrati nekaj podatkov prek vrat, bomo uporabili metodo Serial.read (). Ta funkcija vrne ničelno vrednost, če ni na voljo podatkov, zato bomo to metodo poklicali šele, ko bomo imeli v podatkovnem naboru na voljo nekaj podatkov.

Za preverjanje, ali so na voljo nekateri podatki, bomo uporabili metodo Serial.available (). Če vrne vrednost večjo od 0 - so na voljo nekateri podatki.

Tako bo del zanke () izgledal tako:

void loop () {

if (Serial.available ()> 0) {// če je na voljo nekaj podatkov v serijskih vratih

stanje char = Serial.read (); // preberemo vrednost

// če stavki ali preklop

}

}

Zdaj lahko uporabimo če lestev ali če je veliko možnih izidov, lahko uporabimo tudi stikalo za spremenljivo stanje.

4. korak: Zgradite 7 -segmentni krmilnik GUI

Zgradite 7 -segmentni krmilnik GUI
Zgradite 7 -segmentni krmilnik GUI
Zgradite 7 -segmentni krmilnik GUI
Zgradite 7 -segmentni krmilnik GUI
Zgradite 7 -segmentni krmilnik GUI
Zgradite 7 -segmentni krmilnik GUI

Datoteke so priložene tukaj. Opomba: Za obdelavo boste morali namestiti tudi nadzorno knjižnico p5, ki sem jo uporabil za ustvarjanje interaktivnih gumbov grafičnega vmesnika.

Številke pin

7 segment (po abecednem vrstnem redu) se nanašajo na sliko

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

Vsa vsebina in koda sta na voljo tudi na mojem githubu tukaj

Priporočena: