Inhoudsopgave:
- Stap 1: Processing.serial gebruiken
- Stap 2: Begrijp de seriële klasse
- Stap 3: Arduino seriële klasse
- Stap 4: Bouw een GUI 7 Segment Controller
Video: Processing en Arduino aansluiten en 7 Segment en Servo GUI-controller maken - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:16
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:
- myPort.available() - retourneert het aantal beschikbare bytes.
- myPort.clear() - leegt de buffer en verwijdert alle gegevens die daar zijn opgeslagen.
- myPort.read() - Retourneert een getal tussen 0 en 255 voor de volgende byte die in de buffer wacht.
- myPort.readString() - Retourneert alle gegevens uit de buffer als een tekenreeks of null als er niets beschikbaar is.
- myPort.write("test") - Schrijft bytes, chars, ints, bytes, Strings naar de seriële poort.
- 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
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:
Arduino Meerdere I2C-apparaten aansluiten: 6 stappen
Arduino Verbind meerdere I2C-apparaten: in deze tutorial leren we hoe je verschillende modules met een I2C-verbinding op arduino kunt aansluiten. Bekijk de video! In ons geval gebruiken we 4 OLED-schermen als voorbeeld, maar je kunt elke andere I2C-module gebruiken sensoren indien gewenst.Opmerking: 4 OLED-displays co
MEERDERE SENSOREN AANSLUITEN OP ÉÉN ARDUINO UNO SERILE POORT: 4 stappen
MEERDERE SENSOREN AANSLUITEN OP ÉÉN ARDUINO UNO SERILE POORT: In deze tutorial breiden we een enkele Arduino UNO UART (Rx/Tx) seriële poort uit, zodat meerdere Atlas-sensoren kunnen worden aangesloten. De uitbreiding wordt gedaan met behulp van een 8:1 Serial Port Expander-kaart. De poort van de Arduino wordt na wi
Een Bluetooth-adapter Pt.2 maken (een compatibele luidspreker maken): 16 stappen
Een Bluetooth-adapter Pt.2 maken (een compatibele luidspreker maken): in deze instructie laat ik u zien hoe u mijn Bluetooth-adapter kunt gebruiken om een oude luidspreker Bluetooth-compatibel te maken. * Als u mijn eerste instructie over "Maken nog niet hebt gelezen een Bluetooth-adapter" Ik raad u aan dit te doen voordat u doorgaat.C
Arduino: gemeenschappelijke sensoren en items aansluiten: 4 stappen
Arduino: Hoe gemeenschappelijke sensoren en items aan te sluiten: Soms lijkt het je gewoon niet te lukken om erachter te komen hoe je een circuit kunt laten werken! Deze instructable helpt je om je elektronica te gebruiken op de manier waarop ze bedoeld zijn door je te laten zien hoe je ze op je Arduino-bord kunt aansluiten. Moeilijkheidsgraad: e a s
Een FT232RL-programmeur aansluiten op de Arduino ATMEGA328 voor het uploaden van schetsen: 4 stappen
Hoe een FT232RL-programmeur op de Arduino aan te sluiten ATMEGA328 voor het uploaden van schetsen: In deze mini Instructable leert u hoe u de FT232RL-chip op de ATMEGA328-microcontroller kunt aansluiten om schetsen te uploaden. U kunt hier een Instructable op deze stand-alone microcontroller zien