Inhoudsopgave:

Processing en Arduino aansluiten en 7 Segment en Servo GUI-controller maken - Ajarnpa
Processing en Arduino aansluiten en 7 Segment en Servo GUI-controller maken - Ajarnpa

Video: Processing en Arduino aansluiten en 7 Segment en Servo GUI-controller maken - Ajarnpa

Video: Processing en Arduino aansluiten en 7 Segment en Servo GUI-controller maken - Ajarnpa
Video: How to Use I2C LCD with Arduino | Very Easy Arduino LCD I2C Tutorial | Arduino 16x2 LCD I2C Tutorial 2024, November
Anonim
Processing en Arduino aansluiten en 7 Segment en Servo GUI-controller maken
Processing en Arduino aansluiten en 7 Segment en Servo GUI-controller maken

Voor sommige projecten moest je Arduino gebruiken, omdat het een eenvoudig prototyping-platform biedt, maar het weergeven van afbeeldingen in een seriële monitor van Arduino kan behoorlijk lang duren en is zelfs moeilijk om te doen. U kunt grafieken weergeven op de Arduino Serial Monitor, maar grafieken zijn niet het enige dat u mogelijk moet weergeven. Alle interactieve objecten zoals schuifregelaars, knoppen, programma's met 2D-, 3D-, PDF- of SVG-uitvoer en u kunt ook eenvoudig animaties maken. De standaard programmeermodus voor verwerking is Java, maar u kunt deze wijzigen naar Android, p5.js, REPL, CoffeeScript en JavaScript. In deze Instructable zullen we echter de Java-programmeermodus gebruiken.

Alle inhoud en code is ook beschikbaar op mijn github hier.

Stap 1: Processing.serial gebruiken

Verwerkingscode

De eerste twee regels code zijn:

importverwerking.serienummer.*; Seriële myPort;

Hier in de eerste regel importeren we de bibliotheek - verwerking en in de tweede regel creëren we een object van de klasse Serial genaamd myPort, je zou het kunnen noemen wat je maar wilt volgens de regels voor het benoemen van een identifier.

Bij de verwerking hebben we void setup() en void draw() waarbij void het retourtype van de functie is, je zou het ook kunnen veranderen in int setup() en int draw() of een ander gegevenstype dat je leuk vindt, maar je moet een waarde die hetzelfde gegevenstype heeft als het gegevenstype dat u vóór de functies gebruikt.

in setup() schrijven we de instructies die we één keer moeten uitvoeren, terwijl we in draw () de instructies schrijven die we meerdere keren moeten uitvoeren. De twee hierboven genoemde regels code moeten boven void setup() worden geschreven omdat ze globale toegang moeten hebben.

In de void setup() zullen we het object myPort initialiseren.

ongeldige setup(){

grootte (800, 800);

myPort=nieuwe serieel (dit, "COM18", 9600);

}

De lijngrootte (800, 800); definieert de grootte van het scherm dat 800 pixels bij 800 pixels is.

Het sleutelwoord nieuw in de tweede regel wordt gebruikt om ruimte te reserveren voor het object in het geheugen, het argument dat dit een referentievariabele is die verwijst naar het huidige object. Het argument COM18 is dat de Arduino-poort is aangesloten, we hebben dit nodig omdat we de gegevens via een seriële interface zullen transporteren. Het getal 18 kan in jouw geval anders zijn, je kunt het vinden onder Tools>Poort in de Arduino IDE en 9600 is de baudrate die je kunt wijzigen in zowel Arduino als Processing.

Stap 2: Begrijp de seriële klasse

De constructor voor Serial

Serieel (ouder, poortnaam, baudrate, pariteit, dataBits, stopBits)

Argumenten:

ouder: gebruik meestal "dit"

baudrate (int): 9600 is de standaard

portName (String): naam van de poort (COM1 is de standaard)

pariteit (char): 'N' voor geen, 'E' voor even, 'O' voor oneven, 'M' voor mark, 'S' voor spatie ('N' is de standaard)

dataBits (int): 8 is de standaard

stopBits (float): 1.0, 1.5 of 2.0 (1.0 is de standaard)

Belangrijke methoden:

  1. myPort.available() - retourneert het aantal beschikbare bytes.
  2. myPort.clear() - leegt de buffer en verwijdert alle gegevens die daar zijn opgeslagen.
  3. myPort.read() - Retourneert een getal tussen 0 en 255 voor de volgende byte die in de buffer wacht.
  4. myPort.readString() - Retourneert alle gegevens uit de buffer als een tekenreeks of null als er niets beschikbaar is.
  5. myPort.write("test") - Schrijft bytes, chars, ints, bytes, Strings naar de seriële poort.
  6. myPort.stop() - Stps de datacommunicatie op de poort.

Stap 3: Arduino seriële klasse

U hoeft de seriële klasse niet in Arduino te importeren voordat u deze gebruikt.

In Arduino zijn er 2 functies genaamd setup() en loop() de setup wordt slechts één keer uitgevoerd, maar de lus wordt meerdere keren uitgevoerd. In setup() moeten we de methode begin() gebruiken om de seriële communicatie te starten. In Arduino hoeven we, in tegenstelling tot verwerking, de poort niet te vermelden als de argumenten van de begin()-methode, omdat we de poort al specificeren tijdens het uploaden van de schets in Arduino.

Dus de setup() ziet er als volgt uit:

ongeldige setup(){

Serieel.begin(9600); // start de seriële communicatie

}

9600 specificeert hier de baudrate die we ook hadden vermeld in het verwerkingsbestand. Voor een goede communicatie moeten beide baudrates gelijk zijn, anders ziet u de seriële uitvoer als iets wartaals.

Laten we nu het loop()-gedeelte bekijken. Dit deel van de code wordt meerdere keren uitgevoerd. Als we wat gegevens per poort willen lezen, gebruiken we de methode Serial.read(). Deze functie retourneert null als er geen gegevens beschikbaar zijn, dus we zullen deze methode alleen aanroepen als we enkele gegevens in de seriële stream beschikbaar hebben.

Om te controleren of er gegevens beschikbaar zijn, gebruiken we de methode Serial.available(). Als het een waarde groter dan 0 retourneert, zijn er enkele gegevens beschikbaar.

Dus het loop()-gedeelte ziet er als volgt uit:

lege lus(){

if (Serial.available () > 0) { // als er gegevens beschikbaar zijn in de seriële poort

char staat = Serial.read(); // lees de waarde

// if statements of switch case

}

}

Nu kunnen we if ladder gebruiken of als er veel mogelijke uitkomsten zijn, kunnen we ook switch case gebruiken voor variabele toestand.

Stap 4: Bouw een GUI 7 Segment Controller

Bouw een GUI 7 Segment Controller
Bouw een GUI 7 Segment Controller
Bouw een GUI 7 Segment Controller
Bouw een GUI 7 Segment Controller
Bouw een GUI 7 Segment Controller
Bouw een GUI 7 Segment Controller

De bestanden zijn hier bijgevoegd. Opmerking: voor verwerking moet u ook de control p5-bibliotheek installeren die ik heb gebruikt om interactieve GUI-knoppen te maken.

Pin nummers

7 segmenten (in alfabetische volgorde) verwijzen naar de afbeelding

a - digitale pin 2

b - digitale pin 3

c - digitale pin 4

d - digitale pin 5

e - digitale pin 6

f - digitale pin 7

g - digitale pin 8

dp - digitale pin 9

Alle inhoud en code is ook beschikbaar op mijn github hier

Aanbevolen: