INHOUDSOPGAWE:

Bluetooth -beheerde Arduino LED -koffietafel: 10 stappe (met foto's)
Bluetooth -beheerde Arduino LED -koffietafel: 10 stappe (met foto's)

Video: Bluetooth -beheerde Arduino LED -koffietafel: 10 stappe (met foto's)

Video: Bluetooth -beheerde Arduino LED -koffietafel: 10 stappe (met foto's)
Video: Android Bluetooth Operated Scrolling LED Message Board using Arduino 2024, Julie
Anonim
Bluetooth -beheerde Arduino LED -koffietafel
Bluetooth -beheerde Arduino LED -koffietafel
Bluetooth -beheerde Arduino LED -koffietafel
Bluetooth -beheerde Arduino LED -koffietafel
Bluetooth -beheerde Arduino LED -koffietafel
Bluetooth -beheerde Arduino LED -koffietafel
Bluetooth -beheerde Arduino LED -koffietafel
Bluetooth -beheerde Arduino LED -koffietafel

Dit was my eerste werklike Arduino -projek en ek is ook my eerste opdrag, so wees vriendelik in die kommentaar:) Ek wou probeer om die vrae te beantwoord wat my tyd geneem het om uit te vind en gedetailleerde instruksies te gee, so as u baie vertroud is met stokperdjies elektronika, dan kan u waarskynlik deur elke stap gaan, maar as u nuut is hierin, behoort dit u alles te bied wat u nodig het.

Die doel van die projek was om 'n 12 x 12 pixel skerm in 'n koffietafel te skep wat via bluetooth beheer kan word en as 'n koel kamerlig gebruik word.

Vir hierdie konstruksie benodig u die volgende dele:

  1. Arudino Mega (of kloon)-https://www.amazon.co.uk/Arduino-Mega-2560-R3-Micr…
  2. Arduino mikro SD -kaartskerm (ek het hierdie een gebruik en die kopstukke gesoldeer) -
  3. Micro SD -kaart - enige grootte is voldoende, maar dit moet in FAT32 geformateer word
  4. 5m WS2812B -bykomende LED -strook -
  5. HC05 Bluetooth -module -
  6. 5 V 6 Amp Kragtoevoer-(ek het dit gebruik, maar daar is honderd ander op eBay)
  7. Ikea LACK tafel (die klassieke stokperdjies) -
  8. Toegang tot 'n lasersnyer vir 3 mm laaghout (of 'n baie vaste hand). U kan lasersnitonderdele aanlyn op verskillende plekke bestel (byvoorbeeld
  9. Wit spuitverf
  10. 2 m aluminium T -gedeelte (1 1/2 x 1 1/2 x 1/8) -
  11. 450 mm x 450 mm x 6 mm glasblad (die meeste plaaslike glasmakers kan pasgemaakte stukke vir u sny, maar ek het hierdie ouens gebruik
  12. 1 x 100 mikro Farad -kondensator
  13. 2 x 1k weerstand
  14. 1 x 2k weerstand
  15. 1 x lineêre rotasie potensiometer
  16. Verskeie springers (waarskynlik 'n dosyn tydens die prototipering)
  17. Minstens drie kleure relatief dik kabels vir soldeer (dit kan 'n paar groot strome trek, dus ek sal nie drade vir die krag aanbeveel nie)
  18. Strookbord vir die interne kring (moenie bekommerd wees nie, dit is baie eenvoudig)

Gereedskap benodig:

  1. 'N Soldeerbout + soldeer
  2. 'N Paar snitte
  3. Draadstroppers
  4. 'N Dremel of 'n figuursaag om die tafel uitmekaar te kap. Ek het hierdie https://www.amazon.co.uk/gp/product/B0078LENZC/ref… met spiraalsnysnitte gebruik

Stap 1: Aanvanklike toets en uitleg

Aanvanklike toets en uitleg
Aanvanklike toets en uitleg
Aanvanklike toets en uitleg
Aanvanklike toets en uitleg
Aanvanklike toets en uitleg
Aanvanklike toets en uitleg

Die eerste oproep is om die LED -strook in die lengtes te sny wat u benodig. Hierdie LED -strook is baie maklik om te gebruik, want dit het slegs 3 penne en laat die Arduino die regte werk doen. Ek het die spoel in 12 afdelings elk van 12 LED's in lengte gesny, soos in die figuur getoon, en dit op die agterkant van die tafel neergelê om my te help visualiseer waarheen ek op pad was.

Ek het toe 'n paar LED's oor, so ek het dit gekoppel aan 'n Arduino UNO wat ek moes toets of dit werk (u kan ook die Mega gebruik wat in die projek uiteengesit is). Om dit te doen, het ek 'n paar manlike na manlike opskrifte gesny en gesoldeer aan die pads aan die einde van die LED -strook. Op die WS2812 -strook wat ek gebruik het, is die 5V -draad rooi, die grond is wit en die data is groen. Let op die rigtingpyl wat op die WS2812B -strook gedruk is, sodat u nie probeer om data in die verkeerde rigting te stuur nie. Ek het die 5V -lyn gekoppel aan 5V op die Arduino, Ground met GND en Data aan pin 6 met 'n 1k -weerstand in serie. Hou in gedagte dat die Fritzing -skema van die WS2812B LED's effens anders is as die wat ek afgelewer het - dit is net genoeg om seker te maak dat die data gekoppel is aan pen 6, Gnd aan die grond gekoppel is en 5 gekoppel is aan 5V.

Met so min LED's (5 of so) behoort die Arduino goed te wees om die krag te verskaf; maar jy kan nie baie mense gebruik nie, want as hulle op wit is, trek die LED's tot 60mA elk en kan die Arduino vinnig oorweldig word.

As u die Arduino IDE het (indien nie aflaai en installeer nie), stel die tipe chipset in op die Arduino wat u het, en stel die COM -poort in op die een wat 'n Arduino in die opsies toon. Laai nou die FastLED -biblioteek af en installeer dit (https://fastled.io/). Maak die striptest.h -voorbeeld oop en stel die aantal LED's in die skets op hoeveel u ook al het (ek het nog 5 oor). Druk op verifieer en (as alles goed gaan) laai dit op na die Arduino, en u moet sien dat die ligte op die klein strook brand en van kleur verander.

Stap 2: soldeer die matriks en strook

Soldeer die matriks en strook
Soldeer die matriks en strook
Soldeer die matriks en strook
Soldeer die matriks en strook
Soldeer die matriks en strook
Soldeer die matriks en strook

Dit is nou tyd om die LED -matriks te begin skep.

Sny 11 kort lengtes van elk van die drie draadkleure wat u het. Maak seker dat hulle lank genoeg is om van die einde van die een strook na die begin van die volgende strook te gaan. As u die LED -stroke uitlig, moet u seker maak dat die datavloei -pyl 'n slang volg. Sodra dit uiteengesit is, soldeer elke geleide ry versigtig na die volgende een soos in die figuur getoon. Dit is aansienlik makliker as u dieselfde kleur vir elke tipe verbinding gebruik.

Nou, meer soldeer, moet ons 'n strook skep wat die krag van die kragtoevoer kan hanteer. Ek het twee kolomme op die strook gesoldeer vir beide die 5V en GND sodat dit die stroom beter kan hanteer. Sien die aangehegte skema vir die stroombaan wat u moet skep. As u die kondensator soldeer, moet u seker maak dat die negatiewe kant aan die GND -spoor vasgemaak is, nie die 5V nie. Sodra die strookbord klaar is, moet ons die +VE en GND aan die LED -strook koppel en ook die ander helfte van die springers wat ons vroeër gesny het, verbind om die Arduino aan die kragtoevoer en die strookbord te koppel. Dit is 'n goeie tyd om die SD -uitbreekbord by die Arduino te voeg, sodat ons lêers daarin kan stoor en later daaruit kan lees. Sodra die SD -uitbreekbord aangebring is, kan ons die 5V -spoor aan die Vin -pen koppel en die GND aan enige GND -pen op die Arduino.

Laastens kan ons 'n potensiometer koppel aan die analoog ingang A0, soos getoon, sodat ons die helderheid van die LED's kan beheer.

Sodra dit alles gedoen is, kan ons die striptest -skets weer oplaai en die aantal LED's na 144 verander. Maak seker dat u die kragtoevoer aktief het voordat u hierdie skets oplaai. Hopelik moet al die LED's in die patrone van die stripteste skets brand, sodat ons weet dat alles werk.

Stap 3: Bluetooth -module -integrasie

Bluetooth -module -integrasie
Bluetooth -module -integrasie

Die laaste bedrading nou, die HC05 -eenheid maak verbinding met die Arduino Mega, soos getoon in die skema. Maak seker dat die HC05 -eenheid aansluit by die Rx1- en Tx1 -poorte op die mega - dit maak dit baie makliker om te programmeer en vermy die gebruik van die "sagteware -seriële" biblioteek.

NB. Die HC05 -eenheid neem 5V in of 3.3V in en werk oor die algemeen op 3.3V logika, so ek het dit gekoppel aan die 3.3V rail. Sommige ander instruksies het die Tx (op Arduino) na Rx (op HC05 -eenheid) gewys met 'n potensiële verdelerkring om die 5 V -logika van die Arduino na die oorspronklike vlak vir die HC05 -module te laat val. Dit is die rede waarom ek die 1k en 2k weerstande in die onderdele lys gehad het; Ek het egter nie gepla nie en dit lyk heeltemal gelukkig op my tafel:)

Stap 4: Tafel -inbraak

Tafel inbraak
Tafel inbraak
Tafel inbraak
Tafel inbraak
Tafel inbraak
Tafel inbraak

Nou moet ons die tafel uitmekaar sny om ons LED's en elektronika 'n nuwe tuiste te gee.

Merk eers 'n vierkant van 450 mm x 450 mm in die middel van die bokant van die LACK tafelblad. Sny die vierkant so goed as moontlik met die Dremel (of 'n figuursaag) om dit reguit te hou. Nou kan ons die bokant en die binneste stukke van karton verwyder, sodat u 'n uitgeholde tafelblad het, soos op die foto getoon. Deur weer die Dremel te gebruik, kan ons 'n gat in die hoek van die onderkant van die tafel boor, sodat ons êrens die netkabel kan deurvoer.

Sodra die tafel voorberei is, kan ons die LED's in ongeveer die regte posisies vasmaak voordat ons na die volgende stappe gaan. Ek het dit nuttig gevind om seker te maak dat die elektronika reg is na elke stap, dus probeer weer die stripteste skets.

Sodra u gemaklik is, is alles op die regte plek, en u kan 'n paar klein gaatjies boor om die kragtoevoer aan die rand van die tafel met klein boute te monteer. Ek het gekies om die Arduino buite die tafel te monteer, sodat ek maklik kan herprogrammeer as ek wil, maar dit is onderstebo aan die onderkant van die tafel gemonteer en is nie maklik sigbaar nie. Ek het ook die potensiometer onderaan die tafel gemonteer sodat die helderheidsbeheer mooi en professioneel lyk.

Stap 5: Laser gesnyde onderdele

Laser gesnyde onderdele
Laser gesnyde onderdele
Laser gesnyde onderdele
Laser gesnyde onderdele
Laser gesnyde onderdele
Laser gesnyde onderdele

Nou moet ons die lasergesnyde dele wat die matriks van vierkante vorm, bekendstel, sodat ons pixels gedefinieer het. Ek het die dxf -lêers ingesluit vir die lasergesnyde dele wat die houtmatriks vorm, en ook beelde daarvan, sodat u weet hoe dit moet lyk. Hulle bestaan uit twee afsonderlike stukke, die een loop langs elke ry LED's en die ander kruis hulle. Die gedeeltes wat deurkruis, het 'n gaping van 10 mm aan die onderkant, sodat die bedrading kan deurloop. Hierdie gaping kan verminder word tot 5 mm, aangesien dit blykbaar 'n bietjie liglek van die een pixel na die volgende het.

11 kopieë van albei dele moet met laserhout uit 3 mm laaghout gesny word en dan saamgestel word om seker te maak dat dit reg pas. Sodra u gelukkig is, haal die matriks weer uitmekaar en spuit dit wit om die reflektiewe eienskappe van die tafel te verbeter. As dit droog is, sit dit weer saam en plaas dit oor die LED's. Dit kan 'n bietjie moeiliker wees om dit bymekaar te sit na bespuiting, want dit is nou 'n bietjie dikker, maar moenie bekommerd wees nie, tik dit saggies vas voordat u die matriks in die tafel sit.

Stap 6: Glediator

Glediator
Glediator
Glediator
Glediator

Nou het ons al die hardeware geïmplementeer, sodat ons na sagteware kan begin kyk. Ek het sagteware genaamd Glediator afgelaai en geïnstalleer om animasies vir die LED's te skep (https://www.solderlab.de/index.php/software/glediat…). Die installasie -instruksies kan effens ingewikkeld wees, maar volg die webwerf noukeurig en dit sal goed gaan. Ons moet ook die skets van die Glediator -webwerf aflaai om na die Arduino te laai (https://www.solderlab.de/index.php/downloads/catego…). Ons gebruik WS2812B LED's, dus maak seker dat u die regte een aflaai (WS2812 Glediator -koppelvlak). Sodra u hierdie skets oopgemaak het, verander die NUMBER_OF_PIXELS na 144 en laai dit op na die Arduino.

Sodra Glediator geïnstalleer is, kan ons animasies op die tafel begin speel. Eerstens moet ons die matriksgrootte op 12 x 12 in die Glediator -sagteware stel en ook die uitvoertipe stel op HSBL - Horizontal Snake (begin) Links onder, want dit is die manier waarop ons die LED's aangesluit het en die kleurvolgorde na GRB verander (dit is waarvoor die LED's data inneem). Open die COM -poort op die uitvoerblad, en die LED -matriks moet die LED -patroon op die middelste skerm van die Glediator -sagteware begin vertoon.

U kan animasies skep en dit opneem in 'n.dat -lêer wat ons na die SD -kaart kan oplaai, wat beteken dat u gunsteling animasies op die tafel kan verskyn sonder dat 'n rekenaar gekoppel moet word. Daar is 'n paar tutoriale hieroor aanlyn (byvoorbeeld https://hackaday.io/project/5714-glediator-from-sd…). Ek het 'n paar verskillende kodebronne aangepas om hiervoor te werk, so my kode moet goed wees.

As u u animasies stoor, moet u dit as "animX.dat" stoor, waar X 'n getal van 1-15 is. U kan meer implementeer deur 'n paar reëls in my kode te verander.

NB- By die opname van Glediator-lêers bevat die sagteware 'n fout, wat beteken dat dit nie kan onthou hoe u die LED-strook aangeskakel het nie. In my kode het ek 'n eenvoudige funksie geïmplementeer om die volgorde van eweredige rye om te keer, wat beteken dat dit alles korrek vertoon word

Stap 7: Bluetooth -seriële beheer

Bluetooth seriële beheer
Bluetooth seriële beheer
Bluetooth seriële beheer
Bluetooth seriële beheer

Die opstel van Bluetooth -kommunikasie tussen 'n slimfoon en die Arduino was verbasend moeilik, maar daar is 'n paar eenvoudige stappe wat dit baie makliker sal maak. Eerstens moet u 'n app vir u slimfoon aflaai. Ek het https://play.google.com/store/apps/details?id=com… gebruik. maar daar is waarskynlik 'n iphone -ekwivalent (waarvoor u moet betaal; p)

U het moontlik opgemerk dat die HC05 -module 'n klein skakelaar aan het. As u dit aanskakel met hierdie skakelaar ingedruk, gaan dit in die AT-modus, wat beteken dat u parameters daarop kan ondervra en dit kan verander as u wil.

Laai die aangehegte skets op na die Mega en stel die seriële koers op u rekenaar op 9600. Ontkoppel die krag van die HC05 -eenheid en druk die knoppie daarop neer wanneer u dit weer aansluit. Die knipper moet nou ongeveer elke twee sekondes wees - nou is die HC05 in die AT -modus.

Op die seriële monitor kan ons opdragte na die HC05 stuur en die reaksie daarvan sien. Tik "AT" en druk stuur, en "OK" sal op die seriële monitor verskyn; ons weet nou dat dit luister. Die Bluetooth -naam van die toestel kan verander word deur 'AT+NAME = XYZPQR' in te tik, waar XYZPQR die module wil noem. Ek het myne LightWave gebel. Die standaard wagwoord vir die Bluetooth -module is 1234 (of 0000), maar dit kan ook verander word deur byvoorbeeld "AT+PSWD = 9876" te stuur. Uiteindelik kan ons die kommunikasietempo van die HC05 verander deur 'AT+UART = 38400' te stuur. Dit is die standaardtarief vir die meeste HC05 -modules, maar myne is anders gestel, so dit is goeie gebruik om dit seker te stel. Daar is baie meer besonderhede oor hierdie opdragte hier: https://www.itead.cc/wiki/Serial_Port_Bluetooth_M… en daar is ook instruksies oor hierdie stap met baie meer besonderhede https://www.instructables.com/id/Modify -Die-HC-05- …

Nou kan ons probeer om opdragte na die module te stuur via 'n Bluetooth -toestel. Ontkoppel eers die krag van die HC05 -module en koppel dit dan weer aan. U moet sien dat die flits van die LED baie vinniger is - dit beteken dat dit nou wag om te koppel. Maak die Arduino Bluetooth Controller -app op u slimfoon oop en vind die HC05 -module. As u nie die naam verander het nie, word dit waarskynlik HC05 genoem. As u die opsies kry oor hoe u wil koppel, kies dan Terminal -modus. Probeer nou 'n paar nommers en teks stuur en kyk of die seriële monitor op die rekenaar rapporteer dat dit ontvang is. Hopelik het hulle dit, sodat ons kan voortgaan, indien nie, is daar baie instruksies wat u 'n paar wenke kan gee (byvoorbeeld

Die laaste ding wat u hier moet doen, is om die insette van die beheerder in kaart te bring na syfers waarmee die Arduino iets kan doen. Ek het die volgende waardes gebruik:

Op = 1, Af = 2, Links = 3, Regs = 4, Begin = 5, Kies = 6.

Stap 8: Speletjies

Speletjies
Speletjies

Ek neem geen eer vir die spelkode nie. Ek gebruik die bronkode wat hier gevind word https://github.com/davidhrbaty/IKEA-LED-Table geskryf deur davidhrbaty. Ek het dit egter op 'n paar verskillende maniere aangepas:

  1. Ek het 'n funksie vir helderheidsbeperking bygevoeg, gebaseer op die potensiometerwaarde, sodat ons die helderheid kan verander
  2. Ek het die stene -spel verwyder omdat ek dit nie kon opstel nie
  3. Ek het die kleurkodering van die tetrisblokke verander sodat hulle almal verskillende kleure het
  4. Ek het die spyskaart herbestel
  5. Ek het 'n opsie geïmplementeer om animasies vanaf die SD -kaart af te speel
  6. Ek het 'n hoë tellingopsporing en 'n hoë vertoonopsie in die spyskaart bygevoeg

Die aangehegte kode moet net dadelik werk, maar as dit nie die geval is nie, is dit om speletjies wat foutboodskappe veroorsaak, uit te vee en die kode weer te verifieer totdat u agterkom waar die probleem is. Voeg dan geleidelik meer kompleksiteit by.

Die oorspronklike outeur van hierdie kode het 'n fantastiese werk gedoen om iets modulêrs en maklik by te voeg. Dit is nie so moeilik om in ekstra gevalle by te voeg om meer funksies in die tabel te voeg nie.

Die opsies in die spyskaart is:

  1. SD -kaart - Speel animasies wat op die SD -kaart gestoor is
  2. Tetris
  3. Slang
  4. Pong
  5. Dobbelsteen - ewekansige nuwer generator tussen 1 en 6
  6. Animasie - 'n Versameling animasies uit die FastLED -biblioteek
  7. Stars Animation - EDIT - Ek het nou Conway's Game of Life geïmplementeer in plaas van hierdie animasie
  8. Reënboog -animasie
  9. Hoë tellings - Toon hoë tellings vir tetris en slang

Voordat u begin speel, moet u twee txt -lêers op die SD -kaart skep, een met die naam 'teths.txt' en die ander 'snkhs.txt'. Plaas die nommer 0 in albei hierdie lêers en stoor dit dan in die wortelmap van die SD -kaart. Dit is die opsporingslêers met 'n hoë telling en sal bygewerk word elke keer as die hoë telling geslaan word. As u dit wil herstel, verander die waardes terug na 0 op 'n rekenaar.

Sodra u die LED_table -program na die Arduino opgelaai het, kan u die seriële monitor oopmaak, en u moet die bluetooth -opdragte kan sien terwyl u dit stuur - op hierdie manier weet u dat alles goed werk.

Stap 9: Geniet dit

Geniet dit
Geniet dit
Geniet dit
Geniet dit
Geniet dit
Geniet dit

Al wat u nog moet doen, is om die belangrikste LED -tafelkode na die Mega op te laai, en dan lekker te speel en my u hoë tellings te laat weet!

Ek wag nog steeds vir die onderdele vir die tafelblad (aluminium T -gedeelte en glas), maar die tafel werk nou goed en ek kan daarop speel.

Laat weet my as u opmerkings, wysigings of foute wat ek gemaak het, opspoor.

Stap 10: Werk op

Image
Image
Opdateer
Opdateer
Opdateer
Opdateer

Nou is dit heeltemal klaar!:)

Uiteindelik het ek die aluminium T -gedeelte vir die rand gekry en my bes gedoen om die gewrig te verstik (blyk dat 45 grade een van die moeiliker hoeke is), maar dit is amper heeltemal vierkantig. Aan die bokant het ek besluit om 'n dikker glasplaat (425 x 425 x 8 mm) te kry, en ek het die onderkant met behulp van Rustoleum glas -rysbespuiting bedek. Ek het 'n gewone kit (silikoon seëlaar) gebruik om die bokant en die hoekstukke te verbind, sodat daar 'n bietjie buiging in die verbindings is indien nodig.

Opgedateerde opdatering. Nou het ek bygevoeg in Conway's Game of Life as opsie 7 in die spyskaart eerder as die sterre -animasie, aangesien ek dit nooit gebruik het nie. As u nie weet wat hierdie speletjie is nie, Google dit, maar basies is dit 'n nulspeler -spel wat evolusie toon gebaseer op drie eenvoudige reëls. Conway's Game of Life

Opdateer^3. Ek het 'n paar wysigings aan die kode aangebring, sodat dit nou 'n foutoplossing bevat met betrekking tot die verduistering van rooi LED's en ook 'n kersboomanimasie as opsie 11 in die spyskaart bevat. Geniet dit.

Aanbeveel: