Inhoudsopgave:
- Stap 1: Theorie
- Stap 2: Hardware: LED-kubus bouwen
- Stap 3: LED-rijen
- Stap 4: Laagmontage
- Stap 5: Kubusbedrading
- Stap 7: Arduino + Bluetooth-besturingskaart
- Stap 8: Optioneel: de printplaten etsen
- Stap 9: De kubus aansluiten
- Stap 10: Software: multiplexcyclus
- Stap 11: Aangepaste animaties
- Stap 12: Extra: AnimationCreator
- Stap 13: Bluetooth-app
- Stap 14: Showcase
Video: RGB LED-kubus met Bluetooth-app + AnimationCreator - Ajarnpa
2025 Auteur: John Day | [email protected]. Laatst gewijzigd: 2025-01-13 06:57
Dit is een instructie over het bouwen van een 6x6x6 RGB LED (Common Anodes) Cube bestuurd door een Bluetooth-app met behulp van een Arduino Nano. De hele build is eenvoudig aan te passen aan bijvoorbeeld een 4x4x4 of 8x8x8 Cube. Dit project is geïnspireerd door GreatScott. Ik besloot om voor een meer geavanceerde build te gaan met grotere leds (8 mm), met minder afstand + toevoeging van Bluetooth-communicatie, wat het toevoegen van nieuwe functies zoveel gemakkelijker maakt en ook de mogelijkheid toevoegt om een app te bouwen om de kubus te besturen. Hierdoor kan ik ook b.v. codeer een Snake Game (3e showcasevideo aan het einde). Bovendien heb ik een Audio Visualizer-modus toegevoegd waarmee de kubus een AUX-ingang kan visualiseren, b.v. Muziek met behulp van een MSGEQ7 (showcasevideo aan het einde). Daarnaast schreef ik een AnimationCreator-applicatie in Java met een gebruiksvriendelijke gebruikersinterface om animaties te maken en aan te passen, zodat iedereen heel snel aangepaste animaties kan maken. Dus de Sketch + Bluetooth-app biedt een raamwerk voor elke LED Cube-configuratie en met de Animation Creator hoeft u zich geen zorgen te maken over het implementeren van aangepaste animaties.
Links naar de Arduino Sketch en Bluetooth-app:
RGBCube_Arduino Sketch (Github)+Animation Creator.jar
Cubo Bluetooth-app (Github)
Onderdelenlijst voor de Cube:
- 216x RGB LED (Gemeenschappelijke Anode) (8mm)(AliExpress / Ebay)-> 6x6x6=216
- Lintkabel (1m 40Pin zou voldoende moeten zijn) (AliExpress / Ebay / Amazon)
- Vrouwelijke en mannelijke headers (elk minimaal 4x40pin) (AliExpress / Ebay / Amazon)
- Vertind koper/zilverdraad 0,8 mm (~ 25 meter) (AliExpress / Ebay / Amazon)
- Krimpkous (AliExpress / Ebay / Amazon)
Onderdelenlijst voor de besturingskaarten:
- 7 x TLC5940 LED-stuurprogramma (Ebay / AliExpress)
- 6 x IRF 9540 P-kanaal MOSFET's (Amazon / Ebay / AliExpress)
- 8 x 10 uF-condensatoren (Amazon / Ebay / AliExpress)
- 3 x 1000 uF condensatoren (Amazon / Ebay / AliExpress)
- 14x 2.2kOhm Weerstanden (Amazon / Ebay / AliExpress)
- 1 x 1kOhm-weerstand (Amazon / Ebay / AliExpress)
- 7 x 28-pins IC-aansluitingen (Amazon / Ebay / AliExpress)
- 1 x Arduino Nano (Amazon / Ebay / AliExpress)
- 1 x 1N4001 Diode (Elke gemeenschappelijke Diode) (Amazon / Ebay / AliExpress)
- 8 x 0.1uF condensatoren (Ebay)
- 1 x DC-aansluiting PCB-montage (Amazon / Ebay / AliExpress)
- 1 x HC-05 Bluetooth-module (Amazon / Ebay / AliExpress)
Stap 1: Theorie
Als je niet geïnteresseerd bent in theorie over multiplexen, ga dan naar stap 2 voor de start van de eigenlijke build
Aangezien de hardware en software even grote onderdelen van dit project zijn, laten we eerst de theorie bekijken.
Het brein van de kubus is een Arduino Nano. Het biedt voldoende I/O om te communiceren met de gebruikte LED-stuurprogramma's en om een Bluetooth-verbinding tot stand te brengen met een HC-05-module en andere besturingshardware. Als je naar andere LED Cube-builds hebt gekeken, weet je dat de meeste mensen eenvoudige Shift-registers gebruiken om de helderheidswaarden van de kleuren van de individuele LED's op te slaan. Deze build gebruikt geen Shift-registers, maar in plaats daarvan zogenaamde "TLC5940" LED-stuurprogramma's. Zoals we later zullen zien, bespaart dit ons veel tijd en veel extra hardware (bijvoorbeeld weerstanden).
De basisfunctionaliteit van het besturen van de kubus maakt gebruik van multiplexing. In dit geval multiplexen we de 6 lagen van de kubus, wat betekent dat alle anodes (+) van alle LED's in een laag zijn verbonden, terwijl de individuele kathoden van alle LED's in dezelfde kolom naar de onderkant zijn aangesloten. Dit betekent dat als u de LED op positie x=1, y=2, z=3, kleur: groen wilt laten branden, u 5V moet leveren aan de anode van laag 3 en GND moet aansluiten op de kathode van de kolom die overeenkomt met Groene Pin van x=1, y=2. Dus in werkelijkheid is op een bepaald moment slechts één laag van de kubus daadwerkelijk ingeschakeld, maar zoals je later in de code zult zien, schakelen we de afzonderlijke lagen zo snel uit en aan, dat ons oog denkt dat de hele kubus aan is.
Om zaken als helderheid, animaties enzovoort te regelen, gebruiken we een HC-05 Bluetooth-module die is aangesloten op de Arduino Nano. Het is heel eenvoudig om de module met een Arduino te gebruiken, omdat je alleen een 4-pins verbinding nodig hebt en de module eenvoudig kunt aansluiten via de standaard seriële communicatie van de Arduino. Tegen het einde van deze instructable zul je zien hoe gemakkelijk het is om je eigen Bluetooth-app te schrijven om de Cube te besturen.
OPMERKING
In mijn schema van de Arduino-printplaat kun je ook een klein schema zien voor het koppelen van een MSGEQ7-chipto-proces-audio-ingang, dit is absoluut niet nodig voor de eigenlijke kubus en is slechts een extra functionaliteit die ik heb toegevoegd, dus je kunt gewoon het schema negeren dat is gemarkeerd met "MSGEQ7"
Stap 2: Hardware: LED-kubus bouwen
Laten we dus eens kijken hoe we de Cube zelf kunnen bouwen, voordat we het hebben over het besturingscircuit rond de Arduino Nano.
Onderdelenlijst voor de kubusconstructie:
- 216x RGB LED (gemeenschappelijke anode) (AliExpress / Ebay) -> 6x6x6=216
- Lintkabel (1m 40Pin zou voldoende moeten zijn) (AliExpress / Ebay / Amazon)
- Vrouwelijke en mannelijke headers (minstens 4x40pin) (AliExpress / Ebay / Amazon)
- Vertind koper/zilverdraad 0,8 mm (~ 25 meter) (AliExpress / Ebay / Amazon)
- Krimpkous (AliExpress / Ebay / Amazon)
Het eerste wat ik moet doen, en nu is het vervelend maar noodzakelijk, we moeten de LED's testen. Om dat te doen, sluiten we eenvoudig een voeding, bijv. 9V Batterijblok met clip, aan op een breeboard. Zoals je op foto 3 kunt zien is de langste Pin van de LED's de Anode (+) deze pin sluit je dus aan op de +9V van de batterij. Voordat u GND op de afzonderlijke kleuren aansluit. Kathodes (rood, groen, blauw) voegt u een 220 Ohm-weerstand toe aan elke kathode om de stroom te beperken. Veel plezier met het testen van alle kleuren van alle 216 LED's.
In de volgende stap zullen we de geteste LED's voorbereiden, zodat we ze later gemakkelijk in kolommen kunnen monteren.
Stap 3: LED-rijen
Voordat we de LED's in hun respectieve rijen kunnen solderen, moeten we de draden buigen en doorknippen.
Zoals je op de eerste foto kunt zien, heb ik eenvoudig een gat van 8 mm (voor 8 mm LED's) in een stuk hout geboord en 3 zeer kleine boren links van het LED-gat geboord en een andere rechts van het gat. Deze boren zijn markeringen voor het correct buigen van de draden en moeten een afstand van ongeveer 1 cm hebben vanaf het midden van het gat voor de LED.
Deze techniek is geïnspireerd door Steve Manley, op YouTube kun je een video vinden waarin hij dit doet in een kleine variatie.
Voordat u de draden rond de boren snijdt en buigt, zoals te zien is in afbeelding 2 en 3, moet u ervoor zorgen dat de oriëntatie van de draden overeenkomt met afbeelding 1 (blauw bovenaan naar links, dan groen, dan anode + naar rechts, en weer rood links). De cirkel die u in de draden hebt gebogen, moet een diameter hebben die groot genoeg is om in de vertinde koperdraad (0,8 mm) te passen. Deze stap maakt het prachtig gemakkelijker om de LED's mooi op hun plaats te solderen.
Nu alle LED's zijn voorbereid, willen we ze in rijen van 6 monteren waar de Anodes (+) zijn aangesloten:
- Bouw een kleine mal zoals te zien op afbeelding 6, boor 6 gaten (diameter 0,8 mm) met een afstand van 2,5 cm tot het volgende gat. Hierdoor passen we 6 LED's tegelijk in de mal
- Om de anodes aan te sluiten hebben we een recht stuk vertind koperdraad nodig van ~16cm lengte (met wat extra marge). Om de draad mooi recht te krijgen, kunt u het ene uiteinde van de draad in bijvoorbeeld een elektrische boormachine monteren, ongeveer 2 m draden per keer op een tafel bevestigen, vervolgens de boor vasthouden zodat de draad uitgerekt en strak is en de boormachine inschakelen voor een paar seconden met rechtzetten van de draad zeer snel. U kunt dan de draad afknippen waar u het stuk hebt vastgemaakt. Je kunt ook twee tangen gebruiken en kleinere stukjes draad tegelijk vastdraaien, maar dat is veel vervelender
- Zodra u 16 cm lange draden heeft, leidt u ze door de anode (+) gaten van de LED's in de mal en soldeert u de anodepinnen aan de draad (Afbeelding 7)
Voor de hele kubus hebben we 6x6 =36 van deze LED-rijen nodig
Stap 4: Laagmontage
Zoals ik eerder heb vermeld, zullen we de lagen van de kubus multiplexen, maar voor de montage is het gemakkelijker om 6 wanden van 6x6 LED's te bouwen en ze vervolgens naast elkaar te monteren en eenvoudig een enkele vertinde koperdraad te gebruiken die de anodes van de rijen in een laag samen.
Pas op dat deze stap veel tijd en geduld kost om het goed te doen, in totaal zul je ongeveer 1000 soldeerverbindingen moeten solderen voor de build dus neem je tijd!
Een LED-muur bouwen:
- Voor de mal: we hebben een stuk hout nodig met 6 gesneden lijnen die 6 rijen boven elkaar passen om een muur te bouwen. Je kunt de mal zelf zien op foto 2 (afstanden tussen rijen: 2,5 cm)
- Je past de 6 rijen LED's in de gravures, met de anodedraad naar beneden in de gesneden lijn, zodat de 3 kathodes (R, G, B) naar boven wijzen
- Om de boven elkaar geplaatste kathodes te verbinden (zie afbeelding 2) hebben we wat meer draad nodig (dus weer 6 kolommen x 3 kathoden x 6 wanden = 108 vertinde draadstukken zoals beschreven in de laatste stap (2.) (ook dezelfde lengte))
- Schuif de draadstukken van de onderkant van een kolom door de gaten van de kathodes naar de bovenste rij en soldeer de draad op zijn plaats bij elke LED
Je doet dit 6 keer om 6 Walls of LED's te krijgen.
Nu kunnen we de muren in de eigenlijke kubus zelf monteren. Maar om de kubus vast te houden, moeten we een soort grondvlak bouwen. Hiervoor heb ik gewoon wat dun triplex gebruikt en er kleine gaatjes van 0,8 mm in geboord, om de draden te passen die aan de laagste LED-rijen hangen (voor alle 6 LED-wanden). De metingen voor de gaten van een enkele LED zijn gedocumenteerd in stap 3 en de afstanden tussen elke LED is 2,5 cm.
Met de gaten op hun plaats nemen we nu de eerste muur en manoeuvreren deze in de gaten aan de linkerkant van het triplex. De LED-rij aan de onderkant moet precies op het hout zitten, zodat uiteindelijk alle wanden hetzelfde zijn uitgelijnd.
Blijf hetzelfde doen met de rest van de LED Walls, maar onthoud dat de Anodes van de Walls altijd in dezelfde richting wijzen. (in afbeelding 3 zijn alle anodes van de muren naar links gericht)
Zodra de hele kubus op zijn plaats zit, moeten we de anodes van elke laag aan elkaar solderen. Om dit te doen, nemen we nog een stuk rechte draad van ongeveer 16 cm en leggen dit op de eerste laag, zodat de draad alle anodedraden van de 6 wanden in één laag raakt. Pas op dat de nieuwe draad geen van de kathodes raakt. Soldeer de draad op zijn plaats en herhaal hetzelfde voor de 5 resterende lagen.
Stap 5: Kubusbedrading
Onderdelen voor de LED Driver Board:
- 7 x TLC5940
- 6/7 x 10 uF condensatoren
- 2 x 1000 uF condensatoren
- 7x 2.2kOhm Weerstanden
- 7 x 28-pins IC-aansluitingen
- 7 x 0.1uF condensatoren
- Lintkabel
Als we verder gaan met de besturingscircuits, laten we eerst eens kijken naar het LED-stuurprogrammabord. Zoals eerder vermeld, hebben we 7 TLC5940 nodig die zijn aangesloten op de Arduino Nano. Alle TLC5940-chips zijn in serie geschakeld, wat betekent dat alle besturingspinnen van de stuurprogramma's met elkaar zijn verbonden (bijv. BLANK-pin van de eerste TLC is verbonden met BLANK van de tweede, derde, vierde, … TLC) en zijn allemaal verbonden met de Arduinomet dezelfde draden, behalve de Serial In die eerst wordt verbonden van een Arduino Digital Pin naar de eerste TLC, dan wordt de Serial Out-pin van deze eerste TLC verbonden met de SIN-pin van de tweede TLC enzovoort (zie afbeelding 4)…
Dus het schema van het TLC-bord is vrij eenvoudig, zoals je kunt zien in het bijgevoegde schema.
(ALS JE DE BOARD WILT ETSEN, GA DAN NAAR STAP 8)
Ik heb ook een screenshot van het schema in frizz bijgevoegd, inclusief pin-labels en ook een GIMP.xcf-bestanden met lagen voor elke gescheiden Control Pin-verbinding.
Begin met het solderen van alle IC-sockets op hun plaats en voeg vervolgens de 100nF-condensatoren toe aan elke TLC, gevolgd door de 2.2kOhm-weerstanden naar IREF en GND en de 7-pins header in de rechterbovenhoek. Daarna kunt u eenvoudig het.xcf-bestand volgen door te beginnen met de "SIN-laag" in het Gimp-bestand dat laat zien hoe de seriële IN / OUT-pinnen van de stuurprogramma's moeten worden aangesloten met behulp van lintkabels, en vervolgens de CLK-laag in GIMP inschakelt, enzovoort. Zorg ervoor dat je goede verbindingen hebt van de + en - pinnen naar de pin Header rechtsboven De rest van het schema zou voor zichzelf moeten spreken, maar zorg ervoor dat je voldoende 1000uF en 10uF condensatoren aan het bord toevoegt, het is niet zo relevant waar precies je plaatst ze.
Zodra dit bord klaar is, kun je in de volgende stap doorgaan naar het Arduino-bord.
Stap 7: Arduino + Bluetooth-besturingskaart
Onderdelen voor de besturingskaart:
- 6 x IRF 9540 P-kanaal MOSFET's
- 1 x 10 uF condensatoren
- 1 x 1000 uF condensatoren
- 7 x 2,2kOhm-weerstanden
- 1 x 1kOhm-weerstand
- 2 x 14 vrouwelijke pin Header
- 1 x Arduino Nano
- 1 x 1N4001 Diode
- 1 x 0.1uF condensatoren
- 1 x DC-aansluiting PCB-montage
- 1 x HC-05 Bluetooth-module
- 1 x 3,5 mm audio-aansluiting
Het Arduino-besturingsbord behandelt voornamelijk het multiplexen en biedt ook de tegenhanger van de pin-header van het LED-stuurprogrammabord.
Solderen op perfboard:
- Plaats twee vrouwelijke pin-headers om als socket voor de Arduino in het midden van het bord te fungeren.
- Zet de 6 MOSFET's op een rij naast elkaar aan de rechterkant van de Arduino (de kant met de Analoge Pins) en voeg een 2.2kOhm weerstand toe tussen de eerste en de laatste pin elk.
- Plaats nu de 6-pins header voor de MOSFET's (midden van de rij) en verbind de 6 DRAIN-pinnen van de FET's (middelste pin) met de header en de GATE-pinnen (linker pin) van de FET's met de respectieve Arduino Analoge pinnen.
- Soldeer vervolgens de 7pin header voor de LEDDriver aansluiting aan de andere kant van de Arduino, laat wat ruimte over voor kabels en soldeer alle verbindingen van de Arduino naar de pin header.
- Voeg wat condensatoren toe (1-2 1000uF, 1 10uF, 100nF naast de Arduino) voor mogelijke stroomafnames.
- Soldeer een 4-pins header naast de achterkant van de Arduino voor de HC-05-module en maak de 4 verbindingen naar VCC, RX, TX, GND en vergeet niet om een spanningsdeler te maken van de RX-pin van de HC-05 en de TX Pin van de Arduino (zie hier)
- Plaats de DC-aansluiting op een willekeurige rand van het bord met een schakelaar ernaast en verbind de rechterpin van de schakelaar met de +-pin van de DC-aansluiting
- Maak ten slotte alle benodigde stroomaansluitingen van de GND-pin van de DC-aansluiting en de rechterpin van de schakelaar (VCC) naar de Arduino, MOSFET's, condensatoren en HC-05 zoals te zien in het schema. Vergeet niet om de diode toe te voegen die alleen de stroom van de VCC-pin van de schakelaar geeft om in de Arduinos 5V-pin te stromen, niet andersom. (dit beschermt de Arduino bij het programmeren via een USB-verbinding)
Voor de stroomaansluiting heb ik een DC Power Jack gebruikt met een simpele schakelaar, je zou ook een USB Connector kunnen gebruiken als je wilt. op het Arduino-bord. Zoals vermeld in de eerste stap is er ook een MSGEQ7-verbindingscircuit in het schema, maar negeer dat gewoon als u geen MSGEQ7 gebruikt. (Klik hier voor meer info over de MSGEQ7-functionaliteit)
Vergeet niet om nog een 7-pins lintkabel te maken met mannelijke pin-headers aan elk uiteinde om het Arduino-bord met het driverbord te verbinden
Stap 8: Optioneel: de printplaten etsen
Dus als je niet van het solderen van veel kabels houdt, kun je natuurlijk ook de benodigde PCB's etsen als je dat liever hebt.
In mijn Cube zijn het Arduino-bord en het Power/Audio-connectorbord beide geëtste borden met behulp van de bijgevoegde schematische/EAGLE-bestanden. De eerste keer dat ik een fout maakte in het schema, moest ik het LED-stuurprogrammabord opnieuw doen zoals ik deed in de laatste stap. Er zijn geen enorme voordelen om het bord te etsen in plaats van perboard te gebruiken, dus voel je vrij om het bord te etsen of het op perfboard te solderen.
In de bijgevoegde.zip vind je zowel een BOARD-bestand als een SCHEMATIC-bestand.
Merk op dat de sporen van de bovenste laag (rood) draadbruggen moeten zijn (aangezien ik thuis geen dubbelzijdige platen kan etsen). De niet-gerouteerde sporen tonen de verbindingen die via kabels moeten worden gemaakt voor de vrouwelijke pin-headers.
Het schema bevat de functie MSGEQ7, die u eenvoudigweg kunt weglaten door het gedeelte van het schema dat is gemarkeerd met "(MSGEQ7)" in de schermafbeelding van het.pdf-schema te verwijderen.
Stap 9: De kubus aansluiten
Om alle onderdelen van de Cube aan te sluiten, begint u met het aansluiten van de 7-pins kabel op het Arduino-bord en het driverbord (zorg ervoor dat de oriëntatie correct is!). Sluit vervolgens de HC05-module aan op de 4-pins header en sluit het voedingsbord aan indien gescheiden.
Om de 7x16 Pin Headers van de Cube aan te sluiten, moet je beginnen met de eerste TLC (degene waarvan de SIN-pin rechtstreeks op de Arduino is aangesloten). Zoek de juiste 16-pins kabel van de Cube en sluit deze aan op de pin-header van de eerste TLC (zorg ervoor dat de kabel voor kathode nr.0 wordt aangesloten op de eerste TLC OUT0-pin!). Ga verder en sluit de andere 16-pins kabels in de juiste volgorde aan op de bijbehorende TLC-headers.
Last but not least, sluit de 6-pins kabel voor de anodes van de kubus aan op de 6-pins header op de besturingskaart naast de MOSFET's.
Om de Cube af te werken heb ik muren aan de kast toegevoegd met nog wat multiplex met zwarte verf erop en deze erin gelijmd.
Nu zijn we klaar met alle hardware die nodig is voor de hele build!
Stap 10: Software: multiplexcyclus
Nu voert de Arduino in theorie constant de volgende cyclus uit:
- Als de LayerDuration is verstreken, laadt u de waarden voor de volgende laag in de TLC's, schakelt u de huidige laag uit, schakelt u de volgende laag in, stelt u de LayerDuration opnieuw in, legt u de nieuwe waarden vast in de TLC's
- Als de FrameDuration is verstreken, laadt u het nieuwe frame van de huidige animatie door de waarden voor alle LED's en kleuren op te slaan in de ValueLed-buffer, stelt u FrameDuration opnieuw in
- Als er Bluetooth-gegevens beschikbaar zijn, moet u erop reageren (Animaties, helderheid, … wijzigen) (later meer informatie)
Zoals je kunt zien, is de belangrijkste focus van de code snelheid. Het is belangrijk dat de tijd om de laag te wijzigen minimaal is.
Hoe sneller u de lagen in- of uitschakelt, hoe meer "frames" u krijgt. voor een 6x6x6 RGB LED Cube zoals deze kwam ik erachter dat een Layer Duration van 1700 microSec. is goed genoeg om het flikkeren tot een minimum te beperken en moet op deze waarde worden gelaten. De FrameDuration regelt meer van de snelheid van de animatie, zodat deze kan worden gewijzigd voor verschillende animaties.
In de volgende stap zullen we kijken hoe we onze eigen animaties kunnen schrijven.
Stap 11: Aangepaste animaties
Om een animatie te implementeren, moeten we de ValueLed-buffer instellen op de waarden die we voor het volgende frame willen hebben, elke keer dat FrameDuration is verstreken. Dat doen we door de macrofunctie "SETLED(x, y, z, COLOR, Brightness)" aan te roepen.
x, y, z zijn de coördinaten van de LED die we willen instellen en KLEUR (ROOD, GROEN of BLAUW) is de kleur die we willen instellen en Helderheid is de werkelijke waarde voor deze specifieke kleur die we instellen.
Dus om bijvoorbeeld een animatie te implementeren die de kleuren rood, groen en blauw willekeurig over de hele kubus laat zien, kun je dit eenvoudig doen:
ongeldig willekeurigLedsFull(){
for (uint8_t j = 0; j < CUBE_SIZE; j++){ for (uint8_t x = 0; x < CUBE_SIZE; x++){ for (uint8_t y = 0; y < CUBE_SIZE; y++){ uint8_t rand = random8(3); SETLED (x, y, j, rand, maxBright); } } } }
Deze methode wordt elke keer aangeroepen als de FrameDuration is verstreken en wordt geselecteerd uit de opdracht switch-case in de loop(). Als u nieuwe animaties schrijft, kunt u deze eenvoudig toevoegen aan de schakelkast.
Stap 12: Extra: AnimationCreator
Daarnaast heb ik een AnimationCreator geschreven met JavaFX en Java3D.
Het maakt het maken en bewerken van aangepaste animaties heel eenvoudig door een gemakkelijk te begrijpen gebruikersinterface te bieden.
U kunt animaties maken, bewerken, hernoemen en opnieuw configureren voor 4x4x4, 6x6x6 of 8x8x8 LED Cubes
Om een nieuwe animatie te maken klikt u op Bestand>Nieuw, onder "Kubus" kunt u de kubusgrootte selecteren, om de kleur van een LED in te stellen, selecteer de gewenste kleur met de kleurkiezer aan de linkerkant en klik vervolgens met de linkermuisknop op de LED's die u wilt in die kleur voor dat frame. Druk op "Volgende" of "+" om nog een frame toe te voegen. De rest van de UI-besturingselementen spreekt voor zich, de selectievakjes naast de kubuslagen zijn om te controleren welke lagen moeten worden beïnvloed door verschuiven en "Keep Frame". Test het gewoon uit en je weet alles in een mum van tijd.
Om de animatie te simuleren, kunt u bovendien op de knop "View 3D" klikken, waardoor een ander venster wordt geopend met een Java3D-model van de kubus. U kunt de camera draaien terwijl u de linkermuisknop ingedrukt houdt (Druk op R om de camera te resetten). Om de animatie af te spelen/pauzeren, drukt u op de P-toets, om de animatie opnieuw in te stellen, drukt u op Q. Het tekstveld onder de knop "View 3D" geeft de huidige FrameTime, dus de snelheid van je animatie.
Wanneer u klaar bent met de animatie, geeft u deze een naam en drukt u op Bestand> Opslaan als… en slaat u de animatie op in dezelfde map als de Cubo_Control.ino Sketch.
Om uw nieuwe animatie in de schets op te nemen, opent u de Cubo_Control.ino en voegt u de volgende code toe aan de schets:
#include "RGBit.h" //Replace
Scroll naar beneden naar BTEvent() en voeg een case-statement toe aan de switch-case van de animaties
schakelaar(curAnim){
… casus 10: animatie= &ani_cubesmove[0][0]; FRAME_TIME= ANI_CUBESMOVE_FRAMTIME; maxCount= ANI_CUBESMOVE_FRAMES; pauze; case 11: //UW NIEUWE ANIMATIE animatie= &ani_rgbit[0][0]; FRAME_TIME= RGBIT_FRAMETIME; maxCount= ANI_RGBIT_FRAMES; pauze; }
Stap 13: Bluetooth-app
Om de Cube daadwerkelijk te besturen, is het dankzij de HC-05 Module vrij eenvoudig om een Bluetooth-app te bouwen om je telefoon met de Cube te verbinden.
Link naar de app:Github
De app is open source, dus voel je vrij om zelf extra animaties/functies toe te voegen.
- Start de app, hij vraagt je om Bluetooth in te schakelen
- Klik op "Zoeken" en er verschijnt een lijst met beschikbare Bluetooth-verbindingen. Identificeer de HC-05-module van de kubus en klik erop.
- Als er een fout optreedt bij het verbinden met de Cube, probeer dan de HC-05-module handmatig te koppelen in de Bluetooth-instellingen
- Eenmaal verbonden, schakelt de app over naar het bedieningsscherm en is de Bluetooth-verbinding tot stand gebracht
Bediening
- Snelheid en helderheid: verander de waarden van de schuifregelaar om de animatie te versnellen/vertragen of de helderheid te wijzigen
- Animaties: Klik op een knop om de animatie te wijzigen, standaard lopen de animaties in een lus (vanaf linksboven komt de knop overeen met currAnim)
- Tekst scrollen: klik op de knop "Tekst" die een dialoogvenster opent om tekst in te voeren die door de kubus zal worden gescrolld
- Commando: U kunt commando's handmatig invoeren met het Command TextField (kijk in de BTEvent()-methode van Cubo_Control.ino voor syntaxis)
- Snake: klassiek Snake Game (rood:appel, groen:slangkop, blauw:sneakstaart) (Besturing: 4 richtingsknoppen, omhoog en omlaag wordt geactiveerd door de telefoon vooruit (omhoog) of achteruit (omlaag) te draaien)
- Audio Visualizer: MSGEQ7 gebruikt om 6 audiobanden van AUX Jack te visualiseren (knop voor animatie 7)