Kazalo:
- 1. korak: Uporaba Processing.serial
- 2. korak: Razumejte serijski razred
- 3. korak: Serijski razred Arduino
- 4. korak: Zgradite 7 -segmentni krmilnik GUI
Video: Povezovanje procesorja in Arduina ter izdelovanja 7 -segmentnega in servo krmilnika grafičnega vmesnika: 4 koraki
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:04
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:
- myPort.available () - vrne število razpoložljivih bajtov.
- myPort.clear () - izprazni vmesni pomnilnik in odstrani vse tam shranjene podatke.
- myPort.read () - Vrne številko med 0 in 255 za naslednji bajt, ki čaka v medpomnilniku.
- myPort.readString () - Vrne vse podatke iz vmesnega pomnilnika kot niz ali nič, če ni na voljo nič.
- myPort.write ("test") - Zapiše bajte, znake, črke, bajte , Nize na serijska vrata.
- 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
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:
DIY hrbtna plošča grafičnega procesorja Brez električnega orodja: 16 korakov (s slikami)
DIY hrbtna plošča grafičnega procesorja Brez električnega orodja: Pozdravljeni, v tem navodilu vam bom pokazal, kako z naslovom WS2812b LED (Aka Neopixel) izdelati zadnjo ploščo za grafično kartico po meri z RGB po meri. Ta opis v resnici ne ustreza, zato si oglejte zgornji video! Prosimo, upoštevajte t
Kako krmiliti enosmerni motor z enosmernim tokom z uporabo krmiljenega elektronskega krmilnika hitrosti 160A in servo testerja: 3 koraki
Kako krmiliti enosmerni motor z enosmernim tokom z elektronskim krmilnikom hitrosti 160A in servo testerjem: Specifikacija: Napetost: 2-3S Lipo ali 6-9 NiMH Neprekinjeni tok: 35A Rafalni tok: 160A BEC: 5V / 1A, načini linearnega načina: 1. naprej &vzvratno; 2. naprej &zavora; 3. naprej & zavora & vzvratna teža: 34 g Velikost: 42*28*17 mm
HowTo - Esp -12F mini WiFi modul ESP8266 18650 Nodemcu baterija 0,96”OLED DEMO preko grafičnega vmesnika Arduino: 4 koraki
HowTo - Esp -12F mini WiFi modul ESP8266 18650 Nodemcu baterija 0,96 "OLED DEMO prek grafičnega vmesnika Arduino: Pozdravljeni, pozdravljeni z Euch zeigen wie Ihr das mit auf der Hauptplatine verbaute OLED Zaslon oranžen ali brezbarven; Um es m ö glichst einfach zu halten, benutze ich die ARDUINO GUI zum schreiben des CODEs zum hochladen der Firmwa
Kako zagnati Drone Quadcopter brezkrtačni enosmerni motor z uporabo krmilnika hitrosti motorja brez krtačk HW30A in servo testerja: 3 koraki
Kako zagnati Drone Quadcopter brezkrtačni enosmerni motor z uporabo krmilnika hitrosti brezkrtačnega motorja HW30A in servo testerja: Opis: Ta naprava se imenuje Servo Motor Tester, ki jo lahko uporabite za zagon servo motorja s preprostim priključkom na servo motor in napajanjem. Napravo lahko uporabite tudi kot generator signala za električni regulator hitrosti (ESC), nato pa ne morete
Ustvarjanje ukrivljenega uporabniškega vmesnika v Unityju za virtualno resničnost: 4 koraki
Ustvarjanje ukrivljenega uporabniškega vmesnika v Unityju za virtualno resničnost: če iščete brezplačno in enostavno rešitev za ustvarjanje ukrivljenega uporabniškega vmesnika za vašo aplikacijo za navidezno resničnost ali igro VR, ste na pravem mestu. V tem spletnem dnevniku se boste naučili ustvariti ukrivljen element uporabniškega vmesnika v enotnosti z razširitvami uporabniškega vmesnika Unity.