Sommario:

Collegamento di elaborazione e Arduino e creazione di controller GUI a 7 segmenti e servo: 4 passaggi
Collegamento di elaborazione e Arduino e creazione di controller GUI a 7 segmenti e servo: 4 passaggi

Video: Collegamento di elaborazione e Arduino e creazione di controller GUI a 7 segmenti e servo: 4 passaggi

Video: Collegamento di elaborazione e Arduino e creazione di controller GUI a 7 segmenti e servo: 4 passaggi
Video: How to use Ishow V2.3 software(SD card software) to edit texts? 2024, Novembre
Anonim
Collegamento di elaborazione e Arduino e creazione di controller GUI a 7 segmenti e servo
Collegamento di elaborazione e Arduino e creazione di controller GUI a 7 segmenti e servo

Per alcuni progetti è necessario utilizzare Arduino in quanto fornisce una piattaforma di prototipazione semplice, ma la visualizzazione della grafica nel monitor seriale di Arduino può richiedere molto tempo ed è persino difficile da eseguire. È possibile visualizzare grafici sul monitor seriale Arduino, ma i grafici non sono l'unica cosa che potrebbe essere necessario visualizzare. Tutti gli oggetti interattivi come cursori, pulsanti, programmi con output 2D, 3D, PDF o SVG e puoi anche creare facilmente animazioni. La modalità di programmazione predefinita per l'elaborazione è Java, ma puoi cambiarla con Android, p5.js, REPL, CoffeeScript e JavaScript. In questo Instructable utilizzeremo comunque la modalità di programmazione Java.

Tutto il contenuto e il codice sono disponibili anche sul mio github qui.

Passaggio 1: utilizzo di Processing.serial

Codice di elaborazione

Le prime due righe di codice saranno

import processing.serial.*; myPort seriale;

Qui nella prima riga stiamo importando la libreria - elaborazione e nella seconda riga stiamo creando un oggetto della classe Serial chiamato myPort, puoi chiamarlo come preferisci seguendo le regole di denominazione di un identificatore.

Nell'elaborazione abbiamo void setup() e void draw() dove void è il tipo di ritorno della funzione potresti anche cambiarlo in int setup() e int draw() o altro tipo di dati che ti piace ma dovrai restituire un value che ha lo stesso tipo di dati del tipo di dati utilizzato prima delle funzioni.

in setup() scriviamo le istruzioni che dobbiamo eseguire una volta mentre in draw() scriviamo le istruzioni che dobbiamo eseguire più volte. Le due righe di codice sopra menzionate dovrebbero essere scritte sopra void setup() perché devono avere accesso globale.

Nel void setup() inizializzeremo l'oggetto myPort.

void setup(){

dimensione (800, 800);

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

}

La dimensione della linea (800, 800); definisce la dimensione dello schermo che è 800 pixel per 800 pixel.

La parola chiave new nella seconda riga serve per riservare spazio all'oggetto in memoria, l'argomento this è una variabile di riferimento che fa riferimento all'oggetto corrente. L'argomento COM18 è la porta di Arduino collegata, ne abbiamo bisogno in quanto trasporteremo i dati tramite interfaccia seriale. Il numero 18 potrebbe essere diverso nel tuo caso, puoi trovarlo in Strumenti> Porta nell'IDE di Arduino e 9600 è il baud rate che puoi modificare sia in Arduino che in Processing.

Passaggio 2: comprendere la classe seriale

Il costruttore di Serial

Serial(parent, portName, baudRate, parità, dataBits, stopBits)

Argomenti:

genitore: in genere usa "this"

baudRate (int): 9600 è l'impostazione predefinita

portName (String): nome della porta (COM1 è l'impostazione predefinita)

parità (char): 'N' per nessuno, 'E' per pari, 'O' per dispari, 'M' per mark, 'S' per spazio ('N' è l'impostazione predefinita)

dataBits (int): 8 è l'impostazione predefinita

stopBits (float): 1.0, 1.5 o 2.0 (1.0 è l'impostazione predefinita)

Metodi importanti:

  1. myPort.available() - restituisce il numero di byte disponibili.
  2. myPort.clear() - svuota il buffer e rimuove tutti i dati memorizzati.
  3. myPort.read() - Restituisce un numero compreso tra 0 e 255 per il byte successivo in attesa nel buffer.
  4. myPort.readString() - Restituisce tutti i dati dal buffer come String o null se non è disponibile nulla.
  5. myPort.write("test") - Scrive byte, caratteri, ints, bytes, stringhe sulla porta seriale.
  6. myPort.stop() - Interrompe la comunicazione dei dati sulla porta.

Passaggio 3: classe seriale Arduino

Non è necessario importare la classe seriale in Arduino prima di utilizzarla.

In Arduino ci sono 2 funzioni chiamate setup() e loop() l'installazione viene eseguita solo una volta ma il ciclo viene eseguito più volte. In setup() dobbiamo scrivere utilizzare il metodo begin() per avviare la comunicazione seriale. In Arduino, a differenza dell'elaborazione, non è necessario menzionare la porta come argomento del metodo begin() poiché specifichiamo già la porta durante il caricamento dello sketch in Arduino.

Quindi il setup() sarà simile a questo:

void setup(){

Serial.begin(9600); //avvia la comunicazione seriale

}

9600 qui specifica la velocità di trasmissione di cui abbiamo parlato anche nel file di elaborazione. Per una comunicazione corretta, entrambe le velocità di trasmissione dovrebbero essere uguali o potresti vedere l'uscita seriale come qualcosa di incomprensibile.

Ora vediamo la parte loop(). Questa parte del codice viene eseguita più volte. Se vogliamo leggere alcuni dati dalla porta useremo il metodo Serial.read(). Questa funzione restituisce null se non sono disponibili dati, quindi chiameremo questo metodo solo quando avremo alcuni dati disponibili nel flusso seriale.

Per verificare se sono disponibili alcuni dati utilizzeremo il metodo Serial.available(). Se restituisce un valore maggiore di 0, sono disponibili alcuni dati.

Quindi la parte loop() sarà simile a questa:

ciclo vuoto(){

if(Serial.available() > 0){ //se alcuni dati sono disponibili nella porta seriale

char state = Serial.read(); //leggi il valore

// istruzioni if o cambia maiuscole/minuscole

}

}

Ora possiamo usare se ladder o se ci sono molti risultati possibili possiamo usare anche switch case per lo stato variabile.

Passaggio 4: crea un controller a 7 segmenti della GUI

Costruisci un controller a 7 segmenti della GUI
Costruisci un controller a 7 segmenti della GUI
Costruisci un controller a 7 segmenti della GUI
Costruisci un controller a 7 segmenti della GUI
Costruisci un controller a 7 segmenti della GUI
Costruisci un controller a 7 segmenti della GUI

I file sono allegati qui. Nota: per l'elaborazione dovrai anche installare la libreria di controllo p5 che ho usato per creare pulsanti interattivi della GUI.

Numeri pin

7 segmenti (in ordine alfabetico) fare riferimento all'immagine

a - pin digitale 2

b - pin digitale 3

c - pin digitale 4

d - pin digitale 5

e - pin digitale 6

f - pin digitale 7

g - pin digitale 8

dp - pin digitale 9

Tutto il contenuto e il codice sono disponibili anche sul mio github qui

Consigliato: