ዝርዝር ሁኔታ:

ColorCube: 7 ደረጃዎች (ከስዕሎች ጋር)
ColorCube: 7 ደረጃዎች (ከስዕሎች ጋር)

ቪዲዮ: ColorCube: 7 ደረጃዎች (ከስዕሎች ጋር)

ቪዲዮ: ColorCube: 7 ደረጃዎች (ከስዕሎች ጋር)
ቪዲዮ: 7 Easy Tips to Improve Your COLORING PAGES 2024, ታህሳስ
Anonim
Image
Image
ColorCube
ColorCube
ColorCube
ColorCube

ለሴት ልጄ ቀለሞችን በሚማርበት ጊዜ ይህንን መብራት ሠራሁ። እኔ በ MagicCube ፕሮጀክት ተመስጦ ነበር ነገር ግን በመጨረሻ ሁሉንም ክፍሎች ከባዶ ፈጠረ። ለማተም ቀላል እና ለመገጣጠም ቀላል እና የጂሮ ሞዱል እንዴት እንደሚሰራ ዕውቀት ያገኛሉ።

ደረጃ 1: ቁሳቁሶች

ቁሳቁሶች
ቁሳቁሶች

የአርዱዲኖ ክፍል

  • አርዱዲኖ ናኖ (ያለመሸጫ ራስጌ ካስማዎች የተሻለ)
  • MPU-6050 3-Axis Gyro ሞዱል
  • TP4056 ማይክሮ ዩኤስቢ ባትሪ መሙያ ሞዱል
  • MT3608 ደረጃ ከፍ ለማድረግ የኃይል ማበልጸጊያ ሞዱል
  • LiPo ባትሪ 902936 900mA ወይም 503035 3.7V 500mA። 3 ፣ 7V እና መጠን ከ 35x30x15 ሚሜ በታች የሆነ ማንኛውንም የ LiPo ባትሪ መጠቀም ይችላሉ ግን ባትሪውን በጉድጓድ ውስጥ ማስጠበቅ አለብዎት።
  • PS-22F28 የራስ መቆለፊያ ቁልፍ ወይም PS-22F27 የራስ መቆለፊያ ቁልፍ ሁለቱም ከታተመ ክፍል ጋር በትክክል ይጣጣማሉ።
  • የ LED RGB WS2812B ቀለበት - 16 LED 68 ሚሜ የውጪ ዲያሜትር - ማንኛውንም የ LED ቁጥር እንኳን ቢሆን ማንኛውንም ቀለበት መጠቀም ይችላሉ (በኮድ ውስጥ አንድ ቋሚ መለወጥ አለብዎት - #ዲፋይ NUMPIXELS 16) በ 76 ሚሜ ከፍተኛ ዲያሜትር (እርስዎም የኒዮፒክስል ዱላ መጠቀም ይችላሉ) 8x LED ወይም WS2812b ያለው ማንኛውም የ LED ንጣፍ)።

የቀለበት ምሳሌዎች -8 LED 32mm12 LED 38mm12 LED 50mm16 LED 60mm24 LED 66 mm16 LED 44mm

ለሞንቴጅ በመካከለኛ ክፍል የታተሙ ማንኛቸውም ቀዳዳዎችን መጠቀም ይችላሉ። ማንኛውንም አማራጭ ማለት ይቻላል ይሸፍናሉ (ቀለበት 100% ማእከል እንዲኖረው አስፈላጊ አይደለም)።

ሽቦዎች

ኩብ

  • PLA Filament ለኩብ የላይኛው ክፍል - ነጭ ቀለምን ይጠቀሙ ምክንያቱም ግልፅነት ጥሩ አይደለም (ኤልኢዲዎች ይታያሉ እና ቀለም ለስላሳ አይደለም) ፣ ምክሬ Prusament Vanilla White ነው
  • PLA Filament ለታች ፣ መካከለኛ እና የአዝራር ክፍሎች - አንዳንድ የአርዱዲኖ ሞጁሎች በላዩ ላይ መብራቶች ስላሉት እና ከኩቤ LEDs ቀለሞች ጋር የማይስማማ በመሆኑ ጥቁር ቀለምን ይጠቀሙ ፣ ምክሬ Prusament Galaxy Black ነው
  • 1x M3x5 የራስ -መታ መታጠፊያ - ርዝመቱ (10 ሚሜ) እና የጭንቅላት ቅርፅ ወሳኝ አይደለም - ጠመዝማዛ አይታይም
  • 2x M2x3 የራስ -መታ መታ - ርዝመት (5 ሚሜ) እና የጭንቅላት ቅርፅ ወሳኝ አይደለም - ብሎኖች አይታዩም

መሣሪያዎች

  • 3 ዲ አታሚ
  • ባለብዙ ሜትር
  • የመሸጫ ብረት
  • ጠመዝማዛ

ደረጃ 2 ማተም

ማተም
ማተም
ማተም
ማተም

ሁሉም የ ColorCube ክፍሎች በ Autodesk Fusion360 ውስጥ የተነደፉ ናቸው። f3d ፋይል ተያይ attachedል።

ColorCube በሁሉም ነባሪ ቅንብሮች በ Prusa i3 MK3S አታሚ ላይ ታትሟል እና በተለያዩ አታሚዎች ላይ ምንም አስፈላጊ ለውጦች አልጠብቅም። ለ PLA ተወዳጅ ቅንብሮችዎን ይጠቀሙ (በ PLA ላይ ከታተመ ፣ PETG ወይም ASA ን ለመጠቀም ምንም ችግር የለም)።

3 ዲ የህትመት መለኪያዎች

  • ንብርብር 0.2 ሚሜ (በ PrusaSlicer ላይ 0.2 ሚሜ የጥራት ቅንብሮች)
  • Prusament PLA Filament ቅንብሮች በ PrusaSlicer ላይ
  • 15% ይሙሉ
  • ድጋፍ የለም
  • ብሪም የለም

ደረጃ 3 ወረዳ

ወረዳ
ወረዳ

ደረጃ 4: መሸጥ

ብየዳ
ብየዳ
ብየዳ
ብየዳ
ብየዳ
ብየዳ

ማስጠንቀቂያ-የዲሲ-ዲሲ ማጉያው MT3608 5V ን እያወጣ መሆኑን ለማረጋገጥ ባለብዙ ሜትሮችን ይጠቀሙ። በመጀመሪያ - ከመለካትዎ በፊት - መከለያውን በሰዓት አቅጣጫ ወደ መጨረሻው ያዙሩት (ጠቅ ያድርጉ)። ቮልቴጅን (3, 7V) ወደ ግቤት ሲያገናኙ ስለ ተመሳሳይ እሴት መስጠት አለበት። በተቃራኒ ሰዓት አቅጣጫ (ከ10-20 ሙሉ ማዞሪያ ያስፈልግዎታል) እና በድንገት ቮልቴጅ ከፍ ይላል። በቀስታ 5V ውፅዓት ላይ ያዘጋጁ። (ፎቶ)

የታተመውን የኩባውን የታችኛው ክፍል ይመልከቱ። እያንዳንዱ አካል የራሱ ቀዳዳ አለው። በእያንዲንደ ክፌሌ መካከሌ ምን ያህሌ ሽቦዎች እን longሚያስፈሌግዎት ይገልፃሌ (ረጃጅም ገመዶችን አይጠቀሙ ፣ አለበለዚያ የሽቦ ጫካ ያገኛሉ)። (ፎቶ)

በአርዱዲኖ ናኖ እና በ LED ቀለበት መካከል ብቻ የሽያጭ ሽቦዎች (3 ሽቦዎች - ቀይ 5V - 5V ፣ ጥቁር GND - GND ፣ ሰማያዊ D6 - DI)። ከሚቀጥለው ምዕራፍ የ LED ቀለበት ተግባራዊነት ሙከራን ያሂዱ። (ፎቶ)

ሁሉም ነገር ደህና ከሆነ Gyro MPU6050 ን (5 ሽቦዎች ቀይ 5V - ቪሲሲ ፣ ጥቁር GND - GND ፣ ሰማያዊ A4 - SDA ፣ አረንጓዴ A5 - SCL ፣ ቢጫ D2 - INT) በማከል ይቀጥሉ። ColorCube.ino ኮድ እና ሙከራ ይስቀሉ (ሌሎች አካላት ለባትሪ እና ለኃይል መሙላት ብቻ ናቸው)። (ፎቶ)

ሁሉም ደህና ከሆነ ቀሪዎቹን ክፍሎች ይጨምሩ። ቀይ (+) እና ጥቁር (-) ሽቦዎች ብቻ አሉ። በራስ መቆለፊያ ቁልፍ ላይ ትክክለኛ ፒኖችን ይምረጡ (ባልተጫነ ጊዜ አልተገናኘም)። በባትሪ እና በባትሪ መሙያ ላይ ተግባርን ይፈትሹ። (ፎቶ)

ኃይል በሚሞላበት ጊዜ በ TP4056 ላይ ቀይ የ LED መብራቶች እና ሙሉ ኃይል ሲሞላ ሰማያዊ የ LED መብራቶች። በመካከለኛው የታተመ ክፍል ከ TP4056 በላይ ያለው ቀዳዳ የ LED ብርሃንን ወደ ColorCube የላይኛው ክፍል ያስተላልፋል እና የኃይል መሙያውን ደረጃ ማወቅ ይችላሉ። (ፎቶ)

ደረጃ 5 ኮድ

በመጀመሪያ አስፈላጊ ቤተ -መጽሐፍቶችን ማውረድ አለብዎት።

ለ Adafruit Neopixel ቤተ -መጽሐፍት ዝርዝር መመሪያዎች አሉ-

የ LED ቀለበት ተግባራዊነት ሙከራ -በቤተ -መጽሐፍት ውስጥ በተካተተው ምሳሌ ወረዳዎን መሞከር ይችላሉ። ፋይልን ከፋይል/ምሳሌዎች/Adafruit NeoPixels/ቀላል ይክፈቱ እና ይስቀሉ (በሚጠቀሙበት የፒክሰሎች ብዛት ይህንን መስመር በትክክል ማቀናበርዎን አይርሱ - #ጥራት NUMPIXELS 16)።

I2Cdev እና MPU6050: i2cdevlib-master.zip ፋይልን ከ https://github.com/jrowberg/i2cdevlib ያውርዱ እና ያውጡ። ቅጽ ያልተገለበጠ አቃፊ i2cdevlib-master/Arduino ሁለት ንዑስ አቃፊዎች ቅዳ-I2Cdev እና MPU6050። ሁለቱም ወደ አርዱዲኖ አይዲኢ ቤተመጽሐፍት አቃፊ (ሰነዶች/አርዱinoኖ/ቤተመፃህፍት ነባሪ ጭነት ከሆነ) ይቅዱ።

ቤተመፃህፍት ከተገለበጡ በኋላ አርዱዲኖ አይዲኢን እንደገና ማስጀመርን አይርሱ።

#ያካተተ #ifdef _AVR_ #አካታች // ለ 16 ሜኸ አዳፍ ፍሬ ትሪኬት #ኤንድፍ #ያካትታል "Wire.h" "I2Cdev.h" ን ያካትታል #MPU6050_6Axis_MotionApps20.h "MPU6050 mpu; #መግለፅ INTERRUPT_PIN 2 // በአርዱዲኖ ኡኖ እና በአብዛኛዎቹ ሰሌዳዎች ላይ ፒን 2 ን ይጠቀሙ #ጥርት ፒን 6 #ጥርት NUMPIXELS 16 // ትክክለኛውን የ LEDs ቁጥር Adafruit_NeoPixel ፒክስሎች (NUMPIXELS ፣ ፒን ፣ NEO_GRB + NEO_KHZ800) ያዋቅሩ ፤ uint32_t activeColor, oldActiveColor = 0; bool dmpReady = ሐሰት; uint8_t mpuIntStatus; uint8_t devStatus; uint16_t packetSize; uint16_t fifoCount; uint8_t fifoBuffer [64]; Quaternion q; VectorFloat ስበት; ተንሳፋፊ ሽክርክሪት [3]; int x, y, z; ተለዋዋጭ bool mpuInterrupt = ሐሰት; ባዶነት dmpDataReady () {mpuInterrupt = true; } ባዶነት ማዋቀር () {Serial.begin (115200); pixels.begin (); pixels.clear (); ፒክስሎች። ቅንብር ብሩህነት (128); #ከተገለጸ (_ AVR_ATtiny85_) && (F_CPU == 16000000) የሰዓት_ቅድመ_መጠን (ሰዓት_ዲቪ_1); #endif // I2C አውቶቡስን ይቀላቀሉ (I2Cdev ቤተ -መጽሐፍት ይህንን በራስ -ሰር አያደርግም) #ከሆነ I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE Wire.begin (); Wire.setClock (400000); // 400kHz I2C ሰዓት። የማጠናቀር ችግሮች ካጋጠሙዎት ይህንን መስመር አስተያየት ይስጡ #elif I2CDEV_IMPLEMENTATION == I2CDEV_BUILTIN_FASTWIRE Fastwire:: ማዋቀር (400 ፣ እውነት) ፤ #endif ሳለ (! ተከታታይ); Serial.println (ኤፍ (“I2C መሣሪያዎችን ማስጀመር…”)); mpu.initialize (); pinMode (INTERRUPT_PIN ፣ ማስገቢያ); // ግንኙነቱን ያረጋግጡ Serial.println (ኤፍ (“የመሣሪያ ግንኙነቶችን መሞከር…”)); Serial.println (mpu.testConnection ()? F ("MPU6050 ግንኙነት ተሳካ"): F ("MPU6050 ግንኙነት አልተሳካም")); // ዝግጁ ይጠብቁ // Serial.println (ኤፍ ("\ n የ DMP ፕሮግራምን እና ማሳያውን ለመጀመር ማንኛውንም ቁምፊ ይላኩ")); // እያለ (Serial.available () && Serial.read ()); // ባዶ ቋት // እያለ (! Serial.available ()); // ውሂብን ይጠብቁ // እያለ (Serial.available () && Serial.read ()); // ባዶ ቋት እንደገና // ይጫኑ እና ዲኤምፒው Serial.println (F (“DMP ን ማስጀመር…”)); devStatus = mpu.dmpInitialize (); // የራስዎን የጂሮ ማካካሻዎች እዚህ ያቅርቡ ፣ ለደቂቃ ትብነት mpu.setXGyroOffset (0); mpu.setYGyroOffset (0); mpu.setZGyroOffset (0); mpu.setZAccelOffset (1688); // ለሙከራዬ ቺፕ // 1688 የፋብሪካ ነባሪ // መስራቱን ያረጋግጡ (እንደዚያ ከሆነ 0 ይመልሳል) (devStatus == 0) {// የመለኪያ ጊዜ - ማካካሻዎችን ያመነጩ እና የእኛ MPU6050 mpu ን ያስተካክሉ። mpu. CalibrateGyro (6); mpu. PrintActiveOffsets (); // Serial.println (F (“DMP ን ማንቃት…”)) ዝግጁ ስለሆነ ዲኤምኤፉን ያብሩ። mpu.setDMPEnabled (እውነት); // የአርዲኖ ማቋረጫ ማወቂያን ያንቁ Serial.print (F (“የማቋረጫ ማወቂያን ማንቃት (የአርዱዲኖ የውጭ መቋረጥ”))) ፤ Serial.print (digitalPinToInterrupt (INTERRUPT_PIN)) ፤ Serial.println (F (“)…”)); አባሪ ማቋረጫ (digitalPinToInterrupt (INTERRUPT_PIN) ፣ dmpDataReady ፣ RISING); mpuIntStatus = mpu.getIntStatus (); // ዋናው የ loop () ተግባሩ እሱን መጠቀም ምንም ችግር እንደሌለው ያውቃል ስለዚህ የዲኤምፒኤፍ ዝግጁ ባንዲራችንን ያዋቅሩ Serial.println (ኤፍ (“ዲኤምፒ ዝግጁ ነው! የመጀመሪያውን ማቋረጥ በመጠበቅ ላይ…”)); dmpReady = እውነት; // በኋላ ላይ ለማነጻጸር packetSize = mpu.dmpGetFIFOPacketSize () የሚጠበቀውን የ DMP ጥቅል መጠን ያግኙ። } ሌላ {// ስህተት! // 1 = የመነሻ ማህደረ ትውስታ ጭነት አልተሳካም // 2 = የዲኤምኤፍ ውቅረት ዝመናዎች አልተሳኩም // (የሚሰብር ከሆነ ብዙውን ጊዜ ኮዱ 1 ይሆናል) Serial.print (F (“DMP Initialization failed (ኮድ”))) ፤ ተከታታይ። ህትመት (devStatus); Serial.println (F (")")); }} ባዶነት loop () {((dmpReady) ከተመለሰ ፤ ከሆነ (mpu.dmpGetCurrentFIFOPacket (fifoBuffer)) {// የቅርብ ጊዜውን እሽግ ያግኙ // በዲዩብ mpu.dmpGetQuaternion (& q, fifoBuffer) ውስጥ የኢውለር ማዕዘኖችን ያሳዩ። mpu.dmpGetGravity (& ስበት ፣ & 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; ከሆነ (abs (x) <45 && abs (y) 45 && abs (x) <135 && (abs (y) 135)) {activeColor = pixels. ቀለም (255, 0, 0); // ወደ ጎን ሲዞር ቀይ} ሌላ ከሆነ (x <-45 && abs (x) <135 && (abs (y) 135)) {activeColor = pixels. Color (0, 255, 0); // አረንጓዴ ወደ ሁለተኛው ወገን ሲዞሩ} ሌላ ከሆነ (y> 45 && abs (y) <135 && (abs (x) 135)) {activeColor = pixels. Color (255, 255, 0); // ቢጫ ወደ ሶስተኛ ወገን ሲዞሩ} ሌላ ከሆነ (y <-45 && abs (y) <135 && (abs (x) 135)) {activeColor = pixels. Color (0, 0, 255); // ሰማያዊ ወደ አራተኛው ወገን ሲዞር} ሌላ (abs (y)> 135 && abs (x)> 135) {activeColor = pixels. ቀለም (0, 0, 0); // ጥቁር ሲገለበጥ}} ከሆነ (activeColor! = OldActiveColor) {pixels.clear (); pixels.fill (activeColor); pixels.show (); oldActiveColor = activeColor; }}

በመጨረሻም የ ColorCube.ino ፋይልን መክፈት እና መስቀል ይችላሉ። ጠፍጣፋ ወለል ላይ ColorCube ን ያስቀምጡ እና ያብሩት። ከተለካ (ከጥቂት ሰከንዶች) በኋላ በነጭ ቀለም ብርሃን እስኪጀምር ድረስ አይንቀሳቀሱት። በመቀጠልም ColorCube ን በጎን ላይ ማስቀመጥ እና ቀለም ይለወጣል - እያንዳንዱ ጎን የራሱ ቀለም አለው - ቀይ ፣ አረንጓዴ ፣ ሰማያዊ ፣ ቢጫ። ወደ ላይ ተገልብጦ ሲቀየር የ ColorCube ይወጣል።

ደረጃ 6 - መሰብሰብ

በመገጣጠም ላይ
በመገጣጠም ላይ
በመገጣጠም ላይ
በመገጣጠም ላይ
በመገጣጠም ላይ
በመገጣጠም ላይ

በሚሰበሰብበት ጊዜ ገር ይሁኑ። ሽቦዎች እና ሁሉም ክፍሎች ሻካራ ባህሪን አይወዱም።

አዝራር 3 ዲ የታተመ ክፍል - የታችኛውን የታተመ ክፍል (በስዕሉ ላይ እንደሚታየው) ቀዳዳውን በቀስታ ወደ ቀዳዳው ያኑሩ ፣ ሁሉንም ትርፍ ነገሮች ለማስወገድ (አብዛኛውን ጊዜ ውስጡን በ በታችኛው ክፍል ላይ የክበብ ቀዳዳ አናት)። (ፎቶ)

MPU-6050 ፣ Arduino Nano ፣ TP4056 እና MT3608 ን ወደ ቀዳዳዎቻቸው ያስገቡ። ሳጥኑ MPU-6050 እና MT3608 ን የሚያስገቡበት መወጣጫዎች አሉት። የአርዱዲኖ ናኖ እና TP4056 የዩኤስቢ ማያያዣዎችን በሳጥኑ የጎን ግድግዳዎች ላይ ወደ ቀዳዳዎቻቸው ያስገቡ። (ፎቶ)

አካላትን ለማስተካከል 3 ዲ የታተመ መቆለፊያ ይጠቀሙ (ሁሉም አካላት በጥብቅ የታችኛው ክፍል ላይ መዘርጋታቸውን ያረጋግጡ)። በጣም አስፈላጊ ነው ምክንያቱም አንድ ሰው እንደ ዳይስ ከእርስዎ ColorCube ጋር ለመጫወት ይሞክራል። (ፎቶ)

አጥብቆ ካልያዘ በባትሪው ውስጥ ባትሪ ያስቀምጡ እና ይጠብቁ።

በታችኛው ክፍል ውስጥ በተዘጋጀው ቀዳዳ ላይ የራስ-መቆለፊያ ቁልፍን ያስቀምጡ። የራስ-መቆለፊያ ቁልፍ በርቶ ቦታ ላይ መሆን አለበት (አጭር)። አዝራሩን ወደ ታች በቀስታ ይጫኑ። በ 3 ዲ የታተመ አዝራር የሙከራ ተግባር። (ፎቶዎች)

የ LED ቀለበትን ወደ መካከለኛ የታተመ ክፍል ለማስተካከል ሁለት M2 ብሎኖችን ይጠቀሙ። የሽቦ እውቂያዎች በመካከለኛው የታተመው ክፍል የተጠጋጋ ቀዳዳ ውስጥ የሚገኙበትን የቀለበት አቅጣጫን መጠቀም ጥሩ ነው። (ፎቶዎች)

እንደ አማራጭ - እዚህ እና እዚያ የሞቀ ሙጫ ጠብታ ይጠቀሙ - ለመደወል የሽቦዎች ግንኙነት ፣ በጣም ረጅም ሽቦዎች ፣ የሆነ ነገር በቂ ካልሆነ ወዘተ የእርስዎን ColorCube የበለጠ ዘላቂ ሊያደርግ ይችላል።

በታተሙ ክፍሎች እንዳይሰካ በ ColorCube ውስጥ ሽቦዎችን ያዘጋጁ። የመካከለኛውን ክፍል ወደ ታች አንድ ያድርጉት። ለማስተካከል የ M3 ሽክርክሪት ይጠቀሙ። (ፎቶ)

በመጨረሻ ከላይ የታተመውን ክፍል ወደ ታችኛው በቀስታ ይግፉት። (ፎቶ)

ደረጃ 7: ተከናውኗል

እንኳን ደስ አላችሁ። ይዝናኑ.

የሚመከር: