Sisukord:
- Samm: materjalid
- 2. samm: printimine
- 3. samm: ahel
- 4. samm: jootmine
- Samm: kood
- 6. samm: kokkupanek
- Samm 7: Valmis
Video: ColorCube: 7 sammu (koos piltidega)
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:46
Tegin selle lambi oma lapselapsele, kui ta värve õppis. Mind inspireeris MagicCube'i projekt, kuid lõpuks lõin kõik osad nullist. Seda on lihtne printida ja lihtne kokku panna ning saate teadmisi güroskoopmooduli toimimise kohta.
Samm: materjalid
Arduino osa:
- Arduino Nano (parem ilma jootmispäise tihvtideta)
- MPU-6050 3-teljeline güroskoopmoodul
- TP4056 mikro -USB akulaadija moodul
- MT3608 võimendusvõimsuse võimendusmoodul
- LiPo aku 902936 900mA või 503035 3,7V 500mA. Võite kasutada mis tahes 3, 7 V LiPo akut, mille suurus on väiksem kui 35x30x15 mm, kuid peate aku auku kinnitama.
- PS-22F28 Iselukustuv nupp või PS-22F27 Iselukustuv nupp sobivad ideaalselt trükitud osale.
- LED RGB WS2812B rõngas - 16 LED 68mm välisläbimõõt - saate kasutada mis tahes rõngast isegi erineva arvu LED -idega (koodis tuleb muuta üks konstant - #define NUMPIXELS 16), maksimaalse läbimõõduga 76 mm (saate kasutada ka Neopixel Stick 8x LED või mis tahes LED -riba koos WS2812b).
Sõrmuste näited: 8 LED 32mm12 LED 38mm12 LED 50mm16 LED 60mm24 LED 66 mm16 LED 44mm
Montaaži jaoks võite kasutada mis tahes auke, mis on trükitud keskosas. Need hõlmavad peaaegu kõiki võimalusi (pole vaja, et rõngas oleks 100% tsentreeritud).
Juhtmed
Kuubik
- PLA hõõgniit kuubiku ülemise osa jaoks - kasutage valget värvi, sest läbipaistev ei ole hea (valgusdioodid on nähtavad ja värv ei ole sile), minu soovitus on Prusament Vanilla White
- PLA hõõgniit alumiste, keskmiste ja nuppude jaoks - kasutage tumedat värvi, kuna mõnel Arduino moodulil on peal tuled ja see ei sobi kuubiku LED -ide värvidega, minu soovitus on Prusament Galaxy Black
- 1x M3x5 isekeermestav kruvi - pikkus (10 mm) ja pea kuju ei ole kriitilised - kruvi pole nähtav
- 2x M2x3 isekeermestav kruvi - pikkus (5 mm) ja pea kuju ei ole kriitilised - kruvid pole nähtavad
Tööriistad
- 3D printer
- Mitme meetri
- Jootekolb
- Kruvikeeraja
2. samm: printimine
Kõik ColorCube'i osad on loodud Autodesk Fusion360 -s. f3d fail on lisatud.
ColorCube trükiti Prusa i3 MK3S printerile kõigi vaikeseadetega ja ma ei oota vajalikke muudatusi erinevatel printeritel. Kasutage PLA jaoks oma lemmikseadeid (kui need on trükitud PLA -le, pole PETG või ASA kasutamisel probleeme).
3D printimise parameetrid:
- Kiht 0,2 mm (0,2 mm QUALITY seaded PrusaSliceril)
- Prusament PLA filamendi seaded PrusaSliceril
- Täitke 15%
- Tugi puudub
- Ilma ääreta
3. samm: ahel
4. samm: jootmine
Hoiatus: kasutage multimeetrit, et veenduda, et DC-DC võimendi MT3608 väljastab 5V. Esiteks - enne mõõtmist - keerake trimmi päripäeva lõpuni (klõpsates). Kui ühendate sisendisse pinge (3, 7V), peab see andma umbes sama väärtuse. Pöörake vastupäeva (vajate 10–20 täispööret) ja äkki tõuseb pinge. Lülitage väljund 5V õrnalt sisse. (foto)
Vaadake kuubi trükitud alumist osa. Igal komponendil on oma auk. See määrab, kui palju juhtmeid iga komponendi vahel vaja läheb (ärge kasutage eriti pikki juhtmeid, vastasel juhul saate traadi džungli). (foto)
Jootetraadid ainult Arduino Nano ja LED -rõnga vahel (3 juhet: punane 5V - 5V, must GND - GND, sinine D6 - DI). Käivitage järgmisest peatükist LED -rõnga funktsionaalsuse test. (foto)
Kui kõik on korras, jätkake Gyro MPU6050 lisamisega (5 juhet: punane 5V - VCC, must GND - GND, sinine A4 - SDA, roheline A5 - SCL, kollane D2 - INT). Laadige ColorCube.ino kood ja test üles (muud komponendid on ainult aku ja laadimise jaoks). (foto)
Kui kõik on korras, lisage ülejäänud komponendid. Juhtmed on ainult punased (+) ja mustad (-). Valige iselukustuva nupu paremad tihvtid (pole ühendatud, kui seda ei vajutata). Testige aku ja aku laadimise funktsionaalsust. (foto)
Punane LED -tuli süttib TP4056 -l laadimisel ja sinine LED -tuli süttib täielikult laetuna. TP4056 kohal olev auk keskel trükitud osas suunab LED -tule ColorCube'i ülemisse ossa ja saate ära tunda laadimisfaasi. (foto)
Samm: kood
Esiteks peate alla laadima vajalikud teegid.
Adafruit Neopixeli raamatukogu kohta on üksikasjalikud juhised:
LED -rõnga funktsionaalsuse test: saate oma vooluringi testida raamatukogus oleva näite abil. Avage fail failist/näited/Adafruit NeoPixels/lihtne ja laadige üles (ärge unustage seda rida õigesti seadistada kasutatavate pikslite arvu järgi: #define NUMPIXELS 16).
I2Cdev ja MPU6050: laadige alla ja pakkige lahti i2cdevlib-master.zip fail saidilt https://github.com/jrowberg/i2cdevlib. Kopeerige vormist lahtipakitud kaust i2cdevlib-master/Arduino kaks alamkausta: I2Cdev ja MPU6050. Mõlemad kopeerivad Arduino IDE raamatukogu kausta (dokumendid/Arduino/teegid, kui see on vaikimisi installitud).
Ärge unustage pärast raamatukogude kopeerimist Arduino IDE taaskäivitada.
#include #ifdef _AVR_ #include // Nõutav 16 MHz Adafruit nipsasja jaoks #endif #include "Wire.h" include "I2Cdev.h" #include "MPU6050_6Axis_MotionApps20.h" MPU6050 mpu; #define INTERRUPT_PIN 2 // kasutage Arduino Uno ja enamiku tahvlite tihvti 2 #määrake PIN 6 #defineerige NUMPIXELS 16 // Määrake õige LED -de arv Adafruit_NeoPixel pikslid (NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); uint32_t activeColor, oldActiveColor = 0; bool dmpReady = vale; uint8_t mpuIntStatus; uint8_t devStatus; uint16_t packetSize; uint16_t fifoCount; uint8_t fifoBuffer [64]; Kvaternion q; VectorFloat gravitatsioon; float rotace [3]; int x, y, z; lenduv bool mpuInterrupt = false; void dmpDataReady () {mpuInterrupt = tõsi; } void setup () {Serial.begin (115200); pixels.begin (); pixels.clear (); pikslid.setBrightness (128); #if defineeritud (_ AVR_ATtiny85_) && (F_CPU == 16000000) clock_prescale_set (clock_div_1); #endif // liitu I2C siiniga (I2Cdev raamatukogu ei tee seda automaatselt) #if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE Wire.begin (); Wire.setClock (400000); // 400 kHz I2C kell. Kommenteerige seda rida, kui teil on koostamisraskusi #elif I2CDEV_IMPLEMENTATION == I2CDEV_BUILTIN_FASTWIRE Fastwire:: setup (400, true); #endif while (! Seriaal); Serial.println (F ("I2C seadmete lähtestamine …")); mpu.initialize (); pinMode (INTERRUPT_PIN, INPUT); // kontrolli ühendust Serial.println (F ("Seadmeühenduste testimine …")); Serial.println (mpu.testConnection ()? F ("MPU6050 ühendus õnnestus"): F ("MPU6050 ühendus nurjus")); // oodake valmisolekut // Serial.println (F ("\ nDMP programmeerimise ja demo alustamiseks saatke mis tahes märk:")); // while (Serial.available () && Serial.read ()); // tühi puhver // while (! Serial.available ()); // oota andmeid // while (Serial.available () && Serial.read ()); // tühjendage uuesti puhver // laadige ja konfigureerige DMP Serial.println (F ("DMP vormindamine …")); devStatus = mpu.dmpInitialize (); // esitage siin oma güroskoopide nihked, skaleerides minimaalse tundlikkuse järgi mpu.setXGyroOffset (0); mpu.setYGyroOffset (0); mpu.setZGyroOffset (0); mpu.setZAccelOffset (1688); // minu testkiibi tehase vaikeseade 1688 // veenduge, et see töötas (tagastab 0, kui jah), kui (devStatus == 0) {// Kalibreerimisaeg: genereerige nihked ja kalibreerige meie MPU6050 mpu. CalibrateAccel (6); mpu. KalibreeriGyro (6); mpu. PrintActiveOffsets (); // lülitage DMP sisse, nüüd kui see on valmis Serial.println (F ("DMP lubamine …")); mpu.setDMPEnabled (tõene); // lubage Arduino katkestuste tuvastamine Serial.print (F ("Katkestuste tuvastamise lubamine (Arduino väline katkestus"))); Serial.print (digitalPinToInterrupt (INTERRUPT_PIN)); Serial.println (F (")…")); attachInterrupt (digitalPinToInterrupt (INTERRUPT_PIN), dmpDataReady, RISING); mpuIntStatus = mpu.getIntStatus (); // seadistage meie DMP Ready lipp, nii et põhisilmuse () funktsioon teab, et seda on okei kasutada Serial.println (F ("DMP valmis! Ootan esimest katkestust …")); dmpReady = tõsi; // saada oodatud DMP paketi suurus hilisemaks võrdluseks packetSize = mpu.dmpGetFIFOPacketSize (); } muu {// VIGA! // 1 = esialgne mälu laadimine ebaõnnestus // 2 = DMP konfiguratsiooni värskendamine ebaõnnestus // (kui see läheb katki, on tavaliselt kood 1) Serial.print (F ("DMP -i initsialiseerimine ebaõnnestus (kood"))); Seeria. print (devStatus); Serial.println (F (")")); }} void loop () {if (! dmpReady) return; if (mpu.dmpGetCurrentFIFOPacket (fifoBuffer)) {// Hangi uusim pakett // kuva Euleri nurgad kraadides mpu.dmpGetQuaternion (& q, fifoBuffer); mpu.dmpGetGravity (& gravitatsioon, & q); mpu.dmpGetYawPitchRoll (pöörlemine, & q ja & gravitatsioon); } 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 (pöörle [0] * 180/M_PI); x = pöörlemine [2] * 180/M_PI; y = pöörlemine [1] * 180/M_PI; z = pöörlemine [0] * 180/M_PI; if (abs (x) <45 && abs (y) 45 && abs (x) <135 && (abs (y) 135)) {activeColor = pikslit. Värv (255, 0, 0); // Punane, kui pöörata küljele} else if (x <-45 && abs (x) <135 && (abs (y) 135)) {activeColor = pixels. Color (0, 255, 0); // Roheline, kui pöörata teisele poole} else if (y> 45 && abs (y) <135 && (abs (x) 135)) {activeColor = pixels. Color (255, 255, 0); // kollane, kui pöörata kolmandale küljele} else if (y <-45 && abs (y) <135 && (abs (x) 135)) {activeColor = pixels. Color (0, 0, 255); // Sinine, kui pöörata neljandale küljele} else if (abs (y)> 135 && abs (x)> 135) {activeColor = pixels. Color (0, 0, 0); // tagurpidi must} if (activeColor! = OldActiveColor) {pixels.clear (); pixels.fill (activeColor); pixels.show (); oldActiveColor = aktiivneVärv; }}
Lõpuks saate faili ColorCube.ino avada ja üles laadida. Asetage ColorCube tasasele pinnale ja lülitage see sisse. Ärge liigutage seda enne, kui see pärast kalibreerimist (mõni sekund) valgeks muutub. Seejärel saate ColorCube'i küljele panna ja värv muutub - igal küljel on oma värv - punane, roheline, sinine, kollane. ColorCube kustub, kui see tagurpidi pöörata.
6. samm: kokkupanek
Olge kokkupanekul õrn. Juhtmed ja kõik osad ei meeldi jämedale käitumisele.
Nupp 3D trükitud osa - asetage nööp pehmelt alumise trükitud osa auku (nagu pildil näidatud), see peab sujuvalt sisse ja välja minema, kui mitte, kasutage skalpelli või teravat nuga või liivapaberit kogu liigse materjali eemaldamiseks (enamasti seespool) ümmarguse augu ülaosa alumisel osal). (foto)
Pange MPU-6050, Arduino Nano, TP4056 ja MT3608 oma aukudesse. Karbil on väljaulatuvad osad, mille alla sisestate MPU-6050 ja MT3608. Pange Arduino Nano ja TP4056 USB -pistikud karbi külgseinte aukudesse. (foto)
Komponentide kinnitamiseks kasutage 3D -prinditud lukku (veenduge, et kõik komponendid oleksid tihedalt alumise osa peal). See on oluline, sest keegi proovib kindlasti teie ColorCube'iga mängida nagu täringutega. (foto)
Pange aku ja kinnitage see oma auku, kui see ei hoia tihedalt kinni.
Asetage isesulguv nupp alumise osa ettevalmistatud auku. Iselukustuv nupp peab olema asendis ON (lühike). Vajutage nuppu õrnalt alla. Testi funktsionaalsust 3D prinditud nupuga. (fotod)
Kinnitage LED -rõngas keskmise trükitud osa külge kahe M2 -kruviga. On hea kasutada rõnga suunda, kus traatkontaktid asuvad keskmise trükitud osa ümaras augus. (fotod)
Valikuline: kasutage tilka kuuma liimi siin ja seal - juhtmete ühendus rõngaga, liiga pikkade juhtmete puhul, kui miski pole piisavalt pingul jne. See võib muuta teie ColorCube'i vastupidavamaks.
Asetage juhtmed ColorCube'i sisse, et trükitud osad neid ei pigistaks. Pange keskmine osa alumisele. Selle kinnitamiseks kasutage kruvi M3. (foto)
Lõpuks lükake ülemine trükitud osa õrnalt alumisele. (foto)
Samm 7: Valmis
Palju õnne. Lõbutse hästi.
Soovitan:
Castle Planter (koos Tinkercadi koodiplokkidega): 25 sammu (koos piltidega)
Castle Planter (koos Tinkercadi koodiplokkidega): selle disaini teostamine võttis mul üsna kaua aega ja kuna minu kodeerimisoskus on vähemalt öeldes piiratud, loodan, et see õnnestus hästi :) Kasutades juhiseid, peaksite saama taaslooge selle disaini kõik aspektid ilma
Diy makroobjektiiv koos teravustamisega (erinev kui kõik muud DIY makroobjektiivid): 4 sammu (koos piltidega)
Diy makroobjektiiv koos teravustamisega (erinev kui kõik muud DIY makroobjektiivid): olen näinud palju inimesi, kes teevad makroläätsi tavalise komplekti objektiiviga (tavaliselt 18–55 mm). Enamik neist on objektiiv, mis on lihtsalt tagurpidi kaamera külge kinnitatud või esielement eemaldatud. Mõlemal variandil on varjuküljed. Objektiivi kinnitamiseks
Kitroniku leiutajakomplekti kasutamine koos Adafruit CLUE -ga: 4 sammu (koos piltidega)
Kitroniku leiutajakomplekti kasutamine koos Adafruit CLUE -ga: Kitronik Leiutaja komplekt BBC micro: bit jaoks on suurepärane sissejuhatus elektroonikaga mikrokontrolleritele, kasutades leivaplaati. See komplekti versioon on mõeldud kasutamiseks koos odava BBC mikro: bitiga. Üksikasjalik õpetusraamat, mis tuleb
Aktiivse muusikapeo LED -latern ja Bluetooth -kõlar koos pimedas helendava PLA -ga: 7 sammu (koos piltidega)
Aktiivse muusikapeo LED -latern ja Bluetooth -kõlar koos helendusega pimedas PLA: Tere, ja aitäh, et häälestasite minu juhendatavaks! Igal aastal teen koos oma pojaga, kes on nüüd 14., huvitava projekti. Oleme ehitanud nelikopteri, ujumistempo. (mis on ka juhendatav), CNC korpuse pink ja Fidget Spinners
3 KANALI AUDIO MIXER koos FM -raadiosaatjaga: 19 sammu (koos piltidega)
3 KANALI AUDIO MIXER, mis on integreeritud FM -raadiosaatjaga: Hei kõik, selles artiklis ma aitan teil ehitada oma 3 KANALI AUDIO MIXER koos FM -raadiosaatjaga