Talaan ng mga Nilalaman:
- Hakbang 1: Mga Kagamitan
- Hakbang 2: Pagpi-print
- Hakbang 3: Circuit
- Hakbang 4: Paghihinang
- Hakbang 5: Code
- Hakbang 6: Pagtitipon
- Hakbang 7: Tapos Na
Video: ColorCube: 7 Hakbang (na may Mga Larawan)
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:11
Ginawa ko ang lampara na ito para sa aking apo kapag natututo siya ng mga kulay. Naging inspirasyon ako sa proyekto ng MagicCube ngunit sa wakas nilikha ang lahat ng mga bahagi mula sa simula. Madaling mai-print at madaling mag-ipon at makakakuha ka ng kaalaman kung paano gumagana ang gyro module.
Hakbang 1: Mga Kagamitan
Bahagi ng Arduino:
- Arduino Nano (mas mabuti nang walang solder header pin)
- MPU-6050 3-Axis Gyro Module
- TP4056 Micro USB Battery Charger Module
- MT3608 Hakbang Up Power Booster Module
- LiPo Battery 902936 900mA o 503035 3.7V 500mA. Maaari mong gamitin ang anumang baterya ng LiPo na may 3, 7V at laki na mas mababa sa 35x30x15mm ngunit kailangan mong i-secure ang baterya sa butas.
- PS-22F28 Self-locking button o PS-22F27 Self-locking button na parehong magkakasya sa naka-print na bahagi nang perpekto.
- LED RGB WS2812B Ring - 16 LED 68mm panlabas na lapad - maaari mong gamitin ang anumang singsing kahit na may iba't ibang bilang ng mga LED (kailangang baguhin ang isang pare-pareho sa code - # tukuyin ang NUMPIXELS 16) na may pinakamataas na diameter ng 76mm (maaari mo ring gamitin ang isang Neopixel Stick na may 8x LED o anumang LED strip na may WS2812b).
Mga halimbawa ng singsing: 8 LED 32mm12 LED 38mm12 LED 50mm16 LED 60mm24 LED 66 mm16 LED 44mm
Para sa montage maaari mong gamitin ang anuman sa mga butas na naka-print sa gitnang bahagi. Saklaw nila ang halos anumang pagpipilian (hindi kinakailangan na magkaroon ng singsing na 100% na nakasentro).
Mga wire
Cube
- PLA Filament para sa tuktok na bahagi ng kubo - gumamit ng puting kulay dahil hindi maganda ang transparent (nakikita ang mga LED at hindi makinis ang kulay), ang aking rekomendasyon ay Prusament Vanilla White
- Ang PLA Filament para sa mga bahagi sa ibaba, gitna at pindutan - gumamit ng madilim na kulay dahil ang ilang mga module ng Arduino ay may ilaw sa itaas at hindi ito akma sa mga kulay ng mga cube LEDs, ang aking rekomendasyon ay Prusament Galaxy Black
- 1x M3x5 Self Tapping Screw - Ang haba (10mm) at ang hugis ng ulo ay hindi kritikal - ang tornilyo ay hindi nakikita
- 2x M2x3 Self Tapping Screw - Ang haba (5mm) at ang hugis ng ulo ay hindi kritikal - ang mga turnilyo ay hindi nakikita
Mga kasangkapan
- 3d printer
- Multi-meter
- Panghinang
- Screwdriver
Hakbang 2: Pagpi-print
Ang lahat ng mga bahagi ng ColorCube ay idinisenyo sa Autodesk Fusion360. nakalakip ang f3d file.
Ang ColorCube ay naka-print sa Prusa i3 MK3S printer na may lahat ng mga default na setting at hindi ko inaasahan ang anumang kinakailangang mga pagbabago sa iba't ibang mga printer. Gamitin ang iyong mga paboritong setting para sa PLA (kung naka-print sa PLA, walang problema na gumamit ng PETG o ASA).
Mga parameter ng pag-print ng 3d:
- Layer 0.2 mm (mga setting ng QUALITY na 0.2mm sa PrusaSlicer)
- Mga setting ng Prusament PLA Filament sa PrusaSlicer
- Maglagay ng 15%
- Walang supporta
- Walang Brim
Hakbang 3: Circuit
Hakbang 4: Paghihinang
Babala: Gumamit ng isang multi-meter upang matiyak na ang DC-DC booster MT3608 ay naglalabas ng 5V. Una - bago sukatin - i-turn ang trim na pakaliwa sa dulo (pag-click). Kapag kumonekta boltahe (3, 7V) upang mag-input kailangang magbigay tungkol sa parehong halaga. Lumiko sa counter-pakanan (kakailanganin mo ng 10-20 buong liko) at biglang pagtaas ng boltahe. Itakda nang mahina ang 5V sa output. (larawan)
Tingnan ang naka-print sa ilalim na bahagi ng kubo. Ang bawat sangkap ay may kanya-kanyang butas. Tinutukoy nito kung gaano katagal ang mga wire sa pagitan ng bawat sangkap na kakailanganin mo (huwag gumamit ng mga sobrang haba na mga wire kung hindi man ay nakakakuha ka ng jungle jungle). (larawan)
Ang mga wire ng panghinang sa pagitan ng Arduino Nano at LED ring lamang (3 wires: pulang 5V - 5V, itim na GND - GND, asul na D6 - DI). Patakbuhin ang pagsubok sa pagpapaandar ng singsing na LED mula sa susunod na kabanata. (larawan)
Kung ang lahat ay OK magpatuloy sa pagdaragdag ng Gyro MPU6050 (5 wires: red 5V - VCC, black GND - GND, asul A4 - SDA, berde A5 - SCL, dilaw D2 - INT). Mag-upload ng ColorCube.ino code at pagsubok (ang iba pang mga bahagi ay para lamang sa baterya at singilin). (larawan)
Kung ang lahat ng OK idagdag ang natitirang mga bahagi. Mayroon lamang mga pula (+) at itim (-) na mga wire. Piliin ang mga tamang pin sa self-locking button (hindi nakakonekta kapag hindi pinindot). Subukan ang pagpapaandar sa pagsingil ng baterya at baterya. (larawan)
Mga pulang ilaw na LED sa TP4056 kapag nagcha-charge at asul na mga ilaw ng LED kapag ganap na nasingil. Ang butas sa itaas ng TP4056 sa gitnang naka-print na bahagi ay pumasa sa LED light sa tuktok na bahagi ng ColorCube at makikilala mo ang yugto ng pagsingil. (larawan)
Hakbang 5: Code
Una kailangan mong mag-download ng mga kinakailangang aklatan.
Mayroong mga detalyadong tagubilin para sa Adafruit Neopixel library:
Pagsubok sa pag-andar ng LED ring: Maaari mong subukan ang iyong circuit sa pamamagitan ng halimbawang kasama sa library. Buksan ang file mula sa File / Mga Halimbawa / Adafruit NeoPixels / simple at i-upload (huwag kalimutang i-set up nang tama ang linyang ito sa pamamagitan ng bilang ng mga pixel na iyong ginagamit: # tukuyin ang NUMPIXELS 16).
I2Cdev at MPU6050: Mag-download at i-unzip ang i2cdevlib-master.zip file mula sa https://github.com/jrowberg/i2cdevlib. Kopyahin ang form na naka-zip zip sa i2cdevlib-master / Arduino dalawang mga subfolder: I2Cdev at MPU6050. Parehong kopya sa folder ng library ng Arduino IDE (Mga Dokumento / Arduino / aklatan kung default na pag-install).
Huwag kalimutang i-restart ang Arduino IDE pagkatapos makopya ang mga aklatan.
#include #ifdef _AVR_ #include // Kinakailangan para sa 16 MHz Adafruit Trinket #endif #include "Wire.h" isama ang "I2Cdev.h" #include "MPU6050_6Axis_MotionApps20.h" MPU6050 mpu; #define INTERRUPT_PIN 2 // use pin 2 on Arduino Uno & most boards #define PIN 6 #define NUMPIXELS 16 // Itakda ang tamang bilang ng mga LEDs Adafruit_NeoPixel pixel (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; VectorFloat gravity; float rotace [3]; int x, y, z; pabagu-bago ng isip bool mpuInterrupt = false; void dmpDataReady () {mpuInterrupt = true; } void setup () {Serial.begin (115200); pix.begin (); pix.clear (); pix.setBightness (128); # Kung tinukoy (_ AVR_ATtiny85_) && (F_CPU == 16000000) orasan_prescale_set (orasan_div_1); #endif // sumali sa I2C bus (hindi awtomatiko itong ginagawa ng I2Cdev library) #kung I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE Wire.begin (); Wire.setClock (400000); // 400kHz I2C na orasan. Komento sa linyang ito kung nagkakaroon ng mga paghihirap sa pagtitipon #elif I2CDEV_IMPLEMENTATION == I2CDEV_BUILTIN_FASTWIRE Fastwire:: setup (400, true); #endif habang (! Serial); Serial.println (F ("Initializing I2C device …")); mpu.initialize (); pinMode (INTERRUPT_PIN, INPUT); // verify koneksyon Serial.println (F ("Mga koneksyon sa aparato sa pagsubok …")); Serial.println (mpu.testConnection ()? F ("Matagumpay ang koneksyon sa MPU6050"): F ("Nabigo ang koneksyon sa MPU6050")); // wait for ready // Serial.println (F ("\ n Magpadala ng anumang character upang simulan ang DMP programming at demo:")); // habang (Serial.available () && Serial.read ()); // walang laman na buffer // habang (! Serial.available ()); // wait for data // habang (Serial.available () && Serial.read ()); // walang laman na buffer muli // i-load at i-configure ang DMP Serial.println (F ("Initializing DMP …")); devStatus = mpu.dmpInitialize (); // supply your own gyro offset here, scaled for min sensitivity mpu.setXGyroOffset (0); mpu.setYGyroOffset (0); mpu.setZGyroOffset (0); mpu.setZAccelOffset (1688); // 1688 factory default for my test chip // siguraduhing gumana ito (nagbabalik ng 0 kung gayon) kung (devStatus == 0) {// Calibration Time: bumuo ng mga offset at i-calibrate ang aming MPU6050 mpu. CalibrateAccel (6); mpu. CalibrateGyro (6); mpu. PrintActiveOffsets (); // turn on the DMP, ngayong handa na ito Serial.println (F ("Enabling DMP …")); mpu.setDMPEn pinagana (totoo); // paganahin ang Arduino makagambala ng pagtuklas ng Serial.print (F ("Pagpapagana ng pagtuklas ng nakakagambala (Arduino panlabas na makagambala")); Serial.print (digitalPinToInterrupt (INTERRUPT_PIN)); Serial.println (F (")…")); attachInterrupt (digitalPinToInterrupt (INTERRUPT_PIN), dmpDataReady, RISING); mpuIntStatus = mpu.getIntStatus (); // itakda ang aming DMP Ready flag kaya alam ng pangunahing pag-andar ng loop na) okay na gamitin ito Serial.println (F ("Handa na ang DMP! Naghihintay para sa unang makagambala …")); dmpReady = totoo; // makakuha ng inaasahang laki ng packet ng DMP para sa paglaon sa paghahambing packetSize = mpu.dmpGetFIFOPacketSize (); } iba pa {// ERROR! // 1 = Nabigo ang paunang pag-load ng memorya // 2 = Nabigo ang mga pag-update ng pagsasaayos ng DMP // (kung masisira ito, karaniwang ang code ay magiging 1) Serial.print (F ("Nabigo ang Initialization ng DMP (code")); Serial. i-print (devStatus); Serial.println (F (")")); }} void loop () {kung (! dmpReady) bumalik; kung (mpu.dmpGetCurrentFIFOPacket (fifoBuffer)) {// Kunin ang Pinakabagong packet // display Euler angles sa degree mpu.dmpGetQuaternion (& q, fifoBuffer); mpu.dmpGetGravity (& gravity, & q); mpu.dmpGetYawPitchRoll (rotace, & q, & gravity); } 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 = rotace [2] * 180 / M_PI; y = rotace [1] * 180 / M_PI; z = rotace [0] * 180 / M_PI; kung (abs (x) <45 && abs (y) 45 && abs (x) <135 && (abs (y) 135)) {activeColor = pixel. Color (255, 0, 0); // Red kapag lumiko sa gilid} iba pa kung (x <-45 && abs (x) <135 && (abs (y) 135)) {activeColor = pixel. Color (0, 255, 0); // Green kapag lumiko sa pangalawang bahagi} iba pa kung (y> 45 && abs (y) <135 && (abs (x) 135)) {activeColor = pixel. Color (255, 255, 0); // Dilaw kapag lumiko sa ikatlong panig} iba pa kung (y <-45 && abs (y) <135 && (abs (x) 135)) {activeColor = pixel. Color (0, 0, 255); // Blue kapag lumiko sa ika-apat na bahagi} iba pa kung (abs (y)> 135 && abs (x)> 135) {activeColor = pixel. Color (0, 0, 0); // Itim kapag nakabaligtad} kung (activeColor! = OldActiveColor) {pix.clear (); pix.fill (activeColor); pix.show (); oldActiveColor = activeColor; }}
Sa wakas maaari mong buksan at i-upload ang ColorCube.ino file. Ilagay ang ColorCube ng patag na ibabaw at buksan ito. Huwag ilipat ito hanggang magsimula itong magaan na may puting kulay pagkatapos ng pagkakalibrate (ilang segundo). Susunod maaari mong ilagay ang ColorCube sa gilid at magbabago ang kulay - bawat panig ay may sariling kulay - pula, berde, asul, dilaw. Ang ColorCube ay napupunta kapag ito ay nakabaligtad.
Hakbang 6: Pagtitipon
Maging banayad habang nag-iipon. Ang mga wire at lahat ng bahagi ay hindi gusto ng magaspang na pag-uugali.
Button 3d naka-print na bahagi - marahang ilagay ang pindutan sa butas sa ilalim na naka-print na bahagi (tulad ng ipinakita sa larawan), kailangan itong lumabas at lumabas nang maayos, kung hindi gumagamit ng scalpel o matalim na kutsilyo o buhangin na papel upang alisin ang lahat ng labis na materyal (karamihan sa loob ng tuktok ng isang butas ng bilog sa ilalim na bahagi). (larawan)
Ilagay ang MPU-6050, Arduino Nano, TP4056 at MT3608 sa kanilang mga butas. Ang kahon ay may mga protrusion kung saan mo ipinasok ang MPU-6050 at MT3608. Ilagay ang mga konektor ng USB ng Arduino Nano at TP4056 sa kanilang mga butas sa mga gilid na dingding ng kahon. (larawan)
Gumamit ng 3d naka-print na lock upang ayusin ang mga bahagi (siguraduhin na ang lahat ng mga bahagi ay mahuhusay na inilalagay sa ilalim na bahagi). Ito ay mahalaga sapagkat ang isang tao ay tiyak na susubukan upang i-play sa iyong ColorCube tulad ng sa dice. (larawan)
Ilagay at i-secure ang baterya sa butas nito kung hindi ito mahigpit na hawakan.
Ilagay ang pindutan ng Self-locking sa handa na butas sa ibabang bahagi. Ang pindutan ng self-locking ay dapat na nasa posisyon na ON (maikli). Dahan-dahang itulak ang button pababa. Subukan ang pagpapaandar na may pindutang naka-print na 3d. (larawan)
Gumamit ng dalawang M2 na turnilyo upang ayusin ang LED Ring sa gitnang naka-print na bahagi. Mahusay na gamitin ang oryentasyon ng singsing kung saan ang mga contact sa wire ay nasa bilugan na butas ng gitnang naka-print na bahagi. (larawan)
Opsyonal: Gumamit ng isang patak ng mainit na pandikit dito at doon - koneksyon sa mga wire sa pag-ring, para sa masyadong mahabang mga wire, kung ang anumang bagay ay hindi sapat na masikip atbp Maaari itong gawing mas matibay ang iyong ColorCube.
Ayusin ang mga wire sa loob ng ColorCube upang hindi maipit sa pamamagitan ng mga naka-print na bahagi. Ilagay ang gitnang bahagi sa ilalim ng isa. Gumamit ng M3 screw upang ayusin ito. (larawan)
Panghuli dahan-dahang itulak ang itaas na naka-print na bahagi sa ilalim ng isa. (larawan)
Hakbang 7: Tapos Na
Pagbati. Magsaya ka
Inirerekumendang:
Paano Mag-disassemble ng isang Computer Na May Madaling Hakbang at Mga Larawan: 13 Hakbang (na may Mga Larawan)
Paano Mag-disassemble ng isang Computer Na May Madaling Mga Hakbang at Larawan: Ito ay isang tagubilin tungkol sa kung paano i-disassemble ang isang PC. Karamihan sa mga pangunahing sangkap ay modular at madaling matanggal. Gayunpaman mahalaga na maging maayos ka tungkol dito. Makakatulong ito upang maiwasan ka sa pagkawala ng mga bahagi, at sa paggawa din ng muling pagsasama
Ang Laser Pointer na naka-mount sa spectacle para sa Mga Taong May Mga Kapansanan sa Locomotor: 9 Mga Hakbang (na may Mga Larawan)
Ang Laser Pointer na naka-mount sa spectacle para sa Mga Taong May Kapansanan sa Locomotor: Ang mga taong may malubhang mga kapansanan sa lokomotor tulad ng mga sanhi ng cerebral palsy ay madalas na may mga kumplikadong pangangailangan sa komunikasyon. Maaaring kailanganin silang gumamit ng mga board na may alpabeto o karaniwang ginagamit na mga salitang nakalimbag sa kanila upang makatulong sa komunikasyon. Gayunpaman, marami
Pag-hack sa TV Tuner upang Basahin ang Mga Larawan sa Daigdig Mula sa Mga Satellite: 7 Mga Hakbang (na may Mga Larawan)
Pag-hack sa TV Tuner upang Basahin ang Mga Larawan sa Daigdig Mula sa Mga Satellite: Mayroong maraming mga satellite sa itaas ng aming mga ulo. Alam mo ba, na ang paggamit lamang ng Iyong computer, TV Tuner at simpleng DIY antena Maaari mong matanggap ang mga pagpapadala mula sa kanila? Halimbawa ng mga real time na larawan ng mundo. Ipapakita ko sa iyo kung paano. Kakailanganin mo ang: - 2 w
Pasadyang Arduino upang Panatilihing MAAARI ang Mga Pindutan sa Mga Manibela na May Bagong Car Stereo: 9 Mga Hakbang (na may Mga Larawan)
Pasadyang Arduino upang Panatilihin ang CAN Steering Wheel Buttons Sa Bagong Car Stereo: Napagpasyahan kong palitan ang orihinal na stereo ng kotse sa aking Volvo V70 -02 ng isang bagong stereo upang masisiyahan ako sa mga bagay tulad ng mp3, bluetooth at handsfree. Ang aking kotse ay may ilang mga kontrol sa manibela para sa stereo na nais kong magamit pa rin.
Album ng Mga Litrato ng Mga Bata Na May Komersyal ng Flashcard: 8 Mga Hakbang (na may Mga Larawan)
Kids Photo Album With Flashcard Commercial: Ipinapakita ng mga itinuturo na ito kung paano gumawa ng isang awtomatikong pag-update ng photo album ng WiFi bilang karagdagan sa mga tampok sa komersyal na flash card