Innholdsfortegnelse:

Koble prosessering og Arduino og lag 7 segmenter og servo GUI -kontroller: 4 trinn
Koble prosessering og Arduino og lag 7 segmenter og servo GUI -kontroller: 4 trinn

Video: Koble prosessering og Arduino og lag 7 segmenter og servo GUI -kontroller: 4 trinn

Video: Koble prosessering og Arduino og lag 7 segmenter og servo GUI -kontroller: 4 trinn
Video: CS50 2014 – 7-я неделя 2024, November
Anonim
Koble til prosessering og Arduino og lag 7 segmenter og servo GUI -kontroller
Koble til prosessering og Arduino og lag 7 segmenter og servo GUI -kontroller

For noen prosjekter må du bruke Arduino ettersom det gir en enkel prototypeplattform, men visning av grafikk i seriell monitor av Arduino kan ta ganske lang tid og er til og med vanskelig å gjøre. Du kan vise grafer på Arduino Serial Monitor, men grafer er ikke det eneste du må vise. Alle interaktive objekter som glidebrytere, knapper, programmer med 2D, 3D, PDF eller SVG -utgang, og du kan også enkelt lage animasjoner. Standard programmeringsmodus for behandling er Java, men du kan bytte den til Android, p5.js, REPL, CoffeeScript og JavaScript. I denne instruksen vil vi imidlertid bruke Java -programmeringsmodus.

Alt innhold og kode er også tilgjengelig på min github her.

Trinn 1: Bruke Processing.serial

Behandlingskode

De to første kodelinjene vil være

import behandling. serie.*; Seriell myPort;

Her på den første linjen importerer vi biblioteket - prosessering, og i den andre linjen lager vi et objekt i serien Serial ved navn myPort, du kan kalle det hva du vil etter reglene for navngiving av en identifikator.

Under behandlingen har vi void setup () og void draw () der void er returtypen til funksjonen, du kan også endre den til int setup () og int draw () eller annen datatype du liker, men du må returnere en verdi som har samme datatype som datatypen du bruker før funksjonene.

i setup () skriver vi utsagnene vi trenger for å utføre én gang, mens vi i draw () skriver utsagnene vi trenger for å utføre flere ganger. De to kodelinjene som er nevnt ovenfor, bør skrives over oppsett av tomrom () fordi de må ha global tilgang.

I det ugyldige oppsettet () vil vi initialisere objektet myPort.

ugyldig oppsett () {

størrelse (800, 800);

myPort = new Serial (dette, "COM18", 9600);

}

Linjestørrelsen (800, 800); definerer størrelsen på skjermen som er 800 piksler x 800 piksler.

Stikkordet nytt i den andre linjen brukes til å reservere plass til objektet i minnet, argumentet dette er en referansevariabel som refererer til det nåværende objektet. Argumentet COM18 er porten til Arduino tilkoblet, vi trenger dette, da vi skal transportere dataene via et serielt grensesnitt. Tallet 18 kan være annerledes i ditt tilfelle. Du finner det under Verktøy> Port i Arduino IDE og 9600 er baudhastigheten du kan endre dette i både Arduino og Processing.

Trinn 2: Forstå serieklassen

Konstruktøren for Serial

Seriell (overordnet, portnavn, baudRate, paritet, dataBits, stopBits)

Argumenter:

forelder: bruk vanligvis "dette"

baudRate (int): 9600 er standard

portName (String): portens navn (COM1 er standard)

paritet (røyke): 'N' for ingen, 'E' for partall, 'O' for oddetall, 'M' for merke, 'S' for mellomrom ('N' er standard)

dataBits (int): 8 er standard

stopBits (float): 1.0, 1.5 eller 2.0 (1.0 er standard)

Viktige metoder:

  1. myPort.available () - returnerer antall tilgjengelige byte.
  2. myPort.clear () - tømmer bufferen og fjerner alle dataene som er lagret der.
  3. myPort.read () - Returnerer et tall mellom 0 og 255 for neste byte som venter i bufferen.
  4. myPort.readString () - Returnerer alle dataene fra bufferen som en streng eller null hvis det ikke er noe tilgjengelig.
  5. myPort.write ("test") - Skriver byte, tegn, ints, byte , strenger til den serielle porten.
  6. myPort.stop () - Stopper datakommunikasjonen på porten.

Trinn 3: Arduino Serial Class

Du trenger ikke å importere serieklassen i Arduino før du bruker den.

I Arduino er det to funksjoner som kalles setup () og loop () oppsettet kjører bare én gang, men sløyfen kjøres flere ganger. I setup () må vi skrive, bruk metoden () for å starte seriekommunikasjonen. I Arduino i motsetning til behandling trenger vi ikke å nevne porten som argumentene for begin () -metoden, ettersom vi allerede spesifiserer porten mens vi laster opp skissen i Arduino.

Så oppsettet () vil se slik ut:

ugyldig oppsett () {

Serial.begin (9600); // start seriekommunikasjonen

}

9600 her spesifiserer baudhastigheten vi også hadde nevnt dette i behandlingsfilen. For riktig kommunikasjon bør begge overføringshastighetene være like, eller du ser seriell utgang som noe tull.

La oss nå se loop () -delen. Denne delen av koden kjøres flere ganger. Hvis vi vil lese noen data ved porten, bruker vi metoden Serial.read (). Denne funksjonen returnerer null hvis ingen data er tilgjengelig, så vi kaller denne metoden bare når vi har noen data tilgjengelig i seriell strøm.

For å sjekke om det er noen data tilgjengelig, bruker vi metoden Serial.available (). Hvis den returnerer verdi større enn 0 - er noen data tilgjengelig.

Så loop () -delen vil se slik ut:

void loop () {

hvis (Serial.available ()> 0) {// hvis noen data er tilgjengelig i den serielle porten

char state = Serial.read (); // les verdien

// hvis uttalelser eller bytte bokstav

}

}

Nå kan vi bruke hvis stige eller hvis det er mange mulige utfall, kan vi bruke bryteret også for variabel tilstand.

Trinn 4: Bygg en GUI 7 -segmentkontroller

Bygg en GUI 7 -segmentkontroller
Bygg en GUI 7 -segmentkontroller
Bygg en GUI 7 -segmentkontroller
Bygg en GUI 7 -segmentkontroller
Bygg en GUI 7 -segmentkontroller
Bygg en GUI 7 -segmentkontroller

Filene er vedlagt her. Merk: For behandling må du også installere kontroll p5 -biblioteket som jeg har brukt til å lage interaktive GUI -knapper.

Pin -tall

7 segment (i alfabetisk rekkefølge) refererer bildet

a - digital pin 2

b - digital pin 3

c - digital pin 4

d - digital pin 5

e - digital pin 6

f - digital pin 7

g - digital pin 8

dp - digital pin 9

Alt innhold og kode er også tilgjengelig på min github her

Anbefalt: