Inhoudsopgave:

Zeszijdige PCB LED-dobbelstenen met WIFI en gyroscoop - PIKOCUBE - Ajarnpa
Zeszijdige PCB LED-dobbelstenen met WIFI en gyroscoop - PIKOCUBE - Ajarnpa

Video: Zeszijdige PCB LED-dobbelstenen met WIFI en gyroscoop - PIKOCUBE - Ajarnpa

Video: Zeszijdige PCB LED-dobbelstenen met WIFI en gyroscoop - PIKOCUBE - Ajarnpa
Video: Electronic RGB dice with bluetooth connectivity...GAME CHANGERS! | Electronics Maker 2024, Juli-
Anonim
Zeszijdige PCB LED-dobbelstenen met WIFI en gyroscoop - PIKOCUBE
Zeszijdige PCB LED-dobbelstenen met WIFI en gyroscoop - PIKOCUBE

Hallo makers, het is maker moekoe!

Vandaag wil ik je laten zien hoe je een echte LED-dobbelsteen kunt bouwen op basis van in totaal zes PCB's en 54 LED's. Naast de interne gyroscopische sensor die beweging en dobbelsteenpositie kan detecteren, wordt de kubus geleverd met een ESP8285-01F, de kleinste WiFi MCU die ik tot nu toe ken. De afmetingen van de MCU zijn slechts 10 bij 12 millimeter. Elke print heeft afmetingen van 25 bij 25 millimeter en bevat negen WS2812-2020 mini LED-pixels. Naast de controller bevindt zich een 150mAh Lipo-batterij en een oplaadcircuit in de dobbelsteen. Maar hierover later meer…

Als je op zoek bent naar een nog kleinere kubus, bekijk dan de eerste versie die ik op mijn website heb gemaakt. Het is gegoten in epoxyhars!

Pikocube versie 1

Stap 1: Laat je inspireren

Image
Image

Geniet van het filmpje!

In deze video vind je bijna alles voor de kubus. Voor wat meer informatie, ontwerp, PCB en codebestanden kunt u de volgende stappen bekijken.

Stap 2: PCB-ontwerp

PCB-ontwerp!
PCB-ontwerp!
PCB-ontwerp!
PCB-ontwerp!
PCB-ontwerp!
PCB-ontwerp!

Zoals je misschien weet, is mijn favoriete PCB-ontwerpsoftware Autodesk EAGLE. Daarom heb ik het ook voor dit project gebruikt.

Ik ben begonnen met het gebruik van twee verschillende PCB-ontwerpen, omdat ik de kubus niet groter wil maken dan nodig is. De buitenste vormen van beide PCB's zijn slechts vierkanten van 25x25 millimeter. Het bijzondere van deze PCB's zijn de drie gekartelde gaten aan elke kant die de drie signalen +5V, GND en het LED-signaal over de kubus verdelen. De volgorde van de PCB's is weergegeven in een van de bovenstaande schema's. Hoop dat je het je kunt voorstellen, de gekleurde zijkanten horen bij elkaar als de kubus eenmaal als een kubus is gevouwen. De pijlen markeren de WS2812-signaallijn.

De schema's, borden en de stuklijsten van beide PCB's zijn bij deze stap gevoegd.

Stap 3: PCB's en componenten

PCB's en componenten!
PCB's en componenten!
PCB's en componenten!
PCB's en componenten!
PCB's en componenten!
PCB's en componenten!

De hele kubus bestaat uit twee verschillende soorten PCB's. De eerste wordt geleverd met het oplaadcircuit en de Lipo-batterijaansluiting en de tweede bevat de MCU, de sensor en een stroomvergrendelingscircuit. Uiteraard hoeven de printplaten maar één keer te worden uitgerust. Al de rest bevat alleen de negen LED's aan de buitenkant van de kubus.

Het bijzondere aan de PCB's zijn de gekartelde gaten aan elke kant. Aan de ene kant worden deze gaten/soldeerpads gebruikt om de kubus eruit te laten zien als een kubus en alles op zijn plaats te houden en aan de andere kant zendt het zowel de stroom voor de LED's als het WS2812-signaal uit. Dat laatste is ingewikkelder omdat het in een bepaalde volgorde moet staan. Elke print heeft precies één ingangs- en één uitgangssignaal en om één signaal tegelijk te onderbreken, heb ik een paar SMD-soldeerpads toegevoegd.

Onderdelen die je nodig hebt voor het MCU-bord:

  • ESP8285-01F WiFi-MCU
  • ADXL345 Gyroscoop
  • SMD-condensatoren 0603 (100n, 1µ, 10µ)
  • SMD-weerstanden 0603 (600, 1k, 5k, 10k, 47k, 100k, 190k, 1M)
  • SMD-diode SOD123 1N4148
  • SMD-LED 0805
  • SMD-mosfet (IRLML2244, IRLML2502)
  • SMD LDO MCP1700
  • SMD 90deg-knop
  • WS2812 2020 LED

Onderdelen die je nodig hebt voor het powerboard:

  • MCP73831 Oplader IC
  • SMD-condensatoren 0603 (100n, 1µ, 10µ)
  • SMD-weerstanden 0603 (1k, 5k, 10k)
  • SMD-diode MBR0530
  • SMD-LED 0805
  • SMD-mosfet (IRLML2244)
  • JST 1,25 mm 2P-connector
  • WS2812 2020 LED

Stap 4: De kubus in elkaar zetten

De kubus in elkaar zetten!
De kubus in elkaar zetten!
De kubus in elkaar zetten!
De kubus in elkaar zetten!
De kubus in elkaar zetten!
De kubus in elkaar zetten!
De kubus in elkaar zetten!
De kubus in elkaar zetten!

Raadpleeg de bovenstaande video voor alle details over het samenstellen van de kubus.

Het in elkaar zetten van de kubus is niet het makkelijkste, maar om het wat makkelijker te maken heb ik een klein soldeerhulpje ontworpen waar tenminste drie van de zes printjes aan elkaar gesoldeerd kunnen worden. Als je het twee keer doet, krijg je twee PCB-randen die moeten worden aangesloten zodra alles werkt. Ja, zorg ervoor dat alles werkt. Ik heb het tot nu toe niet getest, maar het kan moeilijk zijn om één PCB uit de kubus te solderen.

Zorg ervoor dat u drie PCB's aan elkaar soldeert voordat u de batterijaansluiting bevestigt. Anders moet je het.stl-bestand aanpassen met een klein gaatje waar de krik in past.

Stap 5: Arduino-code

De kubus begint met een uitgeschakelde wifi om wat stroom te besparen, wat modemslaap wordt genoemd. Wat betreft het ESP-gegevensblad, de MCU verbruikt slechts 15 mA in de modem-slaapstand, terwijl hij in de normale modus ongeveer 70 mA nodig heeft. Goed voor apparaten op batterijen zoals deze. Om dit te bereiken, heeft u het volgende codegedeelte nodig voordat u de setup-functie oproept.

void preinit() {

ESP8266WiFiClass::preinitWiFiOff(); }

Met een andere druk op de knop kunt u de WiFi wekken door de standaard WiFi.begin()-functie aan te roepen of in dit geval de Blynk.begin() wat de setup-aanroep is voor de APP die ik heb gekozen om de kubus te besturen.

Het omzetten van sommige animaties naar de kubus is slechts een klein beetje wiskunde. De matrixconversie naar een pixel op een specifieke buitenmuur gebeurt met deze eenvoudige hulpfunctie:

int get_pixel (int mat, int px, int py) {

// beginnend in de linkerbovenhoek return (px + py * 3) + mat * 9; }

Verwijzend naar het PCB-pixeloverzicht in stap 2, is de eerste matrix de bovenste, de tweede is de naar voren gerichte matrix, de volgende zijn rond de kubus en gaan in de goede richting en de laatste matrix is de onderste.

Wanneer u de bijgevoegde code gebruikt, moet u de WiFi-inloggegevens aanpassen aan uw netwerk. Voor correct gebruik met de Blynk APP, zorg ervoor dat u beide bestanden (BLYNK.ino en de andere met Blynk erin) in dezelfde map plaatst voordat u de schets opent. De schets bevat twee verschillende tabbladen. Het andere bestand, dat eigenlijk niets doet, hoeft niet te worden uitgerust met een ander tabblad. Het is alleen bedoeld om de kubus te laten slapen als de knop niet is ingedrukt. Anders zal de kubus niet in slaap vallen en de hele tijd stroom trekken.

Stap 6: De APP

De app!
De app!
De app!
De app!

Zoals al verteld, begint de kubus met een enkele druk op de knop. Maar het begint helemaal niet met de wifi-functionaliteit. Nog een keer drukken terwijl de kubus al is ingeschakeld, start WiFi en maakt verbinding met een vooraf gedefinieerd netwerk. Daarna kun je de BlynkAPP gebruiken om de kubus te besturen. Natuurlijk kun je de functionaliteit uitbreiden, er zijn genoeg mogelijkheden voor dit ding…

Een eenvoudige voorbeeldlay-out binnen de Blynk APP wordt hier getoond. Het bestaat uit twee SLIDER (helderheid en animatiesnelheid), twee STYLED BUTTON (animatiepatroon wijzigen en de kubus uitschakelen), een STEP voor het wijzigen van de kubusmodus, een LED om te laten zien welke kant van de dobbelsteen omhoog is en last but not least een GAUGE voor de batterijstatus weergeven. Al deze widgets maken gebruik van de virtuele pinnen voor APP-MCU-communicatie. Iets om de virtuele pinnen via de MCU te lezen, is om deze functie aan te roepen, terwijl V1 verwijst naar de gebruikte virtuele pin en param.asInt() houdt de huidige waarde van de pin vast. De beperkingsfunctie is alleen voor het beperken van de binnenkomende waarden (safety first:D).

BLYNK_WRITE(V1) {

//StapH t = millis(); current_mode = constrain(param.asInt(), 0, n_modes - 1); }

Om een virtuele pin naar de Blynk APP te schrijven, kunt u de volgende functie gebruiken:

int data = getBatteryVoltage();

Blynk.virtualWrite (V2, gegevens);

Je krijgt hier meer informatie over in de Arduino-schets!

Stap 7: Veel plezier

Veel plezier!
Veel plezier!

Het ontwerpen en bouwen van de kubus was erg leuk voor mij! Toch heb ik er wat problemen mee gehad. De eerste is dat ik een boost-convertercircuit in de eerste versie van de kubus wilde gebruiken om ervoor te zorgen dat de WS2812-LED's op 5V werken. Gelukkig werken ze ook op een Lipo-spanning van ongeveer 3, 7V, omdat de boost-converter veel te veel ruis maakte en het LED-signaal verstoort, wat resulteert in een onbedoelde knipperende kubus.

Het tweede grote probleem is dat ik de mogelijkheid voor draadloos opladen wilde gebruiken, zelfs voor de tweede versie. Gelukkig heb ik een aantal oplaadpads toegevoegd die toegankelijk zijn vanaf de buitenkant van de kubus omdat de inductieve stroom wordt verstoord door de GND-vlakken van de PCB en de componenten. Daarom moet ik een 3D-geprinte oplaadstandaard maken, zodat de kubus kan worden geplaatst en sommige contacten tegen de kubus worden gedrukt.

Ik hoop dat je het leuk vond om deze instructable te lezen en misschien een manier hebt gevonden om je eigen kubus te bouwen!

Kijk gerust op mijn Instagram, Website en Youtube kanaal voor meer informatie over de kubus en andere geweldige projecten!

Als je vragen hebt of als er iets ontbreekt, laat het me dan weten in de reacties hieronder!

Veel plezier met maken!:)

PCB-ontwerpuitdaging
PCB-ontwerpuitdaging
PCB-ontwerpuitdaging
PCB-ontwerpuitdaging

Eerste prijs in de PCB Design Challenge

Aanbevolen: