Obsah:
- Krok 1: Materiály
- Krok 2: Tlač
- Krok 3: Okruh
- Krok 4: Spájkovanie
- Krok 5: Kód
- Krok 6: Zostavenie
- Krok 7: Hotovo
Video: ColorCube: 7 krokov (s obrázkami)
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:57
Túto lampu som vyrobil pre vnučku, keď sa učila farby. Inšpiroval som sa projektom MagicCube, ale nakoniec som všetky časti vytvoril od začiatku. Je ľahké ho vytlačiť a ľahko zostaviť a získate znalosti o tom, ako funguje gyro modul.
Krok 1: Materiály
Arduino časť:
- Arduino Nano (lepšie bez spájkovacích kolíkov)
- Trojosový gyro modul MPU-6050
- Modul nabíjačky mikro USB TP4056
- Modul posilnenia zosilňovača MT3608
- Batéria LiPo 902936 900mA alebo 503035 3,7V 500mA. Môžete použiť akúkoľvek batériu LiPo s napätím 3, 7 V a veľkosťou menšou ako 35 x 30 x 15 mm, ale batériu musíte zaistiť v otvore.
- Samosvorné tlačidlo PS-22F28 alebo samosvorné tlačidlo PS-22F27 sa perfektne hodia k tlačenej časti.
- LED RGB WS2812B krúžok - 16 LED s vonkajším priemerom 68 mm - môžete použiť ľubovoľný krúžok aj s rôznym počtom diód LED (v kóde musíte zmeniť jednu konštantu - #define NUMPIXELS 16) s maximálnym priemerom 76 mm (môžete použiť aj Neopixelovú tyčinku s 8x LED alebo akýkoľvek LED pás s WS2812b).
Príklady prsteňov: 8 LED 32mm12 LED 38mm12 LED 50mm16 LED 60mm24 LED 66 mm16 LED 44mm
Na montáž môžete použiť ktorýkoľvek z otvorov vytlačených v strednej časti. Pokrývajú takmer akúkoľvek možnosť (nie je potrebné, aby bol krúžok 100% vycentrovaný).
Drôty
Kocka
- Vlákno PLA pre hornú časť kocky - použite bielu farbu, pretože priehľadná nie je dobrá (LED diódy sú viditeľné a farba nie je hladká), moje odporúčanie je Prusament Vanilla White
- Vlákno PLA pre spodné, stredné a tlačidlové časti - použite tmavú farbu, pretože niektoré moduly Arduino majú v hornej časti svetlá a nehodí sa pre farby kockových LED diód, moje odporúčanie je Prusament Galaxy Black
- 1x samorezná skrutka M3x5 - dĺžka (10 mm) a tvar hlavy nie sú kritické - skrutka nie je viditeľná
- 2x samorezná skrutka M2x3 - dĺžka (5 mm) a tvar hlavy nie sú kritické - skrutky nie sú viditeľné
Nástroje
- 3D tlačiareň
- Viacmetrový
- Spájkovačka
- Skrutkovač
Krok 2: Tlač
Všetky časti ColorCube boli navrhnuté v programe Autodesk Fusion360. f3d súbor je priložený.
Zariadenie ColorCube bolo vytlačené na tlačiarni Prusa i3 MK3S so všetkými predvolenými nastaveniami a neočakávam žiadne potrebné zmeny na rôznych tlačiarňach. Použite svoje obľúbené nastavenia pre PLA (ak sú vytlačené na PLA, nie je problém použiť PETG alebo ASA).
Parametre 3D tlače:
- Vrstva 0,2 mm (nastavenia KVALITY 0,2 mm na PrusaSlicer)
- Nastavenia vlákna Prusament PLA na zariadení PrusaSlicer
- Výplň 15%
- Žiadna podpora
- Nie Brim
Krok 3: Okruh
Krok 4: Spájkovanie
Varovanie: Použitím multimetra sa uistite, že zosilňovač DC-DC MT3608 má výstup 5V. Najprv - pred meraním - otočte obrubu v smere hodinových ručičiek až na koniec (kliknutie). Keď na vstup pripojíte napätie (3, 7 V), musí mať približne rovnakú hodnotu. Otočte proti smeru hodinových ručičiek (budete potrebovať 10-20 úplných otáčok) a zrazu sa zvýši napätie. Jemne nastavte 5 V na výstupe. (foto)
Pozrite sa na vytlačenú spodnú časť kocky. Každý komponent má svoju vlastnú dieru. Definuje, ako dlhé drôty medzi jednotlivými komponentmi budete potrebovať (nepoužívajte príliš dlhé drôty, inak získate drôtenú džungľu). (foto)
Spájkujte iba vodiče medzi Arduino Nano a LED krúžkom (3 vodiče: červený 5V - 5V, čierny GND - GND, modrý D6 - DI). Spustite test funkčnosti krúžku LED od ďalšej kapitoly. (foto)
Ak je všetko v poriadku, pokračujte pridaním gyroskopu MPU6050 (5 vodičov: červený 5V - VCC, čierny GND - GND, modrý A4 - SDA, zelený A5 - SCL, žltý D2 - INT). Nahrajte kód ColorCube.ino a vyskúšajte (ostatné súčasti sú určené len na batériu a nabíjanie). (foto)
Ak je všetko v poriadku, pridajte ostatné komponenty. Existujú iba červené (+) a čierne (-) vodiče. Vyberte pravé kolíky na samosvornom tlačidle (nie sú pripojené, ak nie sú stlačené). Otestujte funkčnosť batérie a nabíjania batérie. (foto)
Červené LED svetlo na TP4056 pri nabíjaní a modré LED svetlo pri plnom nabití. Otvor nad TP4056 v strednej tlačenej časti prechádza LED svetlom do hornej časti ColorCube a môžete rozpoznať fázu nabíjania. (foto)
Krok 5: Kód
Najprv si musíte stiahnuť potrebné knižnice.
Podrobný návod pre knižnicu Adafruit Neopixel:
Test funkčnosti LED krúžku: Môžete otestovať svoj obvod podľa príkladu, ktorý je súčasťou knižnice. Otvorte súbor zo súboru/Príklady/Adafruit NeoPixels/jednoducho a nahrajte (nezabudnite tento riadok správne nastaviť podľa počtu pixelov, ktoré používate: #define NUMPIXELS 16).
I2Cdev a MPU6050: Stiahnite a rozbaľte súbor i2cdevlib-master.zip z https://github.com/jrowberg/i2cdevlib. Skopírujte formulár rozbalený priečinok i2cdevlib-master/Arduino dva podpriečinky: I2Cdev a MPU6050. Oba sa skopírujú do priečinka knižnice Arduino IDE (dokumenty/Arduino/knižnice, ak je predvolená inštalácia).
Po skopírovaní knižníc nezabudnite reštartovať Arduino IDE.
#include #ifdef _AVR_ #include // Vyžadované pre 16 MHz Adafruit Trinket #endif #include "Wire.h" include "I2Cdev.h" #include "MPU6050_6Axis_MotionApps20.h" MPU6050 mpu; #define INTERRUPT_PIN 2 // použite pin 2 na Arduino Uno a väčšine dosiek #define PIN 6 #define NUMPIXELS 16 // Nastavte správny počet LED diód Adafruit_NeoPixel pixelov (NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); uint32_t activeColor, oldActiveColor = 0; bool dmpReady = false; uint8_t mpuIntStatus; uint8_t devStatus; uint16_t packetSize; uint16_t fifoCount; uint8_t fifoBuffer [64]; Quaternion q; Vektorová plaváková gravitácia; float rotace [3]; int x, y, z; volatile bool mpuInterrupt = false; neplatné dmpDataReady () {mpuInterrupt = true; } neplatné nastavenie () {Serial.begin (115200); pixely.begin (); pixely.clear (); pixely.setBrightness (128); #ak je definovaný (_ AVR_ATtiny85_) && (F_CPU == 16000000) clock_prescale_set (clock_div_1); #endif // pripojenie k zbernici I2C (knižnica I2Cdev to nerobí automaticky) #if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE Wire.begin (); Wire.setClock (400000); // 400kHz hodiny I2C. Komentujte tento riadok, ak máte problémy so kompiláciou #elif I2CDEV_IMPLEMENTATION == I2CDEV_BUILTIN_FASTWIRE Fastwire:: setup (400, true); #endif while (! Sériové); Serial.println (F ("Inicializácia zariadení I2C …")); mpu.initialize (); pinMode (INTERRUPT_PIN, INPUT); // overenie pripojenia Serial.println (F ("Testovanie pripojení zariadenia …")); Serial.println (mpu.testConnection ()? F ("Pripojenie MPU6050 bolo úspešné"): F ("Pripojenie MPU6050 zlyhalo")); // počkajte, kým bude pripravený // Serial.println (F ("\ nPošlite ľubovoľný znak na spustenie programovania DMP a ukážky:")); // while (Serial.available () && Serial.read ()); // prázdny buffer // while (! Serial.available ()); // počkajte na údaje // while (Serial.available () && Serial.read ()); // znova vyprázdniť vyrovnávaciu pamäť // načítať a konfigurovať DMP Serial.println (F ("Inicializácia DMP …")); devStatus = mpu.dmpInitialize (); // tu zadajte svoje vlastné gyroskopy, zmenšené na minimálnu citlivosť mpu.setXGyroOffset (0); mpu.setYGyroOffset (0); mpu.setZGyroOffset (0); mpu.setZAccelOffset (1688); // 1688 výrobný štandard pre môj testovací čip // uistite sa, že funguje (ak je, vráti 0), ak (devStatus == 0) {// Čas kalibrácie: vygenerujte offsety a kalibrujte náš MPU6050 mpu. CalibrateAccel (6); mpu. CalibrateGyro (6); mpu. PrintActiveOffsets (); // zapnite DMP, keď je pripravený Serial.println (F ("Povolenie DMP …")); mpu.setDMPEnabled (true); // povoliť detekciu prerušenia Arduino Serial.print (F ("Povolenie detekcie prerušenia (externé prerušenie Arduino")); Serial.print (digitalPinToInterrupt (INTERRUPT_PIN)); Serial.println (F (") …")); attachInterrupt (digitalPinToInterrupt (INTERRUPT_PIN), dmpDataReady, RISING); mpuIntStatus = mpu.getIntStatus (); // nastavte náš príznak DMP Ready, aby funkcia main loop () vedela, že je v poriadku ho použiť Serial.println (F ("DMP pripravené! Čakanie na prvé prerušenie …")); dmpReady = true; // získať očakávanú veľkosť paketu DMP pre neskoršie porovnanie packetSize = mpu.dmpGetFIFOPacketSize (); } else {// CHYBA! // 1 = úvodné načítanie pamäte zlyhalo // 2 = Aktualizácie konfigurácie DMP zlyhali // (ak sa má prerušiť, zvyčajne bude kód 1) Serial.print (F ("Inicializácia DMP zlyhala (kód")); Sériové. print (devStatus); Serial.println (F (")")); }} void loop () {if (! dmpReady) return; if (mpu.dmpGetCurrentFIFOPacket (fifoBuffer)) {// Získanie najnovšieho paketu // zobrazenie Eulerových uhlov v stupňoch mpu.dmpGetQuaternion (& q, fifoBuffer); mpu.dmpGetGravity (& gravitácia, & q); mpu.dmpGetYawPitchRoll (rotácia, & q, & gravitácia); } Serial.print ("X"); Serial.print (rotace [2] * 180/M_PI); Serial.print ("\ t Y"); Serial.print (rotace [1] * 180/M_PI); Serial.print ("\ t Z"); Serial.println (rotace [0] * 180/M_PI); x = rotácia [2] * 180/M_PI; y = rotácia [1] * 180/M_PI; z = rotácia [0] * 180/M_PI; ak (abs (x) <45 && abs (y) 45 && abs (x) <135 && (abs (y) 135)) {activeColor = pixely. Color (255, 0, 0); // Červená, keď sa obrátite na stranu} else if (x <-45 && abs (x) <135 && (abs (y) 135)) {activeColor = pixely. Color (0, 255, 0); // Zelené pri obrátení na druhú stranu} else if (y> 45 && abs (y) <135 && (abs (x) 135)) {activeColor = pixely. Color (255, 255, 0); // Žlté, keď sa obrátite na tretiu stranu} else if (y <-45 && abs (y) <135 && (abs (x) 135)) {activeColor = pixely. Color (0, 0, 255); // Modrá, keď sa obrátite na štvrtú stranu} else if (abs (y)> 135 && abs (x)> 135) {activeColor = pixely. Color (0, 0, 0); // Čierna, keď je hore nohami} if (activeColor! = OldActiveColor) {pixely.clear (); pixely.fill (activeColor); pixely.show (); oldActiveColor = activeColor; }}
Nakoniec môžete otvoriť a nahrať súbor ColorCube.ino. Položte ColorCube na rovný povrch a zapnite ho. Neposúvajte ho, kým po kalibrácii (niekoľko sekúnd) nezačne svietiť bielou farbou. Potom môžete ColorCube položiť na stranu a farba sa zmení - každá strana má svoju vlastnú farbu - červenú, zelenú, modrú, žltú. Zariadenie ColorCube zhasne, keď je obrátené naopak.
Krok 6: Zostavenie
Pri montáži buďte opatrní. Drôty a všetky diely nemajú radi drsné správanie.
Tlačená 3D tlačená časť - jemne priložte gombík k otvoru v spodnej tlačenej časti (ako je znázornené na obrázku), musí hladko ísť dovnútra a von, ak nie, pomocou skalpela alebo ostrého noža alebo brúsneho papiera odstráňte všetok prebytočný materiál (väčšinou vnútri v hornej časti kruhového otvoru v spodnej časti). (foto)
Vložte MPU-6050, Arduino Nano, TP4056 a MT3608 do ich otvorov. Krabica má výčnelky, pod ktoré vložíte MPU-6050 a MT3608. Vložte konektory USB Arduino Nano a TP4056 do ich otvorov v bočných stenách škatule. (foto)
Na zaistenie komponentov použite 3D tlačený zámok (uistite sa, že všetky komponenty sú tesne umiestnené na spodnej časti). Je to dôležité, pretože niekto sa určite pokúsi hrať s vašou ColorCube ako s kockami. (foto)
Vložte a zaistite batériu do otvoru, ak pevne nedrží.
Vložte samosvorné tlačidlo do pripraveného otvoru v spodnej časti. Samosvorné tlačidlo musí byť v polohe ON (krátke). Jemne stlačte tlačidlo nadol. Otestujte funkčnosť pomocou 3D tlačeného tlačidla. (fotografie)
Pomocou dvoch skrutiek M2 pripevnite krúžok LED k strednej tlačenej časti. Je dobré použiť orientáciu prstenca, kde sú kontakty drôtu v zaoblenom otvore strednej tlačenej časti. (fotografie)
Voliteľné: Sem tam použite kvapku horúceho lepidla - pripojenie drôtov na krúžok, pri príliš dlhých vodičoch, ak nie je niečo dostatočne tesné atď. Vďaka tomu môže byť váš ColorCube odolnejší.
Dráty vo vnútri ColorCube umiestnite tak, aby neboli tlačené. Položte strednú časť na spodnú časť. Na upevnenie použite skrutku M3. (foto)
Nakoniec jemne zatlačte hornú tlačenú časť na dolnú. (foto)
Krok 7: Hotovo
Gratulujem Bavte sa.
Odporúča:
Ako: Inštalácia Raspberry PI 4 bezhlavého (VNC) s obrazovým procesorom Rpi a obrázkami: 7 krokov (s obrázkami)
Ako na to: Inštalácia Raspberry PI 4 bez hlavy (VNC) s obrázkom Rpi a obrázkami: Plánujem použiť tento nástroj Rapsberry PI v mnohých zábavných projektoch späť na mojom blogu. Neváhajte sa na to pozrieť. Chcel som sa vrátiť k používaniu svojho Raspberry PI, ale na novom mieste som nemal klávesnicu ani myš. Chvíľu to bolo, odkedy som nastavil Raspberry
Počítadlo krokov - mikro: bit: 12 krokov (s obrázkami)
Počítadlo krokov - mikro: bit: Tento projekt bude počítadlom krokov. Na meranie našich krokov použijeme senzor akcelerometra, ktorý je vstavaný v Micro: Bit. Zakaždým, keď sa Micro: Bit zatrasie, pridáme k počtu 2 a zobrazíme ho na obrazovke
Bolt - Nočné hodiny pre bezdrôtové nabíjanie DIY (6 krokov): 6 krokov (s obrázkami)
Bolt - Nočné hodiny bezdrôtového nabíjania DIY (6 krokov): Indukčné nabíjanie (tiež známe ako bezdrôtové nabíjanie alebo bezdrôtové nabíjanie) je typ bezdrôtového prenosu energie. Na prenos elektriny do prenosných zariadení používa elektromagnetickú indukciu. Najbežnejšou aplikáciou je bezdrôtové nabíjanie Qi
Ako rozobrať počítač pomocou jednoduchých krokov a fotografií: 13 krokov (s obrázkami)
Ako rozobrať počítač jednoduchými krokmi a obrázkami: Toto je návod, ako rozobrať počítač. Väčšina základných komponentov je modulárna a dá sa ľahko odstrániť. Je však dôležité, aby ste o tom boli organizovaní. Pomôže to zabrániť strate súčiastok a tiež pri opätovnej montáži
Prenosná reklama sa stane lacným už za 10 krokov !!: 13 krokov (s obrázkami)
Prenosná inzercia na znamení lacné za pouhých 10 krokov !!: Vyrobte si svoj vlastný, lacný a prenosný reklamný nápis. S týmto znakom môžete zobraziť svoju správu alebo logo kdekoľvek komukoľvek z celého mesta. Tento pokyn je reakciou na/zlepšenie/zmenu: https://www.instructables.com/id/Low-Cost-Illuminated-