Orodha ya maudhui:
- Hatua ya 1: Vifaa
- Hatua ya 2: Kuchapa
- Hatua ya 3: Mzunguko
- Hatua ya 4: Kufunga
- Hatua ya 5: Kanuni
- Hatua ya 6: Kukusanyika
- Hatua ya 7: Imekamilika
Video: ColourCube: Hatua 7 (na Picha)
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:50
Nilitengeneza taa hii kwa mjukuu wangu wakati alikuwa anajifunza rangi. Niliongozwa na mradi wa MagicCube lakini mwishowe niliunda sehemu zote kutoka mwanzoni. Ni rahisi kuchapisha na rahisi kukusanyika na utapata maarifa jinsi moduli ya gyro inavyofanya kazi.
Hatua ya 1: Vifaa
Sehemu ya Arduino:
- Arduino Nano (bora bila pini za kichwa cha solder)
- MPU-6050 3-Axis Gyro Module
- Moduli ya Chaja ya Batri ya USB ya TP4056
- Module ya Kuongeza Nguvu ya MT3608
- LiPo Battery 902936 900mA au 503035 3.7V 500mA. Unaweza kutumia betri yoyote ya LiPo na 3, 7V na saizi chini ya 35x30x15mm lakini lazima uhifadhi betri kwenye shimo.
- Kitufe cha kujifunga cha PS-22F28 au PS-22F27 Kitufe cha kujifunga kinafaa kwa sehemu iliyochapishwa kikamilifu.
- LED RGB WS2812B Gonga - 16 LED 68mm kipenyo cha nje - unaweza kutumia pete yoyote hata na idadi tofauti ya LED (lazima ubadilishe nambari moja kila mara - #fafanua NUMPIXELS 16) na kipenyo cha juu cha 76mm (unaweza pia kutumia Fimbo ya Neopixel na 8x LED au ukanda wowote wa LED na WS2812b).
Mifano ya pete: 8 LED 32mm12 LED 38mm12 LED 50mm16 LED 60mm24 LED 66 mm16 LED 44mm
Kwa montage unaweza kutumia yoyote ya mashimo yaliyochapishwa katikati. Zinashughulikia karibu chaguo lolote (sio lazima kuwa na pete ya 100%).
Waya
Mchemraba
- PLA Filament ya sehemu ya juu ya mchemraba - tumia rangi nyeupe kwa sababu uwazi sio mzuri (LED zinaonekana na rangi sio laini), pendekezo langu ni Prusament Vanilla White
- Uboreshaji wa PLA kwa sehemu za chini, katikati na vifungo - tumia rangi nyeusi kwa sababu moduli zingine za Arduino zina taa juu na hailingani na rangi za mchemraba za LED, pendekezo langu ni Prusament Galaxy Black
- 1x M3x5 Bofya ya kugonga - Urefu (10mm) na umbo la kichwa sio muhimu - parafujo haionekani
- 2x M2x3 Bofya ya kugonga - Urefu (5mm) na umbo la kichwa sio muhimu - screws hazionekani
Zana
- Printa ya 3D
- Mita nyingi
- Chuma cha kulehemu
- Bisibisi
Hatua ya 2: Kuchapa
Sehemu zote za ColorCube zilibuniwa katika Autodesk Fusion360. Faili ya f3d imeambatanishwa.
ColourCube ilichapishwa kwenye prusa i3 MK3S printa na mipangilio yote chaguomsingi na sitarajii mabadiliko yoyote muhimu kwa printa tofauti. Tumia mipangilio yako uipendayo kwa PLA (ikiwa imechapishwa kwenye PLA, hakuna shida kutumia PETG au ASA).
Vigezo vya uchapishaji 3d:
- Tabaka 0.2 mm (mipangilio ya UBORA 0.2mm kwenye PrusaSlicer)
- Mipangilio ya Prusament PLA Filament kwenye PrusaSlicer
- Jaza 15%
- Hakuna Msaada
- Hakuna Ukingo
Hatua ya 3: Mzunguko
Hatua ya 4: Kufunga
Onyo: Tumia mita nyingi kuhakikisha kuwa DC-DC nyongeza MT3608 inatoa 5V. Kwanza - kabla ya kupima - pindua trim kwa saa hadi mwisho (kubonyeza). Wakati unganisha voltage (3, 7V) kwa pembejeo inapaswa kutoa juu ya thamani sawa. Pinduka kinyume na saa (utahitaji zamu 10-20 kamili) na ghafla uinue voltage. Weka 5V kwenye pato laini. (picha)
Angalia sehemu iliyo chini ya mchemraba. Kila sehemu ina shimo lake mwenyewe. Inafafanua ni muda gani waya kati ya kila sehemu utahitaji (usitumie waya ndefu zaidi vinginevyo unapata msitu wa waya). (picha)
Waya za Solder kati ya Arduino Nano na pete ya LED tu (waya 3: nyekundu 5V - 5V, GND nyeusi - GND, bluu D6 - DI). Tumia jaribio la utendaji wa pete ya LED kutoka sura inayofuata. (picha)
Ikiwa kila kitu ni sawa endelea na kuongeza Gyro MPU6050 (waya 5: nyekundu 5V - VCC, GND nyeusi - GND, bluu A4 - SDA, kijani A5 - SCL, manjano D2 - INT). Pakia msimbo wa ColourCube.ino na ujaribu (vifaa vingine ni vya betri na kuchaji tu). (picha)
Ikiwa zote ni sawa ongeza sehemu zingine. Kuna waya nyekundu tu (+) na nyeusi (-). Chagua pini za kulia kwenye kitufe cha kujifungia (hakijaunganishwa wakati haikubanwa). Utendaji wa jaribio kwenye malipo ya betri na betri. (picha)
Taa nyekundu za LED kwenye TP4056 wakati wa kuchaji na taa za bluu za LED zinapochajiwa kikamilifu. Shimo hapo juu TP4056 katikati iliyochapishwa sehemu hupitisha mwangaza wa LED kwenye sehemu ya juu ya ColourCube na unaweza kutambua awamu ya kuchaji. (picha)
Hatua ya 5: Kanuni
Kwanza lazima upakue maktaba muhimu.
Kuna maagizo ya kina kwa maktaba ya Adafruit Neopixel:
Jaribio la utendaji wa pete ya LED: Unaweza kujaribu mzunguko wako kwa mfano uliojumuishwa kwenye maktaba. Fungua faili kutoka kwa Faili / Mifano / Adafruit NeoPixels / rahisi na upakie (usisahau kuweka sawa laini hii kwa idadi ya saizi unayotumia: #fafanua NUMPIXELS 16).
I2Cdev na MPU6050: Pakua na unzip faili ya i2cdevlib-master.zip kutoka https://github.com/jrowberg/i2cdevlib. Nakili fomu iliyofunguliwa folda i2cdevlib-master / Arduino folda mbili: I2Cdev na MPU6050. Nakala zote mbili kwenye folda ya maktaba ya Arduino IDE (Nyaraka / Arduino / maktaba ikiwa usakinishaji wa msingi).
Usisahau kuanzisha tena Arduino IDE baada ya maktaba kunakiliwa.
#jumuisha #ifdef _AVR_ # pamoja na // Inayohitajika kwa 16 MHz Adafruit Trinket # endif # pamoja na "Wire.h" ni pamoja na "I2Cdev.h" # pamoja na "MPU6050_6Axis_MotionApps20.h" MPU6050 mpu; #fafanua INTERRUPT_PIN 2 // tumia pin 2 kwenye Arduino Uno & bodi nyingi #fafanua PIN 6 #fafanua NUMPIXELS 16 // Weka idadi sahihi ya saizi za LED Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); uint32_t Active Colour, oldActiveColor = 0; bool dmpReady = uongo; uint8_t mpuIntStatus; uint8_t devStatus; pakiti ya uint16_tizeSize; uint16_t fifoCount; uint8_t fifoBuffer [64]; Quaternion q; Mvuto wa VectorFloat; kuelea rotace [3]; int x, y, z; bool tete mpuInterrupt = uongo; batili dmpDataReady () {mpuInterrupt = kweli; } usanidi batili () {Serial.begin (115200); saizi. anza (); saizi safi (); saizi.setBrightness (128); # ikiwa imefafanuliwa (_ AVR_ATtiny85_) && (F_CPU == 16000000) clock_prescale_set (clock_div_1); # endif // jiunge na basi ya I2C (maktaba ya I2Cdev haifanyi hivi moja kwa moja) # ikiwa I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE Wire.begin (); Wire.setClock (400000); // saa ya I2C ya 400kHz. Toa maoni kwenye mstari huu ikiwa na shida ya mkusanyiko #elif I2CDEV_IMPLEMENTATION == I2CDEV_BUILTIN_FASTWIRE Fastwire:: kuanzisha (400, kweli); # endif wakati (! Serial); Serial.println (F ("Inazindua vifaa vya I2C…")); mpu kuanzisha (); pinMode (INTERRUPT_PIN, INPUT); // thibitisha unganisho Serial.println (F ("Upimaji wa unganisho wa kifaa…")); Serial.println (mpu.testConnection () F? // subiri tayari // Serial.println (F ("\ nTuma mhusika yeyote kuanza programu na onyesho la DMP:")); // wakati (Serial. Inapatikana () && Serial.read ()); // bafa tupu // wakati (! Siri haipatikani ()); // subiri data // wakati (Serial.available () && Serial.read ()); // bafa tupu tena // mzigo na usanidi DMP Serial.println (F ("Inazindua DMP…")); devStatus = mpu.dmp Anzisha (); // usambazaji wa gyro yako mwenyewe hapa, iliyopunguzwa kwa unyeti wa dakika mpu.setXGyroOffset (0); mpu.setYGyroOffset (0); mpu.setZGyroOffset (0); mpu.setZAccelOffset (1688); // Chaguo-msingi cha kiwanda cha 1688 kwa chip yangu ya jaribio // hakikisha imefanya kazi (inarudi 0 ikiwa ni hivyo) ikiwa (devStatus == 0) {// Saa ya Kuweka: zalisha pesa na usuluhishe MPU6050 mpu yetu. CalibrateAccel (6); mpu. CalibrateGyro (6); mpu. PrintActiveOffsets (); // washa DMP, sasa ikiwa iko tayari Serial.println (F ("kuwezesha DMP…")); mpu.setDMPEnabled (kweli); // kuwezesha Arduino kukatiza kugundua Serial.print (F ("Kuwezesha kugundua kukatiza (Arduino kukatiza nje")); Serial.print (digitalPinToInterrupt (INTERRUPT_PIN)); Serial.println (F (")…")); ambatishaKukatiza (digitalPinToInterrupt (INTERRUPT_PIN), dmpDataReady, RISING); mpuIntStatus = mpu.getIntStatus (); // weka bendera yetu iliyo tayari ya DMP kwa hivyo kitanzi kuu () kazi inajua ni sawa kuitumia Serial.println (F ("DMP iko tayari! Inangojea usumbufu wa kwanza…")); dmpReady = kweli; // pata ukubwa wa pakiti ya DMP inayotarajiwa kwa pakiti ya kulinganisha baadayeSize = mpu.dmpGetFIFOPacketSize (); } mwingine {// KOSA! // 1 = mzigo wa kumbukumbu ya awali umeshindwa // 2 = sasisho za usanidi wa DMP zimeshindwa // (ikiwa itaenda kuvunjika, kawaida nambari itakuwa 1) Serial.print (F ("Uanzishaji wa DMP umeshindwa (nambari")); Serial. chapa (devStatus); Serial.println (F (")")); }} kitanzi batili () {if (! dmpReady) kurudi; ikiwa (mpu.dmpGetCurrentFIFOPacket (fifoBuffer)) {// Pata pakiti ya hivi karibuni // onyesha pembe za Euler kwa digrii mpu.dmpGetQuaternion (& q, fifoBuffer); mpu.dmpPata Uzito (& mvuto, & q); mpu.dmpGetYawPitchRoll (rotace, & q, & mvuto); } Serial.print ("X"); Printa ya serial (rotace [2] * 180 / M_PI); Serial.print ("\ t Y"); Printa ya serial (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; ikiwa (abs (x) <45 && abs (y) 45 && abs (x) <135 && (abs (y) 135)) {activeColor = pixels. Color (255, 0, 0); // Nyekundu ukigeukia upande} mwingine ikiwa (x <-45 && abs (x) <135 && (abs (y) 135)) {activeColor = pixels. Color (0, 255, 0); // Kijani ukigeukia upande wa pili} mwingine ikiwa (y> 45 && abs (y) <135 && (abs (x) 135)) {activeColor = pixels. Color (255, 255, 0); // Njano ukigeukia upande wa tatu} mwingine ikiwa (y <-45 && abs (y) <135 && (abs (x) 135)) {activeColor = pixels. Color (0, 0, 255); // Bluu ukigeukia upande wa nne} mwingine ikiwa (abs (y)> 135 && abs (x)> 135) {activeColor = pixels. Color (0, 0, 0); // Nyeusi wakati kichwa chini} ikiwa (activeColor! = OldActiveColor) {pixels.clear (); saizi.fill (ActiveColor); saizi. onyesha (); oldActiveColor = ActiveColor; }}
Mwishowe unaweza kufungua na kupakia faili ya ColourCube.ino. Weka Rangi ya Mchemraba ya uso gorofa na uiwashe. Usiisogeze mpaka itaanza kuwa nyepesi na rangi nyeupe baada ya usawa (sekunde chache). Ifuatayo unaweza kuweka ColourCube kando na rangi itabadilika - kila upande una rangi yake - nyekundu, kijani kibichi, hudhurungi, manjano. ColourCube hutoka wakati imegeuzwa chini.
Hatua ya 6: Kukusanyika
Kuwa mpole wakati wa kukusanyika. Waya na sehemu zote hazipendi tabia mbaya.
Kifungo 3d kilichochapishwa sehemu - laini kuweka kitufe kwenye shimo kwenye sehemu iliyochapishwa chini (kama inavyoonekana kwenye picha), inapaswa kuingia na kutoka vizuri, ikiwa haitumii scalpel au kisu kali au karatasi ya mchanga kuondoa vifaa vyote vya ziada (zaidi ndani juu ya shimo la duara kwenye sehemu ya chini). (picha)
Weka MPU-6050, Arduino Nano, TP4056 na MT3608 kwenye mashimo yao. Sanduku lina protrusions ambayo unaweza kuingiza MPU-6050 na MT3608. Weka viunganisho vya USB vya Arduino Nano na TP4056 kwenye mashimo yao kwenye kuta za upande wa sanduku. (picha)
Tumia kufuli iliyochapishwa 3d kurekebisha vifaa (hakikisha kuwa vifaa vyote vimewekwa kwa sehemu ya chini vizuri). Ni muhimu kwa sababu mtu hakika atajaribu kucheza na ColourCube yako kama na kete. (picha)
Weka na salama betri kwenye shimo lake ikiwa haishikilii sana.
Weka kitufe cha kujifunga kwenye shimo lililotayarishwa katika sehemu ya chini. Kitufe cha kujifunga kinafaa kuwa katika nafasi ya ON (fupi). Bonyeza kifungo kwa upole chini. Utendaji wa jaribio na kitufe cha kuchapishwa cha 3d. (picha)
Tumia screws mbili za M2 kurekebisha Gonga la LED kwa sehemu iliyochapishwa katikati. Ni vizuri kutumia mwelekeo wa pete ambapo anwani za waya ziko kwenye shimo lenye mviringo la sehemu iliyochapishwa katikati. (picha)
Hiari: Tumia tone la gundi moto hapa na pale - unganisho la waya ili kupigia, kwa waya mrefu sana, ikiwa kuna kitu kisichobana vya kutosha n.k Inaweza kufanya ColourCube yako kudumu zaidi.
Panga waya ndani ya ColourCube isiwe kubanwa na sehemu zilizochapishwa. Weka sehemu ya kati hadi chini. Tumia screw ya M3 kuirekebisha. (picha)
Mwishowe pole pole bonyeza sehemu iliyochapishwa hadi chini. (picha)
Hatua ya 7: Imekamilika
Hongera. Furahiya.
Ilipendekeza:
Jinsi: Kuweka Raspberry PI 4 isiyo na kichwa (VNC) na Rpi-picha na Picha: Hatua 7 (na Picha)
Jinsi: Kuweka Raspberry PI 4 isiyo na kichwa (VNC) Na picha ya Rpi na Picha: Ninapanga kutumia Rapsberry PI hii kwenye rundo la miradi ya kufurahisha nyuma kwenye blogi yangu. Jisikie huru kuiangalia. Nilitaka kurudi kutumia Raspberry PI yangu lakini sikuwa na Kinanda au Panya katika eneo langu jipya. Ilikuwa ni muda tangu nilipoweka Raspberry
Uso wa Kujua Picha ya Picha ya OSD: Hatua 11 (na Picha)
Uso wa Kujua Picha ya Picha ya OSD: Maagizo haya yanaonyesha jinsi ya kutengeneza fremu ya picha na utambuzi wa uso kwenye Onyesho la Skrini (OSD). OSD inaweza kuonyesha wakati, hali ya hewa au habari nyingine ya mtandao unayotaka
Utengenezaji wa Picha / Picha ya Picha: 4 Hatua
Picha-based Modeling / Photogrammetry Portraiture: Halo kila mtu, Katika hii inayoweza kuelekezwa, nitakuonyesha mchakato wa jinsi ya kuunda vielelezo vya 3D kwa kutumia picha za dijiti. Mchakato huo unaitwa Photogrammetry, pia inajulikana kama Modeling-Image Modeling (IBM). Hasa, aina ya mchakato huu hutumiwa
Hawk ya Ishara: Roboti Iliyodhibitiwa na Ishara ya Mkono Kutumia Picha ya Usindikaji wa Picha: Hatua 13 (na Picha)
Hawk ya Ishara: Robot Iliyodhibitiwa na Ishara ya Mkono Kutumia Picha ya Usindikaji wa Picha: Hawk ya Ishara ilionyeshwa katika TechEvince 4.0 kama muundo rahisi wa picha ya msingi wa mashine ya kibinadamu. Huduma yake iko katika ukweli kwamba hakuna sensorer za ziada au za kuvaliwa isipokuwa glavu inahitajika kudhibiti gari ya roboti inayoendesha tofauti
Picha ya Picha ya Dijitali, Wifi Imeunganishwa - Raspberry Pi: Hatua 4 (na Picha)
Picha ya Picha ya Dijitali, Wifi Imeunganishwa - Raspberry Pi: Hii ni njia rahisi na ya gharama nafuu kwa fremu ya picha ya dijiti - na faida ya kuongeza / kuondoa picha kwenye WiFi kupitia 'bonyeza na buruta' kwa kutumia (bure) mpango wa kuhamisha faili . Inaweza kutumiwa na Pauni Zero ndogo ya Pauni 4.50. Unaweza pia kuhamisha