Mục lục:
Video: ColorCube: 7 bước (có hình ảnh)
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:31
Tôi đã làm chiếc đèn này cho cháu gái của tôi khi cháu đang học màu sắc. Tôi đã được truyền cảm hứng với dự án MagicCube nhưng cuối cùng đã tạo ra tất cả các phần từ đầu. Nó rất dễ in và dễ lắp ráp và bạn sẽ có được kiến thức về cách hoạt động của mô-đun con quay hồi chuyển.
Bước 1: Vật liệu
Phần Arduino:
- Arduino Nano (tốt hơn khi không có chân cắm đầu hàn)
- Mô-đun con quay hồi chuyển 3 trục MPU-6050
- TP4056 Mô-đun sạc pin Micro USB
- MT3608 Step Up Power Booster Module
- Pin LiPo 902936 900mA hoặc 503035 3.7V 500mA. Bạn có thể sử dụng bất kỳ pin LiPo nào có 3, 7V và kích thước nhỏ hơn 35x30x15mm nhưng bạn phải cố định pin trong lỗ.
- PS-22F28 Nút tự khóa hoặc Nút tự khóa PS-22F27 đều vừa vặn với phần được in một cách hoàn hảo.
- Vòng LED RGB WS2812B - 16 LED đường kính ngoài 68mm - bạn có thể sử dụng bất kỳ vòng nào ngay cả với số lượng đèn LED khác nhau (phải thay đổi một hằng số trong mã - #define NUMPIXELS 16) với đường kính tối đa 76mm (bạn cũng có thể sử dụng Thanh Neopixel với 8x LED hoặc bất kỳ dải LED nào có WS2812b).
Ví dụ về vòng: 8 LED 32mm12 LED 38mm12 LED 50mm16 LED 60mm24 LED 66 mm16 LED 44mm
Để dựng phim, bạn có thể sử dụng bất kỳ lỗ nào được in ở phần giữa. Chúng bao gồm hầu hết mọi tùy chọn (không cần thiết phải có vòng tròn ở giữa 100%).
Dây điện
Khối lập phương
- PLA Filament cho phần trên của khối - sử dụng màu trắng vì trong suốt không tốt (đèn LED có thể nhìn thấy và màu sắc không mịn), đề xuất của tôi là Prusament Vanilla White
- PLA Filament cho các phần dưới cùng, giữa và nút - sử dụng màu tối vì một số mô-đun Arduino có đèn ở trên cùng và nó không phù hợp với màu đèn LED hình khối, đề xuất của tôi là Prusament Galaxy Black
- Vít tự khai thác 1x M3x5 - Chiều dài (10mm) và hình dạng đầu không quan trọng - không nhìn thấy vít
- Vít tự khai thác 2x M2x3 - Chiều dài (5mm) và hình dạng đầu không quan trọng - không nhìn thấy vít
Công cụ
- máy in 3D
- Nhiều mét
- Hàn sắt
- Cái vặn vít
Bước 2: In ấn
Tất cả các phần của ColorCube được thiết kế trong Autodesk Fusion360. tệp f3d được đính kèm.
ColorCube được in trên máy in Prusa i3 MK3S với tất cả các cài đặt mặc định và tôi không mong đợi bất kỳ thay đổi cần thiết nào trên các máy in khác nhau. Sử dụng cài đặt yêu thích của bạn cho PLA (nếu được in trên PLA, không có vấn đề gì khi sử dụng PETG hoặc ASA).
Thông số in 3d:
- Lớp 0,2 mm (cài đặt CHẤT LƯỢNG 0,2 mm trên PrusaSlicer)
- Cài đặt Prusament PLA Filament trên PrusaSlicer
- Chèn 15%
- Không có hỗ trợ
- Không có vành
Bước 3: Mạch
Bước 4: Hàn
Cảnh báo: Sử dụng đồng hồ đa năng để đảm bảo rằng bộ tăng cường DC-DC MT3608 đang xuất ra 5V. Đầu tiên - trước khi đo - xoay phần cắt theo chiều kim đồng hồ đến hết (nhấp nháy). Khi kết nối điện áp (3, 7V) với đầu vào, nó phải cung cấp cho cùng một giá trị. Xoay ngược chiều kim đồng hồ (bạn sẽ cần 10-20 vòng đầy đủ) và điện áp đột ngột tăng lên. Đặt 5V trên đầu ra một cách nhẹ nhàng. (ảnh)
Hãy nhìn vào phần dưới cùng được in của khối lập phương. Mọi thành phần đều có lỗ hổng riêng. Nó xác định độ dài dây giữa mỗi thành phần mà bạn sẽ cần (không sử dụng dây quá dài nếu không bạn sẽ bị mất dây). (ảnh)
Chỉ hàn dây giữa Arduino Nano và vòng LED (3 dây: màu đỏ 5V - 5V, màu đen GND - GND, màu xanh lam D6 - DI). Chạy kiểm tra chức năng vòng LED từ chương tiếp theo. (ảnh)
Nếu mọi thứ đều ổn, tiếp tục thêm Gyro MPU6050 (5 dây: 5V - VCC màu đỏ, GND - GND màu đen, A4 - SDA xanh, A5 - SCL, D2 - INT màu vàng). Tải lên mã ColorCube.ino và kiểm tra (các thành phần khác chỉ dành cho pin và sạc). (ảnh)
Nếu tất cả OK, hãy thêm các thành phần còn lại. Chỉ có dây đỏ (+) và đen (-). Chọn chân phải trên nút tự khóa (không kết nối khi không nhấn). Kiểm tra chức năng trên pin và sạc pin. (ảnh)
Đèn LED đỏ trên TP4056 khi sạc và đèn LED xanh dương khi sạc đầy. Lỗ trên TP4056 ở phần in ở giữa truyền ánh sáng LED đến phần trên cùng của ColorCube và bạn có thể nhận ra giai đoạn sạc. (ảnh)
Bước 5: Mã
Trước hết bạn phải tải xuống các thư viện cần thiết.
Có hướng dẫn chi tiết cho thư viện Adafruit Neopixel:
Kiểm tra chức năng vòng LED: Bạn có thể kiểm tra mạch của mình bằng ví dụ có trong thư viện. Mở tệp từ File / Examples / Adafruit NeoPixels / đơn giản và tải lên (đừng quên thiết lập chính xác dòng này theo số pixel bạn đang sử dụng: #define NUMPIXELS 16).
I2Cdev và MPU6050: Tải xuống và giải nén tệp i2cdevlib-master.zip từ https://github.com/jrowberg/i2cdevlib. Sao chép biểu mẫu đã giải nén thư mục i2cdevlib-master / Arduino hai thư mục con: I2Cdev và MPU6050. Cả hai đều sao chép vào thư mục thư viện Arduino IDE (Documents / Arduino / thư viện nếu cài đặt mặc định).
Đừng quên khởi động lại Arduino IDE sau khi sao chép thư viện.
#include #ifdef _AVR_ #include // Bắt buộc đối với Adafruit Trinket 16 MHz #endif #include "Wire.h" bao gồm "I2Cdev.h" #include "MPU6050_6Axis_MotionApps20.h" MPU6050 mpu; #define INTERRUPT_PIN 2 // sử dụng chân 2 trên Arduino Uno & hầu hết các bo mạch #define PIN 6 #define NUMPIXELS 16 // Đặt đúng số lượng đèn LED 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 trọng lực; trục quay phao [3]; int x, y, z; bool dễ bay hơi mpuInterrupt = false; void dmpDataReady () {mpuInterrupt = true; } void setup () {Serial.begin (115200); pixel.begin (); pixel.clear (); pixel.setBrightness (128); #if đã xác định (_ AVR_ATtiny85_) && (F_CPU == 16000000) clock_prescale_set (clock_div_1); #endif // tham gia bus I2C (thư viện I2Cdev không tự động làm việc này) #if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE Wire.begin (); Wire.setClock (400000); // Đồng hồ I2C 400kHz. Nhận xét dòng này nếu gặp khó khăn khi biên dịch #elif I2CDEV_IMPLEMENTATION == I2CDEV_BUILTIN_FASTWIRE Fastwire:: setup (400, true); #endif while (! Serial); Serial.println (F ("Đang khởi tạo thiết bị I2C…")); mpu.initialize (); pinMode (INTERRUPT_PIN, INPUT); // xác minh kết nối Serial.println (F ("Đang kiểm tra kết nối thiết bị…")); Serial.println (mpu.testConnection ()? F ("Kết nối MPU6050 thành công"): F ("Kết nối MPU6050 không thành công")); // đợi cho sẵn sàng // Serial.println (F ("\ nGửi ký tự bất kỳ để bắt đầu lập trình DMP và demo:")); // while (Serial.available () && Serial.read ()); // bộ đệm trống // while (! Serial.available ()); // đợi dữ liệu // while (Serial.available () && Serial.read ()); // lại trống bộ đệm // tải và cấu hình DMP Serial.println (F ("Đang khởi tạo DMP…")); devStatus = mpu.dmpInitialize (); // cung cấp hiệu số con quay hồi chuyển của riêng bạn ở đây, được chia tỷ lệ cho độ nhạy tối thiểu mpu.setXGyroOffset (0); mpu.setYGyroOffset (0); mpu.setZGyroOffset (0); mpu.setZAccelOffset (1688); // Mặc định ban đầu của nhà máy 1688 cho chip thử nghiệm của tôi // đảm bảo rằng nó hoạt động (trả về 0 nếu vậy) if (devStatus == 0) {// Thời gian hiệu chỉnh: tạo hiệu số và hiệu chỉnh MPU6050 mpu. CalibrateAccel (6); mpu. CalibrateGyro (6); mpu. PrintActiveOffsets (); // bật DMP, bây giờ nó đã sẵn sàng Serial.println (F ("Bật DMP…")); mpu.setDMPEnabled (true); // cho phép phát hiện ngắt Arduino Serial.print (F ("Cho phép phát hiện ngắt (ngắt ngoài Arduino")); Serial.print (digitalPinToInterrupt (INTERRUPT_PIN)); Serial.println (F (")…")); AttachInterrupt (digitalPinToInterrupt (INTERRUPT_PIN), dmpDataReady, RISING); mpuIntStatus = mpu.getIntStatus (); // đặt cờ Sẵn sàng cho DMP của chúng ta để hàm main loop () biết là có thể sử dụng nó Serial.println (F ("DMP đã sẵn sàng! Đang đợi ngắt đầu tiên…")); dmpReady = true; // lấy kích thước gói DMP dự kiến để so sánh sau đó packetSize = mpu.dmpGetFIFOPacketSize (); } else {// LỖI! // 1 = tải bộ nhớ ban đầu không thành công // 2 = Cập nhật cấu hình DMP không thành công // (nếu nó bị hỏng, thông thường mã sẽ là 1) Serial.print (F ("Khởi tạo DMP không thành công (mã")); Serial. print (devStatus); Serial.println (F (")")); }} void loop () {if (! dmpReady) return; if (mpu.dmpGetCurrentFIFOPacket (FifoBuffer)) {// Lấy gói mới nhất // hiển thị các góc Euler theo độ mpu.dmpGetQuaternion (& q, FifoBuffer); mpu.dmpGetGravity (& trọng lực, & q); mpu.dmpGetYawPitchRoll (trục quay, & q, & trọng lực); } 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 (trục quay [0] * 180 / M_PI); x = trục quay [2] * 180 / M_PI; y = trục quay [1] * 180 / M_PI; z = trục quay [0] * 180 / M_PI; if (abs (x) <45 && abs (y) 45 && abs (x) <135 && (abs (y) 135)) {activeColor = pixel. Color (255, 0, 0); // Màu đỏ khi quay sang bên} else if (x <-45 && abs (x) <135 && (abs (y) 135)) {activeColor = pixel. Color (0, 255, 0); // Màu xanh lá cây khi chuyển sang mặt thứ hai} else if (y> 45 && abs (y) <135 && (abs (x) 135)) {activeColor = pixel. Color (255, 255, 0); // Màu vàng khi chuyển sang mặt thứ ba} else if (y <-45 && abs (y) <135 && (abs (x) 135)) {activeColor = pixel. Color (0, 0, 255); // Màu xanh lam khi chuyển sang mặt thứ tư} else if (abs (y)> 135 && abs (x)> 135) {activeColor = pixel. Color (0, 0, 0); // Màu đen khi lộn ngược} if (activeColor! = OldActiveColor) {pixel.clear (); pixel.fill (activeColor); pixel.show (); oldActiveColor = activeColor; }}
Cuối cùng, bạn có thể mở và tải lên tệp ColorCube.ino. Đặt ColorCube của bề mặt phẳng và bật nó lên. Không di chuyển nó cho đến khi nó bắt đầu sáng với màu trắng sau khi hiệu chuẩn (vài giây). Tiếp theo, bạn có thể đặt ColorCube ở bên cạnh và màu sắc sẽ thay đổi - mỗi bên đều có màu riêng - đỏ, lục, lam, vàng. ColorCube sẽ tắt khi nó bị lật ngược.
Bước 6: Lắp ráp
Hãy nhẹ nhàng trong quá trình lắp ráp. Dây và tất cả các bộ phận không thích hành vi thô bạo.
Phần nút in 3d - nút nhẹ nhàng đặt vào lỗ trên phần in dưới cùng (như hình minh họa), phải ra vào trơn tru, nếu không phải dùng dao mổ hoặc dao nhọn hoặc giấy nhám để loại bỏ hết phần thừa (phần lớn bên trong trên cùng của một lỗ hình tròn ở phần dưới cùng). (ảnh)
Đặt MPU-6050, Arduino Nano, TP4056 và MT3608 vào lỗ của chúng. Hộp có các phần nhô ra để bạn chèn MPU-6050 và MT3608. Đặt các đầu nối USB của Arduino Nano và TP4056 vào các lỗ trên thành bên của hộp. (ảnh)
Sử dụng khóa in 3d để cố định các thành phần (đảm bảo rằng tất cả các thành phần được đặt ở phần dưới cùng chặt chẽ). Điều quan trọng là vì ai đó chắc chắn sẽ cố gắng chơi với ColorCube của bạn như với xúc xắc. (ảnh)
Đặt và cố định pin vào lỗ của nó nếu nó không được giữ chặt.
Đặt nút Tự khóa vào lỗ đã chuẩn bị ở phần dưới cùng. Nút tự khóa phải ở vị trí BẬT (ngắn). Ấn nhẹ nút xuống. Kiểm tra chức năng với nút in 3d. (ảnh)
Sử dụng hai vít M2 để cố định Vòng LED vào phần in ở giữa. Tốt khi sử dụng định hướng của vòng trong đó các điểm tiếp xúc dây nằm trong lỗ tròn của phần in ở giữa. (ảnh)
Tùy chọn: Sử dụng một giọt keo nóng ở đây và ở đó - kết nối dây với vòng, đối với dây quá dài, nếu bất kỳ thứ gì không đủ chặt, v.v. Nó có thể làm cho ColorCube của bạn bền hơn.
Sắp xếp các dây bên trong ColorCube để các bộ phận in không bị chèn ép. Đặt phần giữa xuống dưới cùng. Sử dụng vít M3 để cố định nó. (ảnh)
Cuối cùng, nhẹ nhàng đẩy phần in trên xuống một phần dưới cùng. (ảnh)
Bước 7: Xong
Xin chúc mừng. Chúc vui vẻ.
Đề xuất:
Máy ảnh hồng ngoại hình ảnh nhiệt tự làm: 3 bước (có hình ảnh)
Máy ảnh hồng ngoại hình ảnh nhiệt tự làm: Xin chào! Tôi luôn tìm kiếm các Dự án mới cho các bài học vật lý của mình. Hai năm trước, tôi đã xem một báo cáo về cảm biến nhiệt MLX90614 từ Melexis. Loại tốt nhất chỉ với 5 ° FOV (trường nhìn) sẽ phù hợp với máy ảnh nhiệt tự chế
Tự làm cảm biến hình ảnh và máy ảnh kỹ thuật số: 14 bước (có hình ảnh)
Tự làm cảm biến hình ảnh và máy ảnh kỹ thuật số: Có rất nhiều hướng dẫn trực tuyến về cách xây dựng máy ảnh phim của riêng bạn, nhưng tôi không nghĩ rằng có bất kỳ hướng dẫn nào về việc xây dựng cảm biến hình ảnh của riêng bạn! Cảm biến hình ảnh có sẵn từ rất nhiều công ty trực tuyến và việc sử dụng chúng sẽ giúp thiết kế
Hình ảnh - Máy ảnh Raspberry Pi in 3D.: 14 bước (có Hình ảnh)
Hình ảnh - Máy ảnh Raspberry Pi 3D được in: Cách đây trở lại vào đầu năm 2014, tôi đã xuất bản một máy ảnh có thể hướng dẫn được gọi là SnapPiCam. Máy ảnh được thiết kế để đáp ứng với Adafruit PiTFT mới được phát hành. Đã hơn một năm trôi qua và với bước đột phá gần đây của tôi vào in 3D, tôi nghĩ rằng n
MÁY ẢNH UNICORN - Raspberry Pi Zero W NoIR Cấu hình máy ảnh 8MP: 7 bước (có hình ảnh)
UNICORN CAMERA - Raspberry Pi Zero W NoIR Camera 8MP Build: Pi Zero W NoIR Camera 8MP BuildThis hướng dẫn được tạo ra để giúp bất kỳ ai muốn có Camera hồng ngoại hoặc Camera di động thực sự tuyệt vời hoặc Camera Raspberry Pi di động hoặc chỉ muốn giải trí, heheh . Đây là cấu hình và giá cả phải chăng nhất
Ánh sáng video thân mật / Ánh sáng chụp ảnh cầm tay: 7 bước (với hình ảnh)
Ánh sáng video thân mật / Ánh sáng chụp ảnh cầm tay: Tôi biết bạn đang nghĩ gì. Bằng cách " thân mật, " Ý tôi là chiếu sáng cận cảnh trong các tình huống ánh sáng khó - không nhất thiết dành cho " các tình huống thân mật. &Quot; (Tuy nhiên, nó cũng có thể được sử dụng cho việc đó …) Là một nhà quay phim thành phố New York - hoặc