Sisällysluettelo:

Bluetooth -ohjattu Arduino LED -sohvapöytä: 10 vaihetta (kuvilla)
Bluetooth -ohjattu Arduino LED -sohvapöytä: 10 vaihetta (kuvilla)

Video: Bluetooth -ohjattu Arduino LED -sohvapöytä: 10 vaihetta (kuvilla)

Video: Bluetooth -ohjattu Arduino LED -sohvapöytä: 10 vaihetta (kuvilla)
Video: Arduino Bluetooth LED -ohjain Android HC-05 Bluetooth-moduulilla | MIT App Inventor 2024, Heinäkuu
Anonim
Bluetooth -ohjattu Arduino LED -sohvapöytä
Bluetooth -ohjattu Arduino LED -sohvapöytä
Bluetooth -ohjattu Arduino LED -sohvapöytä
Bluetooth -ohjattu Arduino LED -sohvapöytä
Bluetooth -ohjattu Arduino LED -sohvapöytä
Bluetooth -ohjattu Arduino LED -sohvapöytä
Bluetooth -ohjattu Arduino LED -sohvapöytä
Bluetooth -ohjattu Arduino LED -sohvapöytä

Tämä oli ensimmäinen todellinen Arduino -projektini, ja se on myös ensimmäinen ohjeeni, joten ole ystävällinen kommenteissa:) Halusin yrittää vastata kysymyksiin, jotka kesti jonkin aikaa selvittääkseni ja antaa yksityiskohtaiset ohjeet, joten jos olet hyvin perehtynyt harrastajaan elektroniikka, voit luultavasti selata jokaisen vaiheen läpi, mutta jos olet uusi tässä, sen pitäisi tarjota sinulle kaikki mitä tarvitset.

Projektin tavoitteena oli luoda sohvapöytään 12 x 12 pikselin näyttö, jota voidaan ohjata bluetoothin avulla ja jota voidaan käyttää sen viileänä huonevalona/pelata pelejä.

Tätä rakennetta varten tarvitset seuraavat osat:

  1. Arudino Mega (tai klooni)-https://www.amazon.co.uk/Arduino-Mega-2560-R3-Micr…
  2. Arduino micro SD Card Shield (käytin tätä ja juotin otsikot päälle) -
  3. Micro SD -kortti - Mikä tahansa koko sopii, mutta se on alustettava FAT32 -muotoon
  4. 5m WS2812B Osoitettava LED -nauha -
  5. HC05 Bluetooth -moduuli -
  6. 5 V 6 A virtalähde-(käytin tätä, mutta ebayssä on satoja muita)
  7. Ikea LACK -pöytä (harrastajien klassikko) -
  8. Pääsy laserleikkuriin 3 mm vanerille (tai erittäin vakaalle kädelle). Voit tilata laserleikattuja osia verkossa eri paikoista (esimerkiksi
  9. Valkoinen spraymaali
  10. 2 m alumiini T -osa (1 1/2 x 1 1/2 x 1/8) -
  11. 450 mm x 450 mm x 6 mm lasilevy (useimmat paikalliset lasit voivat leikata sinulle räätälöityjä kappaleita, mutta käytin näitä kavereita
  12. 1 x 100 mikro Farad -kondensaattori
  13. 2 x 1k vastus
  14. 1 x 2k vastus
  15. 1 x lineaarinen pyörivä potentiometri
  16. Erilaisia hyppääjiä (luultavasti tusina prototyyppien valmistuksen aikana)
  17. Vähintään kolme väriä suhteellisen paksuja kaapeleita juottamista varten (tämä voi vetää suuria virtauksia, joten en suosittele hyppyjohtoja teholle)
  18. Nauhat sisäpiirille (älä huoli, se on hyvin yksinkertaista)

Tarvittavat työkalut:

  1. Juotin + juote
  2. Pari katkelmaa
  3. Langanpoistimet
  4. Dremel tai jonkinlainen palapeli hakkeroimaan pöydän erilleen. Käytin tätä https://www.amazon.co.uk/gp/product/B0078LENZC/ref… spiraalileikkureilla

Vaihe 1: Ensimmäinen testi ja asettelu

Ensimmäinen testi ja asettelu
Ensimmäinen testi ja asettelu
Ensimmäinen testi ja asettelu
Ensimmäinen testi ja asettelu
Ensimmäinen testi ja asettelu
Ensimmäinen testi ja asettelu

Ensimmäinen puheluportti on leikata LED -nauha haluamiisi pituuksiin. Tämä LED -nauha on todella helppokäyttöinen, koska siinä on vain 3 nastaa ja se tekee Arduinosta todellista työtä. Leikkasin puolan 12 osaan, joista jokainen oli pituudeltaan 12 LEDiä, kuten kuvassa näytetään, ja asetin ne pöydän taakse, jotta voin visualisoida, mihin olin menossa.

Minulla oli sitten muutamia LED -valoja jäljellä, joten liitin ne Arduino UNO: hon, jonka piti testata, toimivatko ne (voit käyttää myös projektin luonnoksessa mainittua Megaa). Tätä varten leikkasin ja riisutin joitakin urospuolisia uroksia ja juotin ne LED -nauhan päässä oleviin tyynyihin. WS2812 -nauhassa käytin 5 V: n johtoa punaisena, maa on valkoinen ja tiedot ovat vihreitä. Varmista, että kiinnität huomiota WS2812B -nauhassa olevaan suuntanuoleen, jotta et yritä lähettää tietoja väärään suuntaan. Yhdistin 5 V: n linjan 5 V: iin Arduinossa, Groundin GND: hen ja Data nastaan 6 1k: n vastuksella sarjassa. Muista, että WS2812B -LEDien Fritzing -kaavio on hieman erilainen kuin toimittamani - riittää sanoa, varmista vain, että tiedot on kytketty nastaan 6, Gnd on kytketty maahan ja 5 on kytketty 5 V.

Kun Arduinolla on niin vähän LED -valoja (5 tai enemmän), sen pitäisi tarjota virtaa. et kuitenkaan voi syöttää virtaa monille, koska kun ne ovat täysin valkoisia, LEDit kuluttavat jopa 60 mA ja voivat nopeasti hukuttaa Arduinon.

Olettaen, että sinulla on Arduino IDE (jos et lataa ja asenna sitä), aseta piirisarjatyypiksi Arduino ja sinulla on COM -portti, joka näyttää Arduino -vaihtoehdon. Lataa nyt FastLED -kirjasto ja asenna se (https://fastled.io/). Avaa esimerkki striptest.h ja aseta luonnoksessa olevien merkkivalojen lukumääräksi niin monta kuin sinulla on (minulla oli 5 jäljellä). Paina vahvista ja (olettaen, että kaikki menee hyvin) lataa se Arduinolle ja sinun pitäisi nähdä, että pienen nauhan valot syttyvät ja vaihtavat väriä.

Vaihe 2: Matriisin ja Stripboardin juottaminen

Matrixin ja Stripboardin juottaminen
Matrixin ja Stripboardin juottaminen
Matrixin ja Stripboardin juottaminen
Matrixin ja Stripboardin juottaminen
Matrixin ja Stripboardin juottaminen
Matrixin ja Stripboardin juottaminen

Nyt on aika aloittaa LED -matriisin luominen.

Leikkaa 11 lyhyttä pituutta jokaisesta kolmesta langan väristä. Varmista, että ne ovat riittävän pitkiä siirtyäkseen yhden nauhan lopusta seuraavan nauhan alkuun. Kun asetat LED -nauhat ulos, sinun on varmistettava, että tiedonsiirtonuoli seuraa käärmettä. Kun tämä on asetettu, juota huolellisesti jokainen led -rivi seuraavaan riviin kuvan osoittamalla tavalla. Tämä on huomattavasti helpompaa, jos käytät samaa väriä jokaiselle yhteystyypille.

Nyt, lisää juottamista, meidän on luotava nauhat, jotka käsittelevät verkkovirtalähteen virtaa. Juotin kaksi pylvästä nauhalevylle yhteen sekä 5 V: n että GND: n suhteen, jotta se käsittelee virtaa paremmin. Katso luodun piirin oheinen kaavio. Kun juotat kondensaattoria, varmista, että negatiivinen pää on kiinnitetty GND -kiskoon, ei 5V. Kun nauhoituslevy on valmis, meidän on yhdistettävä +VE ja GND LED -nauhaan ja käytettävä myös toista puolta aikaisemmin leikatuista puseroista Arduinon kytkemiseksi virtalähteeseen ja stripboardiin. Nyt olisi hyvä aika lisätä SD -murtotaulu Arduinoon, jotta voimme tallentaa tiedostoja siihen ja lukea siitä myöhemmin. Kun SD -murtokortti on paikallaan, voimme liittää 5V -kiskon Vin -nastaan ja GND: n mihin tahansa Arduinon GND -nastaan.

Lopuksi voimme kytkeä potentiometrin analogituloon A0 kuvan osoittamalla tavalla, jotta voimme hallita LEDien kirkkautta.

Kun kaikki tämä on tehty, voimme ladata striptest -luonnoksen uudelleen vaihtamalla LED -valojen määrän 144. Varmista, että virtalähde on aktiivinen ennen tämän luonnoksen lataamista. Toivottavasti kaikkien merkkivalojen pitäisi syttyä striptest -luonnoksen kuvioissa, jotta tiedämme, että kaikki toimii.

Vaihe 3: Bluetooth -moduulin integrointi

Bluetooth -moduulin integrointi
Bluetooth -moduulin integrointi

HC05 -yksikkö muodostaa viimeisen kytkentäkappaleen Arduino Megaan kaavion mukaisesti. Varmista, että HC05 -yksikkö muodostaa yhteyden mega -Rx1- ja Tx1 -portteihin - tämä helpottaa ohjelmointia ja välttää "ohjelmistopohjaisen" kirjaston käyttöä.

HUOM. HC05 -yksikkö ottaa joko 5 V: n tai 3,3 V: n sisään ja toimii yleensä 3,3 V: n logiikalla, joten liitin sen 3,3 V: n kiskoon. Jotkut muut ohjeet ovat osoittaneet Tx: n (Arduinolla) - Rx: n (HC05 -yksikössä) potentiaalisella jakajapiirillä, joka lyö 5 V: n logiikan Arduinolta HC05 -moduulin alkuperäiselle tasolle. Tästä syystä minulla oli 1k ja 2k vastukset osaluettelossa; En kuitenkaan vaivautunut ja se näyttää täysin onnelliselta pöydälläni:)

Vaihe 4: Pöydän hakkerointi

Taulukko hakkerointi
Taulukko hakkerointi
Taulukko hakkerointi
Taulukko hakkerointi
Taulukko hakkerointi
Taulukko hakkerointi

Nyt meidän on aloitettava pöydän leikkaaminen erilleen, jotta LEDit ja elektroniikka saavat uuden kodin.

Merkitse ensin 450 mm x 450 mm neliö LACK -pöydän yläosan keskelle. Leikkaa neliö mahdollisimman hyvin Dremelin (tai palapelin) avulla. Nyt voimme poistaa yläosan ja pahvin sisäosat jättäen sinulle onton pöydän, kuten kuvassa. Käyttämällä Dremelia uudelleen voimme porata reiän pöydän pohjan kulmaan, joten meillä on paikka reitittää verkkokaapeli.

Kun pöytä on valmis, voimme teipata LEDit suunnilleen oikeisiin paikkoihin ennen kuin siirrymme seuraaviin vaiheisiin. Minusta oli hyödyllistä varmistaa, että elektroniikka oli oikeassa jokaisen vaiheen jälkeen, joten kokeile striptest -luonnosta uudelleen.

Kun olet mukava, kaikki on oikealla paikallaan, voit porata pari pientä reikää virtalähteen asentamiseksi pöydän reunan sisään pienillä ruuveilla. Päätin asentaa Arduinon pöydän ulkopuolelle, jotta voin ohjelmoida helposti uudelleen, jos haluan, mutta se on asennettu ylösalaisin pöydän pohjaan eikä se ole helposti näkyvissä. Asensin myös potentiometrin pöydän pohjan läpi, jotta kirkkauden säätö näyttää hyvältä ja ammattimaiselta.

Vaihe 5: Laserleikatut osat

Laserleikatut osat
Laserleikatut osat
Laserleikatut osat
Laserleikatut osat
Laserleikatut osat
Laserleikatut osat

Nyt meidän on otettava käyttöön laserleikatut osat, jotka muodostavat neliöiden matriisin, joten olemme määritelleet pikselit. Olen sisällyttänyt dxf -tiedostot laserleikattuihin osiin, jotka muodostavat puumatriisin, ja myös kuvia niistä, jotta tiedät miltä niiden pitäisi näyttää. Ne on tehty kahdesta erillisestä kappaleesta, joista toinen kulkee jokaista LED -riviä pitkin ja toinen ylittää ne. Risteytyvissä osissa on 10 mm korkea aukko, joka on leikattu alaosasta, jotta johdot pääsevät läpi. Tämä rako voidaan pienentää 5 mm: iin, koska minusta näyttää siltä, että valovuoto vuotaa pikselistä toiseen.

11 kappaletta kopioita molemmista osista on leikattava laserilla 3 mm: n vanerista ja koottava ne sitten varmistaakseen, että ne sopivat oikein. Kun olet tyytyväinen, irrota matriisi uudelleen ja ruiskuta se valkoiseksi parantaaksesi pöydän heijastavia ominaisuuksia. Kun ne ovat kuivat, aseta ne takaisin yhteen ja aseta ne LED -valojen päälle. Voi olla hieman vaikeampaa sovittaa ne yhteen ruiskutuksen jälkeen, koska ne ovat nyt hieman paksumpia, mutta älä huoli, napauta ne varovasti paikalleen ennen matriisin asettamista pöydälle.

Vaihe 6: Glediator

Glediator
Glediator
Glediator
Glediator

Nyt meillä on kaikki laitteistot toteutettu, jotta voimme alkaa tarkastella ohjelmistoja. Latasin ja asensin Glediator -nimisen ohjelmiston animaatioiden luomiseksi LEDeille (https://www.solderlab.de/index.php/software/glediat…). Asennusohjeet voivat olla hieman hankalia, mutta noudata verkkosivustoa tarkasti ja sinun pitäisi olla kunnossa. Meidän on myös ladattava luonnos Glediator -verkkosivustolta ladattavaksi Arduinolle (https://www.solderlab.de/index.php/downloads/catego…). Käytämme WS2812B -LED -valoja, joten varmista, että lataat oikean (WS2812 Glediator Interface). Kun olet avannut tämän luonnoksen, muuta NUMBER_OF_PIXELS -arvoksi 144 ja lataa se Arduinolle.

Kun Glediator on asennettu, voimme aloittaa animaatioiden pelaamisen pöydällä. Ensinnäkin meidän on asetettava matriisin kooksi 12 x 12 Glediator -ohjelmistossa ja myös tulostustyypiksi HSBL - Horizontal Snake (alku) vasen alareuna, koska näin olemme kytkenyt LEDit ja muuttaneet värijärjestyksen GRB: ksi (tätä varten LEDit ottavat tietoja vastaan). Avaa tulostusvälilehdessä COM -portti ja LED -matriisin pitäisi alkaa näyttää LED -kuvio Glediator -ohjelmiston keskimmäisellä näytöllä.

Voit luoda animaatioita ja tallentaa ne.dat -tiedostoon, jonka voimme ladata SD -kortille, jolloin suosikkianimaatiosi voidaan näyttää pöydällä ilman tietokonetta. Tästä on muutamia opetusohjelmia verkossa (esimerkiksi https://hackaday.io/project/5714-glediator-from-sd…). Olen muokannut muutamia erilaisia koodilähteitä toimimaan tätä varten, joten koodini pitäisi olla kunnossa.

Kun tallennat animaatioita, muista tallentaa ne nimellä "animX.dat", jossa X on mikä tahansa luku 1-15. Voit toteuttaa enemmän muuttamalla pari riviä koodissani.

Huomaa- Kun tallennat Glediator-tiedostoja, ohjelmistossa on virhe, joka tarkoittaa, että se ei muista, miten olet liittänyt LED-nauhan. Koodissani olen toteuttanut yksinkertaisen toiminnon parillisten rivien järjestyksen kääntämiseksi, mikä tarkoittaa, että kaikki näytetään oikein

Vaihe 7: Bluetooth -sarjaohjaus

Bluetooth -sarjaohjaus
Bluetooth -sarjaohjaus
Bluetooth -sarjaohjaus
Bluetooth -sarjaohjaus

Bluetooth -yhteyden luominen älypuhelimen ja Arduinon välillä osoittautui yllättävän hankalaksi, mutta on olemassa muutamia yksinkertaisia vaiheita, jotka helpottavat tätä. Ensinnäkin sinun on ladattava sovellus älypuhelimeesi. Käytin https://play.google.com/store/apps/details?id=com…. mutta luultavasti on olemassa iPhone -vastaava (josta sinun on maksettava; p)

Olet ehkä huomannut, että HC05 -moduulissa on pieni kytkin. Jos kytket sen päälle painamalla tätä kytkintä alas, se siirtyy AT-tilaan, mikä tarkoittaa, että voit kyseenalaistaa sen parametrit ja muuttaa niitä halutessasi.

Lataa liitteenä oleva luonnos Mega -laitteeseen ja aseta tietokoneesi sarjanopeudeksi 9600. Irrota HC05 -yksikön virta ja paina sitten sen painiketta, kun kytket sen uudelleen. Vilkkumisen pitäisi nyt tapahtua noin kerran kahden sekunnin välein - nyt HC05 on AT -tilassa.

Nyt sarjamonitorissa voimme lähettää komentoja HC05: lle ja nähdä sen vastauksen. Kirjoita "AT" ja paina lähetä, niin sinun pitäisi nähdä "OK" palaavan sarjamonitoriin - nyt tiedämme, että se kuuntelee. Laitteen bluetooth -nimeä voidaan muuttaa kirjoittamalla "AT+NAME = XYZPQR", jossa XYZPQR on moduulin nimi. Soitin omani LightWaveksi. Bluetooth -moduulin oletussalasana on 1234 (tai 0000), mutta tämä voidaan muuttaa myös lähettämällä esimerkiksi "AT+PSWD = 9876". Lopuksi voimme muuttaa HC05: n tiedonsiirtonopeutta lähettämällä "AT+UART = 38400". Tämä on oletusarvo useimmille HC05 -moduuleille, mutta omani on asetettu eri tavalla, joten on hyvä asettaa se varmaksi. Näistä komennoista on paljon lisätietoja täällä: https://www.itead.cc/wiki/Serial_Port_Bluetooth_M…, ja tästä vaiheesta on myös ohjeita, joissa on paljon enemmän tietoja https://www.instructables.com/id/Modify -The-HC-05-…

Nyt voimme yrittää lähettää komentoja moduulille bluetooth -laitteen kautta. Katkaise ensin virta HC05 -moduulista ja kytke se sitten uudelleen. Sinun pitäisi nähdä, että LED -valon vilkkumisnopeus on paljon nopeampi - tämä tarkoittaa, että se odottaa nyt pariliitosta. Avaa älypuhelimellasi Arduino Bluetooth Controller -sovellus ja etsi HC05 -moduuli. Jos et ole muuttanut nimeä, sen nimi on todennäköisesti HC05 tai vastaava. Kun päätät, miten haluat muodostaa yhteyden, valitse Terminal mode. Yritä nyt lähettää joitakin numeroita ja tekstiä ja katsoa, ilmoittaako tietokoneen sarjamonitori, että ne on vastaanotettu. Toivottavasti heillä on niin, että voimme jatkaa eteenpäin, jos ei, on paljon ohjeita, jotka voivat antaa sinulle muutaman vihjeen (esimerkiksi

Viimeinen asia tässä on kartoittaa ohjaimen tulot numeroihin, joilla Arduino voi tehdä jotain. Käytin seuraavia arvoja:

Ylös = 1, Alas = 2, Vasen = 3, Oikea = 4, Aloita = 5, Valitse = 6.

Vaihe 8: Pelit

Pelit
Pelit

En ota kunniaa pelikoodista. Käytin lähdekoodia, joka löytyi täältä https://github.com/davidhrbaty/IKEA-LED-Table, kirjoittanut davidhrbaty. Olen kuitenkin muokannut sitä muutamalla eri tavalla:

  1. Lisäsin potentiometrin arvoon perustuvan kirkkaudenrajoitustoiminnon, jotta voimme muuttaa kirkkautta
  2. Poistin tiilet -pelin, koska en saanut sitä kääntämään
  3. Muutin tetris -lohkojen värikoodeja niin, että ne olivat kaikki eri värejä
  4. Järjestin valikon uudelleen
  5. Toteutin vaihtoehdon toistaa animaatioita SD -kortilta
  6. Lisäsin valikkoon korkean pistemäärän seurannan ja korkean pistemäärän näyttövaihtoehdon

Liitetyn koodin pitäisi vain toimia heti, mutta ellei ehdotukseni olisi poistaa pelejä, jotka näyttävät aiheuttavan virheilmoituksia, ja tarkistaa koodi uudelleen, kunnes saat selville, missä ongelma on. Lisää sitten vähitellen monimutkaisemmaksi.

Tämän koodin alkuperäinen kirjoittaja teki fantastista työtä rakentaakseen jotain, joka on todella modulaarinen ja helppo lisätä siihen. Ei ole niin vaikeaa lisätä ylimääräisiä tapauksia lisätäksesi toimintoja taulukkoon.

Valikon vaihtoehdot ovat:

  1. SD -kortti - Toistaa SD -kortille tallennetut animaatiot
  2. Tetris
  3. Käärme
  4. Pong
  5. Noppa - Satunnainen nubergeneraattori välillä 1 ja 6
  6. Animaatio - Kokoelma animaatioita FastLED -kirjastosta
  7. Stars Animation - EDIT - Olen nyt toteuttanut Conwayn elämän pelin tämän animaation sijasta
  8. Sateenkaari -animaatio
  9. Huippupisteet - Näyttää korkeat pisteet tetrisistä ja käärmeistä

Ennen kuin aloitat pelaamisen, sinun on luotava SD -kortille kaksi txt -tiedostoa, joista toinen on "teths.txt" ja toinen "snkhs.txt". Laita molemmissa tiedostoissa numero 0 ja tallenna ne sitten SD -kortin juurihakemistoon. Nämä ovat korkean pistemäärän seurantatiedostot, ja ne päivitetään aina, kun korkeat pisteet lyödään. Jos haluat nollata sen, muuta arvot takaisin 0: ksi tietokoneessa.

Kun olet ladannut LED_table -ohjelman Arduinoon, voit avata sarjamonitorin ja sinun pitäisi nähdä bluetooth -komennot lähettäessäsi niitä - näin tiedät, että kaikki toimii hyvin.

Vaihe 9: Nauti

Nauttia
Nauttia
Nauttia
Nauttia
Nauttia
Nauttia

Ei muuta kuin lataamaan tärkein LED -pöydän koodi Megaan ja nauttimaan pelaamisesta ja kertomaan parhaat tulokset!

Odotan edelleen pöydän osien saapumista (alumiininen T -osa ja lasi), mutta pöytä toimii nyt hyvin ja voin pelata pelejä.

Kerro minulle, jos sinulla on kommentteja, muokkauksia tai havaitset tekemiäni virheitä.

Vaihe 10: Päivitä

Image
Image
Päivittää
Päivittää
Päivittää
Päivittää

Nyt se on täysin valmis!:)

Sain vihdoin toimitetuksi alumiinista valmistetun T -osan reunaa varten ja tein parhaani työstääkseni liitoksen (osoittautuu, että 45 astetta on yksi vaikeimmista kulmista), mutta se on melkein täysin neliö. Päälle päätin hankkia paksumman lasilevyn (425 x 425 x 8 mm) ja himmennin alapuolen Rustoleum -lasisuihkeella. Käytin tavallista tiivistettä (silikonitiivistettä) ylä- ja kulmakappaleiden liittämiseen niin, että liitoksissa on tarvittaessa hieman joustavuutta.

Päivitetty päivitys. Nyt olen lisännyt Conwayn Elämän pelissä vaihtoehdoksi 7 valikossa pikemminkin kuin tähtianimaation, koska en ole koskaan käyttänyt sitä. Jos et tiedä mitä tämä peli on, googlaa se, mutta pohjimmiltaan se on nollapeli, joka näyttää evoluution kolmen yksinkertaisen säännön perusteella. Conwayn elämänpeli

Päivitys^3. Olen tehnyt joitain muutoksia koodiin niin, että se sisältää nyt virheenkorjauksen punaisten LED -valojen himmentymisestä ja sisältää myös joulukuusi -animaation valikossa 11. Nauttia.

Suositeltava: