Satura rādītājs:

Apstrādes un Arduino savienošana un 7 segmentu un servo GUI kontrolieris: 4 soļi
Apstrādes un Arduino savienošana un 7 segmentu un servo GUI kontrolieris: 4 soļi

Video: Apstrādes un Arduino savienošana un 7 segmentu un servo GUI kontrolieris: 4 soļi

Video: Apstrādes un Arduino savienošana un 7 segmentu un servo GUI kontrolieris: 4 soļi
Video: Ventspils Digitālā centra "Atvērto durvju pasākums" 2024, Novembris
Anonim
Apstrādes un Arduino savienošana un 7 segmentu un servo GUI kontrolieris
Apstrādes un Arduino savienošana un 7 segmentu un servo GUI kontrolieris

Dažiem jūsu veiktajiem projektiem ir jāizmanto Arduino, jo tā nodrošina vienkāršu prototipēšanas platformu, bet grafikas parādīšana Arduino sērijas monitorā var aizņemt diezgan ilgu laiku, un to ir pat grūti izdarīt. Jūs varat parādīt diagrammas Arduino sērijas monitorā, taču diagrammas nav vienīgā lieta, kas jums var būt jāparāda. Visi interaktīvie objekti, piemēram, slīdņi, pogas, programmas ar 2D, 3D, PDF vai SVG izvadi, un jūs varat arī viegli izveidot animācijas. Apstrādes noklusējuma programmēšanas režīms ir Java, taču jūs varat to pārslēgt uz Android, p5.js, REPL, CoffeeScript un JavaScript. Šajā instrukcijā mēs tomēr izmantosim Java programmēšanas režīmu.

Viss saturs un kods ir pieejams arī manā github šeit.

1. darbība. Processing.serial izmantošana

Apstrādes kods

Pirmās divas koda rindas būs

importa apstrāde.sērija.*; Sērijas myPort;

Šeit pirmajā rindā mēs importējam bibliotēku - apstrādi un otrajā rindā mēs izveidojam sērijas klases objektu ar nosaukumu myPort, jūs varat to nosaukt, kā vēlaties, ievērojot identifikatora nosaukšanas noteikumus.

Apstrādes laikā mums ir void setup () un void draw (), kur void ir funkcijas atgriešanas veids, kuru varat mainīt arī uz int setup () un int draw () vai citu datu veidu, kas jums patīk, bet jums būs jāatgriež vērtība, kurai ir tāds pats datu tips kā pirms funkcijām izmantotajam datu tipam.

setup () mēs rakstām paziņojumus, kas mums jāizpilda vienreiz, savukārt draw () mēs rakstām paziņojumus, kas mums jāizpilda vairākas reizes. Abas iepriekš minētās koda rindiņas jāraksta virs void setup (), jo tām ir jābūt globālai piekļuvei.

Void setup () mēs inicializēsim objektu myPort.

void setup () {

izmērs (800, 800);

myPort = jauns seriāls (šis, "COM18", 9600);

}

Līnijas izmērs (800, 800); nosaka ekrāna izmēru, kas ir 800 x 800 pikseļi.

Atslēgas vārds jauns otrajā rindā tiek izmantots, lai rezervētu vietu objektam atmiņā, arguments tas ir atsauces mainīgais, kas attiecas uz pašreizējo objektu. Arguments COM18 ir savienota Arduino osta, mums tas ir vajadzīgs, jo mēs transportēsim datus, izmantojot seriālo saskarni. Cipars 18 jūsu gadījumā var būt atšķirīgs, to varat atrast Arduino IDE sadaļā Rīki> Ports, un 9600 ir datu pārraides ātrums, ko varat mainīt gan Arduino, gan Processing.

2. darbība. Izprotiet sērijas klasi

Seriāla konstruktors

Seriāls (vecāks, porta nosaukums, baudas ātrums, paritāte, dataBits, stopBits)

Argumenti:

vecāki: parasti izmantojiet “šo”

baudRate (int): noklusējums ir 9600

portName (String): porta nosaukums (COM1 ir noklusējums)

paritāte (simbols): “N” nav, “E” - pāra, “O” - nepāra, “M” - zīme, “S” - atstarpe (“N” ir noklusējuma vērtība)

dataBits (int): noklusējums ir 8

stopBits (pludiņš): 1,0, 1,5 vai 2,0 (1,0 ir noklusējums)

Svarīgas metodes:

  1. myPort.available () - atgriež pieejamo baitu skaitu.
  2. myPort.clear () - iztukšo buferi un noņem visus tur saglabātos datus.
  3. myPort.read () - atgriež skaitli no 0 līdz 255 nākamajam baitam, kas gaida buferī.
  4. myPort.readString () - atgriež visus datus no bufera kā virkni vai nulli, ja nekas nav pieejams.
  5. myPort.write ("tests") - raksta baitus, rakstzīmes, ints, baitus , virknes uz seriālo portu.
  6. myPort.stop () - paātrina datu sasmalcināšanu ostā.

3. darbība: Arduino sērijas klase

Pirms sērijveida klases izmantošanas Arduino nav jāimportē.

Arduino ir divas funkcijas, ko sauc par iestatīšanu () un cilpu (), iestatīšana darbojas tikai vienu reizi, bet cilpa darbojas vairākas reizes. Iestatījumā () mums ir jāraksta, lai sāktu sērijas sakarus, izmantojot sākuma () metodi. Arduino atšķirībā no apstrādes mums nav jāpiemin osta kā argumenti start () metodei, jo mēs jau norādām ostu, augšupielādējot skici Arduino.

Tātad iestatīšana () izskatīsies šādi:

void setup () {

Sērijas sākums (9600); // sākt sērijas sakarus

}

9600 šeit norāda datu pārraides ātrumu, ko mēs arī minējām apstrādes failā. Lai nodrošinātu pareizu saziņu, abiem datu pārraides ātrumiem jābūt vienādiem, vai arī sērijveida izvade var šķist muļķīga.

Tagad apskatīsim cilpas () daļu. Šī koda daļa darbojas vairākas reizes. Ja mēs vēlamies nolasīt dažus datus pēc porta, mēs izmantosim Serial.read () metodi. Šī funkcija atgriež nulli, ja nav pieejami dati, tāpēc šo metodi izsauksim tikai tad, ja būs pieejami daži dati sērijas straumē.

Lai pārbaudītu, vai ir pieejami daži dati, mēs izmantosim metodi Serial.available (). Ja tiek atgriezta vērtība, kas lielāka par 0, ir pieejami daži dati.

Tātad cilpas () daļa izskatīsies šādi:

void loop () {

ja (Serial.available ()> 0) {// ja seriālajā portā ir pieejami daži dati

char stāvoklis = Serial.read (); // nolasīt vērtību

// ja paziņojumi vai pārslēdzas burts

}

}

Tagad mēs varam izmantot, ja kāpnes vai ja ir daudz iespējamo rezultātu, mēs varam izmantot slēdža korpusu arī mainīgam stāvoklim.

4. darbība: izveidojiet GUI 7 segmenta kontrolieri

Izveidojiet GUI 7 segmentu kontrolieri
Izveidojiet GUI 7 segmentu kontrolieri
Izveidojiet GUI 7 segmentu kontrolieri
Izveidojiet GUI 7 segmentu kontrolieri
Izveidojiet GUI 7 segmentu kontrolieri
Izveidojiet GUI 7 segmentu kontrolieri

Faili ir pievienoti šeit. Piezīme. Apstrādei jums būs jāinstalē arī kontroles p5 bibliotēka, kuru esmu izmantojis, lai izveidotu GUI interaktīvās pogas.

Pin cipari

7 segments (alfabētiskā secībā) norāda attēlu

a - digitālā tapa 2

b - digitālā tapa 3

c - digitālā tapa 4

d - digitālā tapa 5

e - digitālā tapa 6

f - digitālā tapa 7

g - digitālā tapa 8

dp - digitālā tapa 9

Viss saturs un kods ir pieejams arī manā github šeit

Ieteicams: