Taula de continguts:

Taula de centre LED Arduino controlada per Bluetooth: 10 passos (amb imatges)
Taula de centre LED Arduino controlada per Bluetooth: 10 passos (amb imatges)

Vídeo: Taula de centre LED Arduino controlada per Bluetooth: 10 passos (amb imatges)

Vídeo: Taula de centre LED Arduino controlada per Bluetooth: 10 passos (amb imatges)
Vídeo: Making flash memory from SD Card 2024, Desembre
Anonim
Taula de centre LED Arduino controlada per Bluetooth
Taula de centre LED Arduino controlada per Bluetooth
Taula de centre LED Arduino controlada per Bluetooth
Taula de centre LED Arduino controlada per Bluetooth
Taula de centre LED Arduino controlada per Bluetooth
Taula de centre LED Arduino controlada per Bluetooth
Taula de centre LED Arduino controlada per Bluetooth
Taula de centre LED Arduino controlada per Bluetooth

Aquest va ser el meu primer projecte Arduino real i també és el meu primer instructiu, així que sigueu amable als comentaris:) Volia intentar respondre a les preguntes que em van trigar a descobrir i proporcionar instruccions detallades, de manera que si esteu molt familiaritzats amb els aficionats l’electrònica és probable que pugueu fer un salt per cada pas, però si esteu al cas, us proporcionarà tot el que necessiteu.

L’objectiu del projecte era crear una pantalla de 12 x 12 píxels en una taula de centre que es pogués controlar mitjançant bluetooth i que s’utilitzés com a llum fresca de la sala / jugar-hi.

Per a aquesta construcció necessitareu aquestes parts:

  1. Arudino Mega (o clon) -
  2. Protector de targeta micro SD Arduino (he utilitzat aquest i he soldat les capçaleres) -
  3. Targeta Micro SD: qualsevol mida ho farà, però s’ha de formatar en FAT32
  4. Tira LED LED ajustable de 5 m WS2812B -
  5. Mòdul Bluetooth HC05:
  6. Font d'alimentació de 5 V 6 Amp. (Ho he fet servir, però hi ha cent més a ebay)
  7. Taula LACK d'Ikea (el clàssic dels aficionats) -
  8. Accés a un tallador làser per a fusta contraxapada de 3 mm (o amb una mà molt ferma). Podeu demanar peces de tall per làser en línia a diversos llocs (https://www.hobbytronics.co.uk/laser-cutting per exemple)
  9. Pintura en aerosol blanca
  10. Secció T d'alumini de 2 m (1 1/2 x 1 1/2 x 1/8) -
  11. Part superior de vidre de 450 mm x 450 mm x 6 mm (la majoria de vidrers locals us poden tallar peces personalitzades, però he utilitzat aquests nois
  12. 1 x 100 micro condensador Farad
  13. 2 x 1k resistència
  14. 1 x 2k resistència
  15. 1 x potenciòmetre rotatiu lineal
  16. Diversos ponts (probablement una dotzena durant el prototipat)
  17. Com a mínim tres colors de cables relativament gruixuts per soldar (això pot generar grans corrents, de manera que no recomanaria cables de connexió per a l'alimentació)
  18. Stripboard per al circuit intern (no us preocupeu, és molt senzill)

Eines necessàries:

  1. Un soldador + soldador
  2. Un parell de retalls
  3. Decapants de filferro
  4. Un Dremel o trencaclosques d'algun tipus per separar la taula. He utilitzat aquest https://www.amazon.co.uk/gp/product/B0078LENZC/ref… amb bits de tall en espiral

Pas 1: prova inicial i disseny

Prova inicial i maquetació
Prova inicial i maquetació
Prova inicial i disseny
Prova inicial i disseny
Prova inicial i disseny
Prova inicial i disseny

El primer port d’escala consisteix a tallar la tira LED a les longituds que necessiteu. Aquesta tira LED és molt fàcil d’utilitzar perquè només té 3 pins i fa que l’Arduino faci el treball real. Vaig tallar la bobina en 12 seccions cadascuna de 12 LED de longitud com es mostra a la figura i les vaig col·locar a la part posterior de la taula per ajudar-me a veure on anava amb això.

Aleshores em van quedar uns quants LEDs, així que els vaig connectar a un Arduino UNO. Vaig haver de provar si funcionaven (també podeu utilitzar el Mega esmentat a l'esquema del projecte). Per fer-ho, vaig tallar i despullar algunes capçaleres masculines a masculines i les vaig soldar als coixinets de l'extrem de la tira LED. A la tira WS2812 he utilitzat el cable de 5 V és vermell, el sòl és blanc i les dades són verdes. Assegureu-vos de prestar atenció a la fletxa direccional impresa a la tira WS2812B perquè no intenteu enviar les dades en la direcció equivocada. Vaig connectar la línia 5V a 5V a l'Arduino, la terra a GND i les dades al pin 6 amb una resistència 1k en sèrie. Tingueu en compte que l’esquema de Fritzing dels LEDs WS2812B és lleugerament diferent dels que havia lliurat; n’hi ha prou de dir-vos, assegureu-vos que les dades estiguin connectades al pin 6, que Gnd estigui connectat a terra i que 5 estigui connectat a 5V.

Amb tan pocs LED (aproximadament 5), l'Arduino hauria d'estar bé per proporcionar energia; no obstant això, no es pot alimentar molts, ja que quan estan en blanc complet, els LED arriben a 60 mA cadascun i poden aclaparar ràpidament l'Arduino.

Suposant que teniu l'IDE Arduino (si no el descarregueu i instal·leu-lo), configureu el tipus de chipset a l'Arduino que tingueu i configureu el port COM al que mostri un Arduino a les opcions. Ara descarregueu la biblioteca FastLED i instal·leu-la (https://fastled.io/). Obriu l’exemple de striptest.h i configureu el nombre de LEDs de l’esbós a la quantitat que tingueu (em quedaven 5). Feu clic a Verifica i (suposant que tot va bé), pengeu-lo a l'Arduino i hauríeu de veure com s'encenen els llums de la tira petita i canvien de color.

Pas 2: Soldar la matriu i el Stripboard

Soldar la matriu i el stripboard
Soldar la matriu i el stripboard
Soldar la matriu i el stripboard
Soldar la matriu i el stripboard
Soldar la matriu i el stripboard
Soldar la matriu i el stripboard

Ara és hora de començar a crear la matriu LED.

Talla 11 llargs curts de cadascun dels tres colors de filferro que tens. Assegureu-vos que siguin prou llargs per anar des del final d’una tira fins al començament de la següent. Quan col·loqueu les tires LED, heu d'assegurar-vos que la fletxa de flux de dades segueix una serp. Un cop disposat, soldeu amb cura cada fila de leds a la següent, tal com es mostra a la figura. Això és significativament més fàcil si utilitzeu el mateix color per a cada tipus de connexió.

Ara, més soldadures, hem de crear el tauler de fusta que manejarà l’energia de la xarxa elèctrica. Vaig soldar dues columnes al tauler de fusta juntes tant per al 5V com per al GND, de manera que manegés millor el corrent. Consulteu l’esquema adjunt del circuit que heu de crear. Quan soldeu el condensador, assegureu-vos que l'extrem negatiu estigui connectat al carril GND, no al de 5 V. Un cop acabat el tauler, hem de connectar el + VE i el GND a la tira LED i també utilitzar l’altra meitat dels ponts que hem tallat abans per connectar l’Arduino a la font d’alimentació i al tauler. Ara seria un bon moment per afegir la placa SD Breakout a l’Arduino per poder guardar-hi fitxers i llegir-ne més endavant. Un cop la placa SD Breakout estigui al seu lloc, podem connectar el carril de 5V al pin Vin i el GND a qualsevol pin GND de l’Arduino.

Per últim, podem connectar un potenciòmetre a l'entrada analògica A0 tal com es mostra de manera que tinguem una manera de controlar la brillantor dels LED.

Un cop fet tot això, podem tornar a carregar l'esbós més estricte canviant el nombre de LEDs a 144. Assegureu-vos que teniu la font d'alimentació activa abans de carregar aquest esbós. Esperem que tots els LED s’hagin d’il·luminar en els patrons de l’esbós més estricte, de manera que sabem que tot funciona.

Pas 3: integració del mòdul Bluetooth

Integració de mòduls Bluetooth
Integració de mòduls Bluetooth

Últim tros de cablejat ara, la unitat HC05 es connecta a l'Arduino Mega tal com es mostra a l'esquema. Assegureu-vos que la unitat HC05 es connecti als ports Rx1 i Tx1 de la mega. Això fa que sigui molt més fàcil de programar i evitar l'ús de la biblioteca "software".

NB. La unitat HC05 prendrà 5V o 3.3V i generalment funciona amb una lògica de 3.3V, de manera que la vaig connectar al carril de 3.3V. Alguns altres mètodes instructius han mostrat el Tx (a Arduino) a Rx (a la unitat HC05) amb un circuit divisor de potencial per convertir la lògica de 5 V de l'Arduino al nivell natiu del mòdul HC05. Aquesta és la raó per la qual tenia les resistències 1k i 2k a la llista de peces; no obstant això, no em vaig molestar i sembla perfectament feliç a la meva taula:)

Pas 4: pirateria de taules

Hacking de taules
Hacking de taules
Hacking de taules
Hacking de taules
Hacking de taules
Hacking de taules

Ara hem de començar a tallar la taula per donar als nostres LED i electrònica una nova llar.

Primer, marqueu un quadrat de 450 mm x 450 mm al centre de la part superior de la taula LACK. Feu servir el Dremel (o una serra) per retallar el quadrat el millor possible per mantenir-lo recte. Ara podem eliminar la part superior i les peces interiors de cartró, deixant-vos amb la taula buidada tal com es mostra a la imatge. Si tornem a fer servir el Dremel, podem perforar un forat a la cantonada de la part inferior de la taula, de manera que tenim un lloc on passar el cable de xarxa.

Un cop preparada la taula, podem gravar els LED cap avall en aproximadament les posicions correctes abans de passar als passos següents. Em va semblar útil assegurar-me que l’electrònica era correcta després de cada pas, així que proveu de nou l’esbós més estricte.

Una vegada que estigueu còmode, tot estarà al seu lloc adequat i podreu practicar un parell de petits forats per muntar la font d'alimentació a la vora de la taula mitjançant cargols petits. Vaig optar per muntar l'Arduino fora de la taula per poder reprogramar-lo fàcilment si vull, però està muntat cap per avall fins a la part inferior de la taula i no es pot veure fàcilment. També he muntat el potenciòmetre per la part inferior de la taula perquè el control de la brillantor sembli agradable i professional.

Pas 5: peces de tall per làser

Parts tallades per làser
Parts tallades per làser
Parts tallades per làser
Parts tallades per làser
Parts tallades per làser
Parts tallades per làser

Ara hem d’introduir les parts tallades amb làser que formen la matriu dels quadrats, de manera que tenim píxels definits. He inclòs els fitxers dxf de les peces tallades amb làser que formen la matriu de fusta i també imatges de les mateixes perquè pugueu saber com haurien de ser. Estan fets de dues peces separades, una va al llarg de cada fila de LEDs i l’altra les creua. Les parts que es creuen tenen un buit de 10 mm d’alçada tallat a la part inferior per permetre el pas del cablejat. Aquest buit es podria reduir a 5 mm, ja que sembla que tinc una mica de fuita de llum d’un píxel a l’altre.

11 còpies d’ambdues parts han de ser tallades amb làser de fusta contraxapada de 3 mm i muntar-les per assegurar-se que encaixen correctament. Un cop feliç, desmunteu de nou la matriu i ruixeu-la de color blanc per millorar les característiques reflectants de la taula. Quan estiguin secs, torneu-los a col·locar i col·loqueu-los sobre els LED. Pot ser que sigui una mica més difícil encaixar-los després de polvoritzar-los, ja que ara són una mica més gruixuts, però no us preocupeu, toqueu-los suaument abans de posar la matriu a la taula.

Pas 6: Glediator

Glediator
Glediator
Glediator
Glediator

Ara tenim tot el maquinari implementat que podem començar a examinar de programari. Vaig descarregar i instal·lar un programari anomenat Glediator per crear animacions per als LEDs (https://www.solderlab.de/index.php/software/glediat…). Les instruccions d'instal·lació poden ser una mica complicades, però seguiu atentament el lloc web i us convindria estar bé. També hem de descarregar l’esbós del lloc web de Glediator per penjar-lo a l’Arduino (https://www.solderlab.de/index.php/downloads/catego…). Estem utilitzant LEDs WS2812B, així que assegureu-vos de descarregar el correcte (WS2812 Glediator Interface). Un cop obert aquest esbós, canvieu el NUMBER_OF_PIXELS a 144 i pengeu-lo a l'Arduino.

Un cop instal·lat Glediator, podem començar a reproduir animacions sobre la taula. En primer lloc, hem d’establir la mida de la matriu a 12 x 12 al programari Glediator i també establir el tipus de sortida a HSBL: serp horitzontal (arrencada) inferior esquerre, ja que és la manera en què hem connectat els LED i canviar l’ordre del color a GRB (per a això prenen dades els LED). A la pestanya de sortida, obriu el port COM i la matriu de LED hauria de començar a mostrar el patró de LED a la pantalla central del programari Glediator.

Podeu crear animacions i gravar-les a un fitxer.dat que podem carregar a la targeta SD, de manera que les vostres animacions preferides es poden mostrar a la taula sense necessitat de connectar un PC. Hi ha alguns tutorials en línia sobre això (https://hackaday.io/project/5714-glediator-from-sd… per exemple). He modificat algunes fonts de codi diferents perquè funcionin amb això, de manera que el meu codi hauria d'estar bé.

Quan deseu les animacions, assegureu-vos de desar-les com a "animX.dat", on X és qualsevol número de l'1 al 15. Podeu implementar-ne més canviant un parell de línies al meu codi.

Nota: en gravar fitxers Glediator, el programari conté un error que significa que no recorda com heu connectat la tira LED. Al meu codi he implementat una funció senzilla per invertir l'ordre de les files parelles, cosa que significa que es mostra correctament

Pas 7: control sèrie Bluetooth

Control de sèrie Bluetooth
Control de sèrie Bluetooth
Control de sèrie Bluetooth
Control de sèrie Bluetooth

Configurar la comunicació bluetooth entre un telèfon intel·ligent i l’Arduino va resultar sorprenentment complicat, però hi ha uns quants passos senzills que ho faran molt més fàcil. En primer lloc, haureu de descarregar una aplicació per al vostre telèfon intel·ligent. He utilitzat https://play.google.com/store/apps/details?id=com…. però probablement hi hagi un equivalent d'iPhone (que heu de pagar; p)

És possible que us hàgiu adonat que el mòdul HC05 té un petit interruptor encès. Si l’engegueu amb aquest commutador premut, entra en mode AT, cosa que significa que podeu interrogar-ne els paràmetres i canviar-los si ho desitgeu.

Pengeu l'esbós adjunt al Mega i configureu la velocitat de sèrie del vostre PC a 9600. Desconnecteu l'alimentació de la unitat HC05 i, a continuació, premeu el botó que hi apareix quan la torneu a connectar. El parpelleig hauria de ser aproximadament un cop cada dos segons; ara l'HC05 està en mode AT.

Ara al monitor sèrie podem enviar ordres a l'HC05 i veure'n la resposta. Escriviu "AT" i premeu Envia i hauríeu de veure "D'acord" tornar al monitor sèrie; ara sabem que està escoltant. El nom de Bluetooth del dispositiu es pot canviar escrivint "AT + NAME = XYZPQR" on XYZPQR és el que voleu que es digui el mòdul. Vaig trucar a la meva LightWave. La contrasenya per defecte per al mòdul Bluetooth és 1234 (o 0000), però també es pot canviar enviant "AT + PSWD = 9876" per exemple. Finalment, podem canviar la velocitat de comunicació de l'HC05 enviant "AT + UART = 38400". Aquesta és la taxa per defecte per a la majoria de mòduls HC05, però la meva es va configurar de manera diferent, de manera que és una bona pràctica establir-la per estar segur. Aquí hi ha molts més detalls sobre aquestes ordres: https://www.itead.cc/wiki/Serial_Port_Bluetooth_M… i també hi ha instruccions sobre aquest pas que tenen molt més detall https://www.instructables.com/id/Modify -The-HC-05- …

Ara podem provar d’enviar comandes al mòdul mitjançant un dispositiu bluetooth. En primer lloc, desconnecteu l’alimentació del mòdul HC05 i torneu-lo a connectar. Hauríeu de veure que la velocitat de parpelleig del LED és molt més ràpida; això vol dir que ara està pendent de pair. Al telèfon intel·ligent, obriu l’aplicació Arduino Bluetooth Controller i cerqueu el mòdul HC05. Si no heu canviat el nom, probablement es dirà HC05 o similar. Quan se us ofereixen les opcions de com voleu connectar-vos, seleccioneu el mode Terminal. Ara intenteu enviar alguns números i text i veure si el monitor sèrie del PC informa que els han rebut. Esperem que ho tinguin perquè puguem seguir endavant, si no, hi ha un munt d’instructibles que us poden donar alguns consells (https://www.instructables.com/id/Bluetooth-Hc-05-W… per exemple).

L'últim que cal fer aquí és assignar les entrades del controlador als números amb els quals Arduino pot fer alguna cosa. He utilitzat els valors següents:

Pujar = 1, Baixada = 2, Esquerra = 3, Dret = 4, Inici = 5, Selecciona = 6.

Pas 8: Jocs

Jocs
Jocs

No em crèdit pel codi del joc. He utilitzat el codi font que es troba aquí https://github.com/davidhrbaty/IKEA-LED-Table escrit per davidhrbaty. No obstant això, l'he modificat de diverses maneres:

  1. He afegit una funció de restricció de la brillantor basada en el valor del potenciòmetre perquè puguem canviar la brillantor
  2. He eliminat el joc de maons perquè no aconseguia que es compilés
  3. Vaig canviar la codificació de colors dels blocs de tetris perquè tinguessin diferents colors
  4. He reordenat el menú
  5. He implementat una opció per reproduir animacions des de la targeta SD
  6. He afegit un seguiment de puntuació més alta i una opció de visualització de puntuació més alta al menú

El codi adjunt hauria de funcionar immediatament, però, si no, el meu suggeriment seria eliminar els jocs que semblen causar missatges d’error i tornar a verificar el codi fins que esbrineu on es troba el problema. A continuació, torneu a afegir més complexitat.

L’autor original d’aquest codi va fer una feina fantàstica creant alguna cosa realment modular i fàcil d’afegir. No és tan difícil afegir en casos addicionals per afegir més funcions a la taula.

Les opcions del menú són:

  1. Targeta SD: reprodueix animacions emmagatzemades a la targeta SD
  2. Tetris
  3. Serp
  4. Pong
  5. Daus: generador de nubers aleatoris entre 1 i 6
  6. Animació: una col·lecció d'animacions de la biblioteca FastLED
  7. Stars Animation - EDITAR: ara he implementat Conway's Game of Life en lloc d'aquesta animació
  8. Animació Rainbow
  9. Puntuacions altes: mostra puntuacions més altes per al tetris i la serp

Abans de començar a jugar, heu de crear dos fitxers txt a la targeta SD, un anomenat "teths.txt" i l'altre anomenat "snkhs.txt". En tots dos fitxers, poseu el número 0 i deseu-los a la carpeta arrel de la targeta SD. Aquests són els fitxers de seguiment de puntuació més alta i s’actualitzaran cada cop que es superi la puntuació més alta. Si voleu restablir-lo, només cal que canvieu els valors a 0 en un PC.

Un cop carregueu el programa LED_table a l'Arduino, podeu obrir el monitor sèrie i hauríeu de poder veure les ordres bluetooth a mesura que les envieu; d'aquesta manera sabreu que tot funciona bé.

Pas 9: gaudiu

Gaudeix
Gaudeix
Gaudeix
Gaudeix
Gaudeix
Gaudeix

Tot el que queda per fer és carregar el codi principal de la taula LED al Mega i després gaudir de jugar i fer-me saber les puntuacions més altes.

Encara estic esperant que arribin les parts de la taula (secció d'alumini T i vidre), però la taula ara funciona bé i hi puc jugar.

Feu-me saber si teniu comentaris, edicions o detecteu algun error que he comès.

Pas 10: actualització

Image
Image
Actualització
Actualització
Actualització
Actualització

Ara està completament acabat!:)

Finalment vaig agafar la secció T d'alumini per a la vora i vaig fer el millor que vaig fer per mitjar l'articulació (resulta que un dels angles més durs és de 45 graus), però és gairebé completament quadrada. Per la part superior, vaig decidir obtenir una làmina de vidre més gruixuda (425 x 425 x 8 mm) i vaig matar la part inferior amb esprai de glacejat de vidre Rustoleum. He utilitzat calafatat regular (segellador de silicona) per unir la part superior i les peces angulars de manera que hi hagi una mica de flexió a les juntes si cal.

Actualització actualitzada. Ara he afegit a Game of Life de Conway com a opció 7 al menú en lloc de l'animació de les estrelles, ja que no l'he utilitzat mai. Si no sabeu què és aquest joc, Google, però bàsicament és un joc de zero jugadors que mostra l'evolució basada en tres regles simples. Joc de la vida de Conway

Actualització ^ 3. He fet algunes modificacions al codi de manera que ara inclogui una correcció d'errors pel que fa a l'enfosquiment dels LED vermells i també inclogui una animació d'arbre de Nadal com a Opció 11 al menú. Gaudeix.

Recomanat: