Turinys:

„Processing“ir „Arduino“prijungimas ir 7 segmentų ir servo GUI valdiklio prijungimas: 4 žingsniai
„Processing“ir „Arduino“prijungimas ir 7 segmentų ir servo GUI valdiklio prijungimas: 4 žingsniai

Video: „Processing“ir „Arduino“prijungimas ir 7 segmentų ir servo GUI valdiklio prijungimas: 4 žingsniai

Video: „Processing“ir „Arduino“prijungimas ir 7 segmentų ir servo GUI valdiklio prijungimas: 4 žingsniai
Video: Motherboard Mastery: IT Admins' Guide to Desktop Support 2024, Liepa
Anonim
Prijungimas prie apdorojimo ir „Arduino“bei „Make 7 Segment“ir „Servo“GUI valdiklis
Prijungimas prie apdorojimo ir „Arduino“bei „Make 7 Segment“ir „Servo“GUI valdiklis

Kai kuriems projektams reikia naudoti „Arduino“, nes tai yra paprasta prototipų kūrimo platforma, tačiau grafikos rodymas „Arduino“serijos monitoriuje gali užtrukti gana ilgai ir net sunku. Galite rodyti grafikus „Arduino“serijos monitoriuje, tačiau grafikai nėra vienintelis dalykas, kurį gali tekti rodyti. Visi interaktyvūs objektai, pvz., Slankikliai, mygtukai, programos su 2D, 3D, PDF ar SVG išvestimi, taip pat galite lengvai kurti animaciją. Numatytasis programavimo režimas apdorojimui yra „Java“, tačiau galite jį pakeisti „Android“, „p5.js“, „REPL“, „CoffeeScript“ir „JavaScript“. Tačiau šioje instrukcijoje mes naudosime „Java“programavimo režimą.

Visas turinys ir kodas taip pat yra mano „github“čia.

1 žingsnis: „Processing.serial“naudojimas

Apdorojimo kodas

Pirmosios dvi kodo eilutės bus

importo apdorojimas.serijinis.*; Serijinis myPort;

Čia pirmoje eilutėje mes importuojame biblioteką - apdorojame, o antroje eilutėje sukuriame serijos klasės objektą, pavadintą myPort, galite jį pavadinti, kaip jums patinka, laikydamiesi identifikatoriaus pavadinimo taisyklių.

Apdorojant turime void setup () ir void draw (), kur void yra funkcijos grąžinimo tipas, kurį taip pat galite pakeisti į int setup () ir int draw () ar kitą jums patinkantį duomenų tipą, tačiau turėsite grąžinti reikšmė, kurios duomenų tipas yra toks pat, kaip ir duomenų tipo, kurį naudojate prieš funkcijas.

atliekant sąranką () rašome teiginius, kuriuos turime įvykdyti vieną kartą, o piešinyje () rašome teiginius, kuriuos turime vykdyti kelis kartus. Abi aukščiau paminėtos kodo eilutės turėtų būti parašytos virš void setup (), nes joms turi būti suteikta visuotinė prieiga.

Void setup () inicijuosime objektą myPort.

void setup () {

dydis (800, 800);

myPort = nauja serija (tai, "COM18", 9600);

}

Linijos dydis (800, 800); nustato ekrano dydį, kuris yra 800 pikselių 800 pikselių.

Raktinis žodis naujas antroje eilutėje naudojamas rezervuoti vietos objektui atmintyje, argumentas tai yra atskaitos kintamasis, nurodantis esamą objektą. Argumentas COM18 yra prijungtas „Arduino“prievadas, mums to reikia, nes duomenis perduosime per nuosekliąją sąsają. Skaičius 18 jūsų atveju gali būti kitoks, jį rasite „Arduino IDE“skiltyje Įrankiai> Uostas, o 9600 yra duomenų perdavimo sparta, kurią galite pakeisti tiek „Arduino“, tiek „Processing“.

2 žingsnis: supraskite serijos klasę

Serialo konstruktorius

Serijinis (pirminis, prievado pavadinimas, baudos greitis, paritetas, duomenų bitai, sustabdymo bitai)

Argumentai:

tėvai: paprastai naudokite „tai“

baudRate (int): 9600 yra numatytasis

portName (String): prievado pavadinimas (COM1 yra numatytasis)

paritetas (char): „N“- nė vienas, „E“- lyginis, „O“- nelyginis, „M“- ženklas, „S“- tarpas („N“yra numatytasis)

dataBits (int): 8 yra numatytasis

stopBits (plūdė): 1,0, 1,5 arba 2,0 (1,0 yra numatytasis)

Svarbūs metodai:

  1. myPort.available () - pateikia turimų baitų skaičių.
  2. myPort.clear () - ištuština buferį ir pašalina visus ten saugomus duomenis.
  3. myPort.read () - pateikia buferio laukiančio kito baito skaičių nuo 0 iki 255.
  4. myPort.readString () - grąžina visus buferio duomenis kaip eilutę arba nulį, jei nieko nėra.
  5. myPort.write ("testas") - Įrašo baitus, simbolius, intrus, baitus , eilutes į nuoseklųjį prievadą.
  6. myPort.stop () - Stps duomenų susmulkinimo uoste.

3 žingsnis: „Arduino“serijos klasė

Prieš naudojant serijinę klasę, nereikia jos importuoti į „Arduino“.

„Arduino“yra 2 funkcijos, vadinamos sąranka () ir kilpa (), sąranka vykdoma tik vieną kartą, bet ciklas veikia kelis kartus. Norėdami pradėti serijinį ryšį, sąrankoje () turime parašyti naudodamiesi pradžios () metodu. „Arduino“, skirtingai nei apdorojimas, mums nereikia paminėti uosto kaip „start“() metodo argumentų, nes mes jau nurodome prievadą įkeldami eskizą „Arduino“.

Taigi sąranka () atrodys taip:

void setup () {

Serial.begin (9600); // pradėti serijinį ryšį

}

9600 čia nurodo duomenų perdavimo spartą, kurią taip pat minėjome apdorojimo faile. Tinkamam bendravimui abu duomenų perdavimo greičiai turėtų būti vienodi arba galite matyti serijinę išvestį kaip kvailystę.

Dabar pažiūrėkime ciklo () dalį. Ši kodo dalis vykdoma kelis kartus. Jei norime kai kuriuos duomenis perskaityti per prievadą, naudosime metodą Serial.read (). Ši funkcija grąžina nulį, jei nėra duomenų, todėl šį metodą vadinsime tik tada, kai serijiniame sraute bus duomenų.

Norėdami patikrinti, ar yra tam tikrų duomenų, naudosime metodą Serial.available (). Jei pateikiama reikšmė didesnė nei 0 - yra tam tikrų duomenų.

Taigi ciklo () dalis atrodys taip:

void loop () {

if (Serial.available ()> 0) {// jei serijiniame prievade yra tam tikrų duomenų

char būsena = Serial.read (); // skaityti vertę

// jei teiginiai arba perkeliamos raidės

}

}

Dabar galime naudoti, jei kopėčios arba jei yra daug galimų rezultatų, kintamos būsenos jungiklį taip pat galime naudoti.

4 veiksmas: sukurkite GUI 7 segmentų valdiklį

Sukurkite GUI 7 segmentų valdiklį
Sukurkite GUI 7 segmentų valdiklį
Sukurkite GUI 7 segmentų valdiklį
Sukurkite GUI 7 segmentų valdiklį
Sukurkite GUI 7 segmentų valdiklį
Sukurkite GUI 7 segmentų valdiklį

Failai pridedami čia. Pastaba: apdorojimui taip pat turėsite įdiegti valdymo p5 biblioteką, kurią naudoju kurdamas interaktyvius GUI mygtukus.

Smeigtukų skaičiai

7 segmentai (abėcėlės tvarka) nurodo vaizdą

a - skaitmeninis kaištis 2

b - skaitmeninis kaištis 3

c - skaitmeninis kaištis 4

d - skaitmeninis kaištis 5

e - skaitmeninis kaištis 6

f - skaitmeninis kaištis 7

g - skaitmeninis kaištis 8

dp - skaitmeninis kaištis 9

Visas turinys ir kodas taip pat yra mano „github“čia

Rekomenduojamas: