Sommario:

Testa Arduino nudo, con software di gioco utilizzando input capacitivo e LED: 4 passaggi
Testa Arduino nudo, con software di gioco utilizzando input capacitivo e LED: 4 passaggi

Video: Testa Arduino nudo, con software di gioco utilizzando input capacitivo e LED: 4 passaggi

Video: Testa Arduino nudo, con software di gioco utilizzando input capacitivo e LED: 4 passaggi
Video: Coding e tecnologia: semaforo verde per Arduino | Maurizio Giaffredo 2024, Novembre
Anonim
Testa Arduino nudo, con software di gioco utilizzando input capacitivo e LED
Testa Arduino nudo, con software di gioco utilizzando input capacitivo e LED
Testa Arduino nudo, con software di gioco utilizzando input capacitivo e LED
Testa Arduino nudo, con software di gioco utilizzando input capacitivo e LED

Gioco interattivo "Push-It" che utilizza una scheda Arduino nuda, senza bisogno di parti esterne o cablaggio (utilizza un ingresso 'touch' capacitivo). Mostrato sopra, mostra che funziona su due schede diverse.

Push-It ha due scopi.

  1. Per dimostrare/verificare rapidamente che la tua scheda Arduino funzioni e che tu sia configurato correttamente per scaricare un nuovo sketch di codice su di essa. Vedrai che esegue l'input e l'output (rileva il livello dell'ingresso digitale, invia al LED di bordo); memorizzare e recuperare un valore dalla memoria EEPROM non volatile. Il tutto senza collegare cavi o dispositivi.
  2. Fornisci un gioco divertente e stimolante interagendo con una scheda Arduino.

Questa istruzione presuppone che tu abbia già installato un IDE Arduino e che tu abbia almeno una minima familiarità con il suo utilizzo. Se no ti rimando a questi link:

Iniziare con Arduino

Aggiunta del supporto Digispark (con bootloader) all'IDE Arduino 1.6.x esistente

Push-It funzionerà con la maggior parte delle schede Arduino, ad es. una scheda Nano, Uno o DigiSpark Attiny85. L'ho testato con un Nano 3.1 e un DigiSpark. Nel testo quando mi riferisco ai nomi/numeri dei pin saranno come usati sulla scheda Nano (al contrario del DigiSpark).

Passaggio 1: avere le cose di cui avrai bisogno

Che è semplicemente qualsiasi Arduino o una scheda comparabile.

Se non ne hai già uno, ti consiglio di iniziare con un DigiSpark Pro (~ $ 12) o un Nano 3.0 di eBay per ~ $ 3 (ma avrai una settimana o due in più per aspettare che arrivi dalla Cina; e dovrai installare un driver USB CH340). Il DigiSpark ~$10 (non Pro) è molto adatto per questo "videogioco" a bit singolo (questa unità ridotta, con solo 6 I/O, è un po' più complicata da caricare)

Collegamenti all'hardware qui utilizzato:

Nano V3.0 Atmega328P su eBay

Scheda di sviluppo USB Digispark

Passaggio 2: recupera e scarica il codice

Recupera e scarica il codice
Recupera e scarica il codice

Copia il codice qui sotto in un file di schizzo arduino (ad es. …/Push_It/Push_It.ino) Ho provato a commentarlo abbastanza bene. Spero che trovi il codice facilmente comprensibile. La logica per determinare quando aumentare, diminuire e quando no è alquanto complicata, ma quella parte è anche codice specializzato e non è di utilità generale. Per maggiori dettagli sulla creazione di un nuovo 'schizzo' (progetto di codice) da utilizzare con l'IDE Arduino vede:

Creazione di un nuovo schizzo Arduino

Scarica lo sketch "Push_It" nel nostro microcontrollore seguendo le istruzioni dell'IDE Arduino per la tua scheda.

Passaggio 3: giocare

Giocando
Giocando

L'obiettivo del gioco è far lampeggiare il LED (a bordo) il maggior numero di volte possibile in una serie di lampeggi che poi si ripetono

Giocare al gioco:

Push-It inizia con un singolo lampo, che poi si ripeterà. Se tocchi il dito vicino al pin di input mentre il LED è acceso, il ciclo successivo farà lampeggiare il LED due volte.

Ogni volta che si preme lo pseudo pulsante durante il primo lampeggio di una serie di lampeggi, a quel gruppo verrà aggiunto un altro lampo. Generalmente non importa quando sollevi/rimuovi il dito.

Ma se "spingi" prima o dopo il primo lampeggio, il conteggio dei lampeggi in un set verrà ridotto.

Se non fai altro, il numero di lampeggi in un set viene mantenuto. Inoltre, quando il conteggio rimane invariato per un ciclo completo, il numero di conteggio viene memorizzato nella memoria EEPROM.

Ogni volta che riesci ad aumentare il numero di flash, il tempo aumenta leggermente, rendendo sempre più difficile raggiungere un numero di flash elevato. Quando si commette un errore e il numero di lampeggi si riduce, ci sarà una pausa più lunga prima del lampeggio di inizio del ciclo successivo. Ciò fornisce una sfida aggiuntiva, in quanto può aumentare la probabilità che tu salti la pistola. Quindi stai attento.

Una volta che hai portato la tua unità a un numero di flash elevato, puoi portarla (o spedirla per posta, cosa per cui DigiSpark è utile) a un amico, dove dopo averlo collegato vedranno quanto è alto il conteggio dei flash che hai aumentato a. Ho trovato difficile portarlo a più di 8. Con un vero pulsante attaccato sono riuscito a farlo arrivare a più di una dozzina. Per tornare a un conteggio inferiore è possibile premerlo ripetutamente in qualsiasi momento prima o dopo il primo lampeggio. Inoltre, se si collega il pin di ingresso a massa durante l'accensione, il conteggio verrà ripristinato a 1.

Nota che la scheda DigiSpark originale ha un ritardo di 10 secondi dopo l'accensione prima del quale inizierà a eseguire il codice "Push-It" e a giocare. Usa questo tempo per provare a parlare attraverso i pin USB per ricevere un possibile nuovo aggiornamento del codice di download.

Se la scheda Arduino che stai utilizzando ha un LED USB TX su di essa, questo LED avrà un piccolo flash veloce quando hai effettivamente "premuto il pulsante". Ci sarà un lampeggio più significativo di questo LED ogni volta che il valore di conteggio nella EEPROM viene aggiornato con un nuovo valore. Questo feedback può aiutarti notevolmente a sapere quando o ad assicurarti di aver effettivamente attivato un evento "pulsante premuto". Potrebbe essere necessario assicurarsi di non toccare la massa del circuito (come il metallo attorno a un connettore micro-USB) in modo che la figura induca effettivamente rumore sul pin di ingresso aperto. Ci saranno sfide aggiuntive e in qualche modo imprevedibili dovute al fatto che il pin di ingresso è flottante (non tirato su o giù da un carico conduttivo/resistivo) e il rumore del segnale variabile che passa attraverso il dito.

Un'onda quadra a 250Hz viene emessa su un pin vicino al pin di input che migliora notevolmente la certezza di un segnale di input iniettato quando il dito copre entrambi i pin.

Ho scoperto che la risposta della tavola DigiSpark è abbastanza coerentemente prevedibile con una leggera pressione delle dita all'angolo della tavola dove si trovano D3-D5.

Quando gioco a "Push-It" mi piace farlo con la scheda collegata a una batteria mobile USB 5v (vedi foto). Questi possono generalmente essere trovati a buon mercato nei contenitori accanto a quelli degli adattatori USB AC e 12v per auto; nella maggior parte dei grandi magazzini reparto di elettronica.

Passaggio 4: esperimenti opzionali con componenti esterni

Esperimenti opzionali con componenti esterni
Esperimenti opzionali con componenti esterni

Nota: se alleghi un pulsante reale, c'è una riga di codice che deve essere commentata, come indicato nel codice.

Con un altoparlante, un lato a terra, se tocchi l'altro cavo a D4 sentirai il suono di un'onda quadra a 250 Hz. A D3 c'è un'onda quadra di 500Hz. Se colleghi l'altoparlante tra D3 e D4, sentirai un composito dei due segnali.

È molto interessante collegare un LED al posto di un altoparlante come sopra. Non è necessario preoccuparsi della tensione, dei livelli di corrente, dei resistori o persino della polarità (nel caso peggiore non si accende, quindi giralo semplicemente). Prova, prima di tutto, con il cavo negativo (catodo) collegato a massa e l'altro a D3 o D4. Il LED sarà 'mezzo' acceso, a causa delle onde quadre. Inoltre non è necessaria alcuna resistenza poiché l'uscita delle MicroControllerUnit è limitata in corrente. Ho effettuato misurazioni di corrente risultanti rispettivamente in 15ma e 20ma per gli MCU Attiny85 e Atmega328. Questi livelli sono circa la metà dell'attuale valore limitato per queste parti a causa della natura del ciclo di lavoro del 50% dei segnali a onda quadra di pilotaggio. Le letture del contatore sono in realtà una media della corrente attraverso il circuito testato.

È interessante notare che se si collega tra D3 e D4 con il LED (vedi immagine sopra ea sinistra) si accenderà in entrambi i modi e a circa ½ della luminosità come ha fatto con un lato collegato a terra. Ti invito a riflettere sul perché.

Consigliato: