Spisu treści:
- Krok 1: Zainspiruj się
- Krok 2: Projektowanie PCB
- Krok 3: PCB i komponenty
- Krok 4: Składanie kostki
- Krok 5: Kod Arduino
- Krok 6: APLIKACJA
- Krok 7: Baw się dobrze
Wideo: Sześciostronne kości PCB LED z WIFI i żyroskopem - PIKOCUBE: 7 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:28
Witajcie twórcy, to twórca moekoe!
Dziś pokażę wam, jak zbudować prawdziwą kostkę LED na bazie sześciu płytek PCB i łącznie 54 diod LED. Oprócz wewnętrznego czujnika żyroskopowego, który może wykrywać ruch i pozycję kostki, kostka jest wyposażona w ESP8285-01F, który jest najmniejszym MCU WiFi, jaki znam do tej pory. Wymiary MCU to zaledwie 10 na 12 milimetrów. Każda pojedyncza płytka drukowana ma wymiary 25 na 25 milimetrów i zawiera dziewięć pikseli mini LED WS2812-2020. Obok kontrolera znajduje się bateria Lipo o pojemności 150 mAh oraz układ ładowania wewnątrz kostki. Ale o tym później…
Jeśli szukasz jeszcze mniejszej kostki, to sprawdź pierwszą wersję, którą stworzyłem na mojej stronie. Jest odlany z żywicy epoksydowej!
Pikosześcian wersja 1
Krok 1: Zainspiruj się
Ciesz się filmem!
W tym filmie znajdziesz prawie wszystko do kostki. Aby uzyskać dodatkowe informacje, projekty, pliki PCB i kody, możesz zapoznać się z poniższymi krokami.
Krok 2: Projektowanie PCB
Jak zapewne wiesz, moim ulubionym oprogramowaniem do projektowania PCB jest Autodesk EAGLE. Dlatego użyłem go również w tym projekcie.
Zacząłem używać dwóch różnych projektów PCB, ponieważ nie chcę, aby kostka była większa niż to konieczne. Zewnętrzne kształty obu płytek to tylko kwadraty o wymiarach 25x25 milimetrów. Cechą szczególną tych płytek są trzy ażurowe otwory po każdej stronie, które rozprowadzają trzy sygnały +5V, GND i sygnał LED po całej kostce. Kolejność płytek drukowanych jest pokazana na jednym z powyższych schematów. Mam nadzieję, że możesz sobie wyobrazić, że kolorowe boki należą do siebie po złożeniu sześcianu. Strzałki oznaczają linię sygnału WS2812.
Do tego kroku dołączone są schematy, tablice i BOMy obu płytek drukowanych.
Krok 3: PCB i komponenty
Cała kostka składa się z dwóch różnych typów płytek PCB. Pierwsza zawiera obwód ładowania i gniazdo baterii Lipo, a druga zawiera MCU, czujnik i obwód blokujący zasilanie. Oczywiście płytki drukowane zostały wyposażone tylko raz. Cała reszta zawiera tylko dziewięć diod LED na zewnątrz kostki.
Cechą szczególną płytek drukowanych są ażurowe otwory z każdej strony. Z jednej strony te otwory/podkładki lutownicze służą do tego, aby kostka wyglądała jak kostka i trzymała wszystko na swoim miejscu, a z drugiej strony przekazuje zarówno zasilanie dla diod LED, jak i sygnał WS2812. To ostatnie jest bardziej skomplikowane, ponieważ musi być w określonej kolejności. Każda płytka ma dokładnie jeden sygnał wejściowy i tylko jeden sygnał wyjściowy i aby przerwać jeden sygnał w jednym punkcie, dodałem kilka zworek lutowniczych SMD.
Części potrzebne do płyty MCU:
- ESP8285-01F WiFi MCU
- ADXL345 żyroskop
- Kondensatory SMD 0603 (100n, 1µ, 10µ)
- Rezystory SMD 0603 (600, 1k, 5k, 10k, 47k, 100k, 190k, 1M)
- Dioda SMD SOD123 1N4148
- SMD LED 0805
- Mosfet SMD (IRLML2244, IRLML2502)
- SMD LDO MCP1700
- Przycisk SMD 90 stopni
- WS2812 2020 LED
Części potrzebne do płyty zasilającej:
- MCP73831 Układ scalony ładowarki
- Kondensatory SMD 0603 (100n, 1µ, 10µ)
- Rezystory SMD 0603 (1k, 5k, 10k)
- Dioda SMD MBR0530
- SMD LED 0805
- Mosfet SMD (IRLML2244)
- Złącze JST 1,25 mm 2P
- WS2812 2020 LED
Krok 4: Składanie kostki
Aby poznać wszystkie szczegóły montażu kostki, zapoznaj się z powyższym filmem.
Złożenie kostki nie jest najłatwiejsze, ale dla ułatwienia zaprojektowałem mały przyrząd do lutowania, w którym co najmniej trzy z sześciu płytek PCB można ze sobą zlutować. Robiąc to dwa razy, otrzymasz dwie krawędzie PCB, które trzeba połączyć, gdy wszystko działa. Tak, upewnij się, że wszystko się dzieje. Do tej pory nie testowałem, ale wylutowanie jednej płytki z kostki może być trudne.
Upewnij się, że zlutowałeś ze sobą trzy płytki PCB przed podłączeniem gniazda baterii. W przeciwnym razie musisz zmodyfikować plik.stl z małym otworem, w którym mieści się gniazdo.
Krok 5: Kod Arduino
Kostka uruchomi się z wyłączonym WiFi, aby zaoszczędzić trochę energii, co nazywa się uśpieniem modemu. Jeśli chodzi o arkusz danych ESP, MCU pobiera tylko 15 mA w trybie uśpienia modemu, podczas gdy w trybie normalnym potrzebuje około 70 mA. Dobry dla urządzeń zasilanych bateryjnie, takich jak ten. Aby to osiągnąć, będziesz potrzebować następującej części kodu przed wywołaniem funkcji konfiguracji.
nieważne preinit() {
ESP8266WiFiClass::preinitWiFiOff(); }
Po kolejnym naciśnięciu przycisku możesz obudzić Wi-Fi, wywołując standardową funkcję WiFi.begin() lub w tym przypadku Blynk.begin(), która jest wywołaniem konfiguracyjnym dla aplikacji, którą wybrałem do sterowania kostką.
Konwersja niektórych animacji do sześcianu to tylko trochę matematyki. Konwersja matrycy na piksel na określonej ścianie zewnętrznej odbywa się za pomocą tej prostej funkcji pomocniczej:
int get_pixel(int mat, int px, int py) {
//zaczynając od lewego górnego rogu return (px + py * 3) + mat * 9; }
Odnosząc się do przeglądu pikseli PCB w kroku 2, pierwsza matryca jest górna, druga jest skierowana do przodu, kolejne są wokół sześcianu idą we właściwym kierunku, a ostatnia matryca jest dolna.
Korzystając z załączonego kodu, musisz edytować poświadczenia Wi-Fi, aby pasowały do Twojej sieci. Aby prawidłowo korzystać z aplikacji Blynk, przed otwarciem szkicu umieść oba pliki (BLYNK.ino i drugi z Blynk) w tym samym folderze. Szkic zawiera dwie różne zakładki. Drugi plik, który właściwie nic nie robi, nie musi być wyposażony w kolejną zakładkę. Służy tylko do usypiania kostki, gdy przycisk nie był wciśnięty. W przeciwnym razie kostka nie zapadnie w stan uśpienia i będzie cały czas pobierała prąd.
Krok 6: APLIKACJA
Jak już powiedziano, kostka zaczyna się od jednego naciśnięcia przycisku. Ale w ogóle nie zacznie się od funkcji Wi-Fi. Kolejne pojedyncze naciśnięcie, gdy kostka jest już włączona, uruchomi Wi-Fi i połączy się z predefiniowaną siecią. Następnie możesz użyć BlynkAPP do sterowania kostką. Oczywiście możesz rozszerzyć funkcjonalność, możliwości jest mnóstwo…
Tutaj pokazano prosty przykładowy układ wewnątrz aplikacji Blynk. Składa się z dwóch SUWAKÓW (jasność i prędkość animacji), dwóch PRZYCISKÓW STYLOWANYCH (zmiana wzoru animacji i wyłączanie kostki), jednego KROKU do zmiany trybu kostki, diody LED pokazującej, która strona kostki jest do góry i wreszcie WSKAŹNIKA dla pokazujący stan baterii. Wszystkie te widżety wykorzystują wirtualne szpilki do komunikacji APP-MCU. Czymś do odczytania wirtualnych pinów przez MCU jest wywołanie tej funkcji, podczas gdy V1 odnosi się do używanego wirtualnego pinu, a param.asInt() przechowuje bieżącą wartość pinu. Funkcja ograniczenia służy tylko do ograniczania przychodzących wartości (przede wszystkim bezpieczeństwo:D).
BLYNK_WRITE(V1) {
//KrokH t = mili(); bieżący_tryb = ograniczenie(param.asInt(), 0, n_trybów - 1); }
Aby napisać wirtualny pin do aplikacji Blynk, możesz użyć następującej funkcji:
dane int = getBatteryVoltage();
Blynk.virtualWrite(V2, dane);
Więcej informacji na ten temat znajdziesz w szkicu Arduino!
Krok 7: Baw się dobrze
Projektowanie i budowanie sześcianu było dla mnie świetną zabawą! Mimo to miałem z tym pewne problemy. Pierwszym z nich jest to, że chciałem użyć obwodu konwertera doładowania wewnątrz pierwszej wersji kostki, aby zapewnić, że diody LED WS2812 będą działały przy 5V. Na szczęście będą one działały również przy napięciu Lipo około 3,7V, ponieważ przetwornica doładowania była zbyt głośna i zakłóca sygnał LED, co powoduje niezamierzone miganie kostki.
Drugim ogromnym problemem jest to, że chciałem skorzystać z możliwości bezprzewodowego ładowania, nawet dla drugiej wersji. Na szczęście dodałem kilka podkładek ładujących, które są dostępne z zewnątrz kostki, ponieważ moc indukcyjna zostaje zakłócona przez płaszczyzny GND PCB i komponentów. Dlatego muszę stworzyć wydrukowaną w 3D podstawkę ładującą, aby można było włożyć kostkę i docisnąć do niej niektóre styki.
Mam nadzieję, że podobało Ci się czytanie tej instrukcji i może znalazłeś sposób na zbudowanie własnej kostki!
Zapraszam do zaglądania na mój Instagram, stronę internetową i kanał Youtube, aby uzyskać więcej informacji o kostce i innych niesamowitych projektach!
Jeśli masz pytania lub czegoś brakuje, daj mi znać w komentarzach poniżej!
Miłego tworzenia!:)
I nagroda w konkursie PCB Design Challenge
Zalecana:
Tęczowe kości: 6 kroków (ze zdjęciami)
Tęczowa kostka: To tworzy pudełko do gier w kości z 5 kostką, wykonane z diod LED smd w 5 kolorach. Oprogramowanie sterujące nim pozwala na różne tryby gry z wieloma kośćmi. Jeden przełącznik główny umożliwia wybór gry i rzucanie kośćmi. Indywidualne przełączniki obok eac
Wałek do gry w kości Mason Jar: 5 kroków (ze zdjęciami)
Mason Jar Dice Roller: Oto świetny weekendowy projekt do wykonania, jeśli planujesz grać w jakiekolwiek gry planszowe/kostne. Do zbudowania projektu potrzebne będzie serwo z ciągłym obrotem, przycisk arcade oraz płytka arduino nano lub ESP8266, dodatkowo potrzebny będzie p
E-kości - Kości/Kości Arduino 1 do 6 + D4, D5, D8, D10, D12, D20, D24 i D30: 6 kroków (ze zdjęciami)
E-dice – kość/kostka Arduino od 1 do 6 kości + K4, D5, D8, D10, D12, D20, D24 i D30: Jest to prosty projekt arduino do stworzenia elektronicznej kostki. Można wybrać od 1 do 6 kostek lub 1 z 8 kostek specjalnych. Wyboru dokonuje się po prostu obracając enkoder obrotowy. Oto cechy: 1 kostka: pokazuje duże kropki 2-6 kostek: pokazuje kropki
Zabawa żyroskopem z pierścieniem Neopixel: 4 kroki (ze zdjęciami)
Zabawa z żyroskopem z pierścieniem Neopixel: W tym samouczku użyjemy żyroskopu MPU6050, pierścienia neopixel i arduino do zbudowania urządzenia, które zapali diody odpowiadające kątowi nachylenia. być montowane na płytce stykowej
Akcelerometr kontrolera Xbox 360 / modyfikacja sterowania żyroskopem: 7 kroków
Modyfikacja akcelerometru/żyroskopu kontrolera dla konsoli Xbox 360: Gram w Assetto Corsa na kontrolerze dla konsoli Xbox 360. Niestety sterowanie drążkiem analogowym jest bardzo nieporęczne i nie mam miejsca na ustawienie kół. Próbowałem wymyślić sposoby, w jakie mógłbym wbić lepszy mechanizm kierowniczy do t