Taula de continguts:

Prova Bare Arduino, amb programari de jocs que utilitza entrada capacitiva i LED: 4 passos
Prova Bare Arduino, amb programari de jocs que utilitza entrada capacitiva i LED: 4 passos

Vídeo: Prova Bare Arduino, amb programari de jocs que utilitza entrada capacitiva i LED: 4 passos

Vídeo: Prova Bare Arduino, amb programari de jocs que utilitza entrada capacitiva i LED: 4 passos
Vídeo: Leap Motion SDK 2024, Desembre
Anonim
Prova Bare Arduino, amb programari de jocs que utilitza LED capacitiu i entrada
Prova Bare Arduino, amb programari de jocs que utilitza LED capacitiu i entrada
Prova Bare Arduino, amb programari de jocs que utilitza LED capacitiu i entrada
Prova Bare Arduino, amb programari de jocs que utilitza LED capacitiu i entrada

Joc interactiu "Push-It" que utilitza una placa Arduino nua, no necessita parts externes ni cablejat (utilitza una entrada tàctil capacitiva). Es mostra a sobre, demostra que funciona en dos taulers diferents.

Push-It té dos propòsits.

  1. Per demostrar / verificar ràpidament que la vostra placa Arduino funciona i que esteu configurat correctament per descarregar-li un nou esbós de codi. Podreu veure que realitza l'entrada i la sortida (nivell d'entrada digital sensible, sortida al LED de la placa); emmagatzemar i recuperar un valor de la memòria EEPROM no volàtil. Tot sense connectar cap cable o dispositiu.
  2. Proporciona un joc divertit i desafiant que interactua amb una placa Arduino.

Aquesta instrucció suposa que ja heu instal·lat un IDE Arduino i que almenys coneixeu mínimament el seu ús. Si no, us remeto a aquests enllaços:

Introducció a Arduino

Addició de suport Digispark (amb el carregador d’arrencada) a l’IDE Arduino 1.6.x existent

Push-It funcionarà amb la majoria de qualsevol placa Arduino, per exemple un tauler Nano, Uno o DigiSpark Attiny85. L’he provat amb un Nano 3.1 i un DigiSpark. Al text, quan faig referència als noms / números dels pins, s’utilitzaran a la placa Nano (a diferència del DigiSpark).

Pas 1: tenir les coses que necessiteu

Que és simplement qualsevol Arduino o placa comparable.

Si encara no en teniu, us recomano començar amb un DigiSpark Pro (~ 12 dòlars) o un Nano 3.0 d'Ebay per uns 3 dòlars (però tindreu una setmana o dues més per esperar que vingui de la Xina; i haureu d’instal·lar un controlador USB CH340). El DigiSpark ~ 10 dòlars (no Pro) és molt adequat per a aquest joc de vídeo de "bit" (aquesta unitat despullada, amb només 6 E / S, és una mica més complicada de pujar-hi)

Enllaços al maquinari utilitzat aquí:

Nano V3.0 Atmega328P a eBay

Taula de desenvolupament USB Digispark

Pas 2: Obteniu i baixeu el codi

Obteniu i baixeu el codi
Obteniu i baixeu el codi

Copieu el codi següent a un fitxer d'esbós arduino (per exemple, … / Push_It / Push_It.ino) He intentat comentar-ho força bé. Espero que el codi sigui fàcilment comprensible. La lògica per determinar quan augmentar, disminuir i quan no és una mica complicada, però aquesta porció també és un codi especialitzat i no és d’utilitat general. l'IDE Arduino veure:

Creació d’un nou esbós Arduino

Baixeu-vos l'esbós "Push_It" al nostre microcontrolador segons les instruccions Arduino IDE de la vostra placa.

Pas 3: Jugar

Jugant
Jugant

L'objectiu del joc és aconseguir que el LED (integrat) parpellegi el màxim de temps possible en un conjunt de flaixos que després es repeteixen

Jugant al joc:

Push-It comença amb un sol flaix, que després es repetirà. Si toqueu el dit a prop del pin d'entrada mentre el LED està encès, el següent cicle parpellejarà el LED dues vegades.

Cada vegada que premeu el pseudo botó durant el primer flaix d'un conjunt de flaixos, s'afegirà un altre flaix a aquest conjunt. En general, no importa quan aixequi / tregui el dit.

Però si "premeu" abans o després del primer flaix, es reduirà el nombre de flaixos d'un conjunt.

Si no feu res més, es mantindrà el nombre de flaixos. A més, quan el recompte no canvia durant un cicle complet, el número de recompte s'emmagatzema a la memòria EEPROM.

Cada vegada que aconsegueixes augmentar el recompte de flaix, la sincronització s’accelera una mica, cosa que fa que sigui cada vegada més difícil arribar a un recompte de flaixos elevat. Quan feu un lliscament i el nombre de flaixos es redueixi, hi haurà una pausa més llarga abans del flaix inicial del següent cicle. Això suposa un repte addicional, ja que pot augmentar la probabilitat de saltar l’arma. Així que estigueu alerta.

Un cop hàgiu aconseguit la unitat fins a un recompte de flaix elevat, podeu portar-la (o enviar-la per correu electrònic, cosa que serveix per a DigiSpark) a un amic, on en connectar-la veuran la quantitat de flaix que heu obtingut. a. M’ha semblat difícil desafiar-lo fins a més de 8. Amb un botó real connectat he aconseguit que arribi a més d’una dotzena. Per tornar a un recompte inferior, podeu prémer repetidament en qualsevol moment abans o després del primer flaix. A més, si col·loqueu el pin d'entrada a terra durant un encès, el recompte es restablirà a 1.

Tingueu en compte que el tauler original de DigiSpark té un retard de 10 segons després de l’encesa abans del qual començarà a realitzar el codi “Push-It” i jugarà el joc. Utilitza aquest temps per intentar parlar a través dels pins USB per rebre una possible nova actualització de codi de descàrrega.

Si la placa Arduino que utilitzeu té un LED USB TX, aquest LED tindrà un petit flaix ràpid quan hagueu efectivament "premut el botó". Hi haurà un parpelleig més significatiu d’aquest LED sempre que s’actualitzi el valor de recompte a l’EEPROM amb un valor nou. Aquest comentari us pot ajudar molt a saber quan o assegurar-vos que heu activat efectivament un esdeveniment de "botó premut". És possible que hàgiu d'assegurar-vos que no toqueu la terra del circuit (com el metall al voltant d'un connector micro-USB) de manera que la vostra figura indueixi soroll al pin d'entrada obert. Hi haurà reptes afegits i una mica imprevisibles a causa del fet que el pin d'entrada està flotant (no és tirat cap amunt ni cap avall per una càrrega conductiva / resistiva) i el soroll variable del senyal que arriba pel dit.

Una ona quadrada de 250 Hz es transmet a un pin al costat del pin d’entrada, cosa que millora molt la seguretat d’un senyal d’entrada injectat quan el dit cobreix els dos pins.

He trobat que les respostes del tauler DigiSpark són bastant previsibles de manera consistent amb una petita pressió dels dits cap a la cantonada del tauler on es troben els D3-D5.

Quan toco "Push-It", m'agrada fer-ho amb la placa connectada a una bateria mòbil USB 5v (veure fotos). Generalment, es poden trobar de forma econòmica en contenidors al costat dels adaptadors automàtics USB AC i 12V; a la majoria de grans magatzems, tots els departaments d'electrònica.

Pas 4: experiments opcionals amb components externs

Experiments opcionals amb components externs
Experiments opcionals amb components externs

Tingueu en compte que: si afegiu un botó real, hi ha una línia de codi que cal comentar, tal com s’indica al codi.

Amb un altaveu, d'un costat a terra, si toqueu l'altre cable a D4, sentireu el so d'una ona quadrada de 250 Hz. A D3 hi ha una ona quadrada de 500Hz. Si connecteu l’altaveu entre D3 i D4, sentireu un compost dels dos senyals.

Connectar un LED en lloc d’un altaveu com és anterior és molt interessant. No cal preocupar-se per la tensió, els nivells de corrent, les resistències o, fins i tot, la polaritat (el pitjor dels casos és que no s’encén, donat-li la volta). Proveu, primer de tot, que el cable negatiu (càtode) estigui connectat a terra i l’altre a D3 o D4. El LED estarà "mig" encès a causa de les ones quadrades. A més, no es necessita resister, ja que la sortida de les unitats MicroController està limitada actualment. Vaig fer mesures actuals resultant en 15ma i 20ma per a les MCU Attiny85 i Atmega328 respectivament. Aquests nivells són aproximadament la meitat del valor limitat actual d’aquestes parts a causa de la naturalesa del 50% del cicle de treball dels senyals d’ona quadrada de conducció. Les lectures del mesurador són en realitat una mitjana del corrent a través del circuit provat.

Curiosament, si feu un pont entre D3 i D4 amb el LED (vegeu la imatge superior i esquerra), s’encendrà de qualsevol manera i aproximadament ½ la brillantor com ho feia amb un costat connectat a terra. Us convido a reflexionar sobre per què.

Recomanat: