Mục lục:
- Bước 1: Thu thập tài liệu
- Bước 2: Tạo mạch
- Bước 3: Thiết kế găng tay
- Bước 4: Hàn
- Bước 5: Mã hóa
- Bước 6: Thay đổi
Video: Nhịp điệu tay: 6 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:31
Cyberglove này là về việc thực hiện đúng vào thời điểm thích hợp.
Đèn đi từ cánh tay (khuỷu tay) đến bàn tay của bạn và khi đèn đến tay bạn, bạn phải ấn các ngón tay của mình vào tế bào quang điện mini.
Nếu bạn ấn tay vào tế bào quang điện mini vào đúng thời điểm đèn led sẽ chuyển sang màu xanh lục. Nếu không, đèn led sẽ chuyển sang màu đỏ.
Bước 1: Thu thập tài liệu
- Một chiếc găng tay
- Vải để làm cho găng tay dài hơn
- Dải đèn LED WS2812B
- Dây điện
- Arduino
- Photoell nhỏ
Bước 2: Tạo mạch
Đầu tiên kết nối dải led với arduino. Bạn có thể làm điều đó bằng cách kết nối + 5v với 5v trên arduino. Din phải được kết nối với A0 trên arduino và GND phải được kết nối với GND trên arduino.
Bạn cũng phải kết nối tế bào quang điện mini với arduino thông qua kết nối với dây 5v từ dải led và từ cùng một nguồn kết nối bằng dây với PIN 6 trên arduino. Mặt còn lại của tế bào quang điện mini phải được kết nối với dây GND từ dải đèn led
Bước 3: Thiết kế găng tay
Găng tay phải có kích thước phù hợp để lắp các dải đèn led. Các đèn led phải được căn chỉnh để tạo cảm giác thú vị hơn khi nhìn vào.
Đối với trò chơi này, bạn phải sử dụng cánh tay của mình và bạn muốn có thể di chuyển tự do. Điều này có thể được thực hiện bằng cách đeo arduino vào găng tay. Tôi đã sử dụng khóa dán làm dây buộc để gắn arduino vào găng tay. Sau đó, để thiết lập sự ổn định hơn, bạn có thể đặt một sợi dây xung quanh găng tay và xung quanh arduino.
Tế bào quang điện mini đã được may bên trong găng tay để nó sẽ ở đúng vị trí.
Cuối cùng bạn phải giấu dây đi để nó trông đẹp hơn. Điều đó có thể được thực hiện với vải sẽ được may trên đầu dây.
Bước 4: Hàn
Bây giờ bạn có thể làm cho các dây kết nối từ mạch điện trở nên an toàn bằng cách hàn.
Bước 5: Mã hóa
// Một chương trình kiểm tra dải NeoPixel cơ bản hàng ngày.
// CÁC PHƯƠNG PHÁP TỐT NHẤT CỦA NEOPIXEL cho hoạt động đáng tin cậy nhất: // - Thêm 1000 UF CAPACITOR giữa các kết nối + và - của dải NeoPixel. // - TỐI THIỂU CHIỀU DÀI DÂY giữa bo mạch vi điều khiển và pixel đầu tiên. // - DỮ LIỆU TRONG của dải NeoPixel phải đi qua KHÁNG SINH 300-500 OHM. // - TRÁNH kết nối NeoPixels trên MẠCH TRỰC TIẾP. Nếu bạn phải, LUÔN LUÔN // kết nối GROUND (-) trước, sau đó +, sau đó đến dữ liệu. // - Khi sử dụng vi điều khiển 3.3V với dải NeoPixel cấp nguồn 5V, // BỘ CHUYỂN ĐỔI CẤP LOGIC trên đường dữ liệu được KHUYẾN CÁO MẠNH MẼ. // (Bỏ qua những điều này có thể hoạt động tốt trên bàn làm việc của bạn nhưng có thể không thành công trong trường)
#include #ifdef _AVR_ #include // Bắt buộc đối với Adafruit Trinket 16 MHz #endif
// Chân nào trên Arduino được kết nối với NeoPixels? // Trên Trinket hoặc Gemma, chúng tôi khuyên bạn nên thay đổi điều này thành 1: #define LED_PIN 6
// Có bao nhiêu NeoPixel được gắn vào Arduino? #define LED_COUNT 60
// Khai báo đối tượng dải NeoPixel của chúng ta: dải Adafruit_NeoPixel (LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); uint32_t color = strip. Color (127, 127, 127); // Màu trắng, đối với bool mặc định clickCorrectly = false; // Đối số 1 = Số pixel trong dải NeoPixel // Đối số 2 = Số chân Arduino (hầu hết đều hợp lệ) // Đối số 3 = Cờ loại pixel, thêm lại với nhau nếu cần: // Dòng bit NEO_KHZ800 800 KHz (hầu hết các sản phẩm NeoPixel w / Đèn LED WS2812) // NEO_KHZ400 400 KHz (pixel FLORA cổ điển 'v1' (không phải v2), trình điều khiển WS2811) // Điểm ảnh NEO_GRB được nối dây cho dòng bit GRB (hầu hết các sản phẩm NeoPixel) // Điểm ảnh NEO_RGB được nối dây cho dòng bit RGB (điểm ảnh FLORA v1, không phải v2) // Điểm ảnh NEO_RGBW được kết nối với dòng bit RGBW (sản phẩm NeoPixel RGBW)
// hàm setup () - chạy một lần khi khởi động --------------------------------
void setup () {// Những dòng này đặc biệt để hỗ trợ Adafruit Trinket 5V 16 MHz. // Bất kỳ bo mạch nào khác, bạn có thể loại bỏ phần này (nhưng không có hại gì khi bỏ nó): #if define (_ AVR_ATtiny85_) && (F_CPU == 16000000) clock_prescale_set (clock_div_1); #endif // KẾT THÚC của mã dành riêng cho Trinket.
pinMode (A0, INPUT); dải.begin (); // BAN ĐẦU đối tượng dải NeoPixel (BẮT BUỘC) dải.show (); // TẮT tất cả các pixel ASAP strip.setBrightness (10); // Đặt BRIGHTNESS thành khoảng 1/5 (max = 255)}
// hàm loop () - chạy liên tục miễn là trên bảng ---------------
void loop () {clickCorrectly = TheaterChaseOne (color); if (clickCorrectly) {color = strip. Color (0, 255, 0); } else {color = strip. Color (255, 0, 0); }}
// Một số chức năng của riêng chúng tôi để tạo hiệu ứng động -----------------
// Đèn đuổi theo phong cách rạp hát. Truyền một màu (giá trị 32-bit, // a la strip. Color (r, g, b) như đã đề cập ở trên) và thời gian trễ (tính bằng ms) // giữa các khung hình. bool TheaterChaseOne (uint32_t color) {bool đúng = false; bool clickWrong = false; for (int index = 0; index 800) {// giá trị cảm biến ánh sáng if (index <16) {// 2 led trước khi kết thúc thì bạn có thể nhấp vào color = strip. Color (255, 0, 0); // led màu đỏ được clickWrong = true; // nhấp nhầm thì led chuyển sang màu đỏ} else if (! clickWrong) {// nếu không nhầm color = strip. Color (0, 255, 0); // đèn led màu xanh đúng = true; // bấm đúng thì đèn led chuyển sang màu xanh lục}} strip.clear (); dải.setPixelColor (17 - chỉ số, màu sắc); // đèn led hàng đầu tiên dải.setPixelColor (18 + index, color); // đèn led hàng thứ hai dải.setPixelColor (53 - chỉ mục, màu); // đèn led hàng thứ ba dải.show (); chậm trễ (300); } trả về đúng; }
Bước 6: Thay đổi
Tôi đã thực hiện một số thay đổi. Đầu tiên, tôi đã ẩn arduino để sử dụng "Rythm hand" sẽ thoải mái hơn và thứ hai, tôi đã thay đổi mã một chút. Tôi đã thay đổi mã để khi bạn nhấn vào đúng thời điểm, màu sẽ chuyển sang màu xanh lục và đèn LED di chuyển nhanh hơn. Bằng cách đó, đèn LED Swill trở nên nhanh hơn 10% so với trước đây. Điều này làm cho trò chơi thú vị hơn
Đây là cách mã hiện tại:
// Một chương trình kiểm tra dải NeoPixel cơ bản hàng ngày. // CÁC PHƯƠNG PHÁP TỐT NHẤT CỦA NEOPIXEL cho hoạt động đáng tin cậy nhất: // - Thêm 1000 UF CAPACITOR giữa các kết nối + và - của dải NeoPixel. // - TỐI THIỂU CHIỀU DÀI DÂY giữa bo mạch vi điều khiển và pixel đầu tiên. // - DỮ LIỆU VÀO của dải NeoPixel phải đi qua KHÁNG SINH 300-500 OHM. // - TRÁNH kết nối NeoPixels trên MẠCH TRỰC TIẾP. Nếu bạn phải, LUÔN LUÔN // kết nối GROUND (-) trước, sau đó +, sau đó đến dữ liệu. // - Khi sử dụng vi điều khiển 3.3V với dải NeoPixel cấp nguồn 5V, // BỘ CHUYỂN ĐỔI CẤP LOGIC trên đường dữ liệu được KHUYẾN CÁO MẠNH MẼ. // (Bỏ qua những điều này có thể hoạt động tốt trên bàn làm việc của bạn nhưng có thể không thành công trong trường) #include #ifdef _AVR_ #include // Bắt buộc đối với Adafruit Trinket 16 MHz #endif // Chân nào trên Arduino được kết nối với NeoPixels? // Trên Trinket hoặc Gemma, chúng tôi khuyên bạn nên thay đổi điều này thành 1: #define LED_PIN 6 // Có bao nhiêu NeoPixels được gắn vào Arduino? #define LED_COUNT 60 // Khai báo đối tượng dải NeoPixel của chúng tôi: dải Adafruit_NeoPixel (LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); uint32_t color = strip. Color (127, 127, 127); // Màu trắng, đối với bool mặc định clickCorrectly = false; int index = 0; int khoảng = 300; int kết quả = 0; unsigned long beforeMs = millis (); // Đối số 1 = Số pixel trong dải NeoPixel // Đối số 2 = Số chân Arduino (hầu hết đều hợp lệ) // Đối số 3 = Cờ loại pixel, thêm lại với nhau nếu cần: // Dòng bit NEO_KHZ800 800 KHz (hầu hết các sản phẩm NeoPixel w / Đèn LED WS2812) // NEO_KHZ400 400 KHz (pixel FLORA cổ điển 'v1' (không phải v2), trình điều khiển WS2811) // Điểm ảnh NEO_GRB được nối dây cho dòng bit GRB (hầu hết các sản phẩm NeoPixel) // Điểm ảnh NEO_RGB được nối dây cho dòng bit RGB (điểm ảnh FLORA v1, không phải v2) // Điểm ảnh NEO_RGBW được kết nối với dòng bit RGBW (sản phẩm NeoPixel RGBW) // chức năng setup () - chạy một lần khi khởi động -------------------- ------------ void setup () {// Những dòng này đặc biệt để hỗ trợ Adafruit Trinket 5V 16 MHz. // Bất kỳ bo mạch nào khác, bạn có thể loại bỏ phần này (nhưng không có hại gì khi bỏ nó): #if define (_ AVR_ATtiny85_) && (F_CPU == 16000000) clock_prescale_set (clock_div_1); #endif // KẾT THÚC của mã dành riêng cho Trinket. Serial.begin (9600); while (! nối tiếp) {; // đợi cổng nối tiếp kết nối. Chỉ cần cho cổng USB gốc} pinMode (A0, INPUT); dải.begin (); // BAN ĐẦU đối tượng dải NeoPixel (BẮT BUỘC) dải.show (); // TẮT tất cả các pixel ASAP strip.setBrightness (10); // Đặt BRIGHTNESS thành khoảng 1/5 (max = 255)} // hàm loop () - chạy nhiều lần miễn là trên bảng --------------- void loop () {unsigned long currentMs = millis (); // Lấy thời gian hiện tại int value = analogRead (A0); // Đọc cảm biến ánh sáng hiện tại if (value> 900 && result == 0) {// Nếu cảm biến được nhấn và chưa ghi kết quả nào, hãy kích hoạt chụp kết quả if (index = khoảng) {// Kiểm tra xem hiện tại vòng lặp vượt quá khoảng trước đóMs = currentMs; // Đặt khoảng thời gian mới thành thời gian hiện tại + chỉ số khoảng thời gian + = 1; // Đặt các led thêm một bước trong vòng lặp if (index> 17) {// Kích hoạt kết thúc xử lý vòng lặp index = 0; if (result == 2) {// Trên một khoảng kết quả đúng = (int) max ((khoảng * 0.95), 50); // Tăng tốc 10%, giảm xuống khoảng 50ms / color = strip. Color (0, 255, 0); // Đặt đèn led thành màu xanh lục} else if (result == 1) {// Trên khoảng kết quả không chính xác = 300; // Đặt lại khoảng màu = dải. Color (255, 0, 0); // Đặt đèn led thành màu đỏ} else {// Không bắt được kết quả nào color = strip. Color (255, 0, 0); // Đặt các led thành red} result = 0; // Đặt lại kết quả cho vòng lặp tiếp theo} TheaterChaseOne (color, index); // Bật đèn led hiển thị. }} // Một số chức năng của riêng chúng tôi để tạo hiệu ứng động ----------------- // Đèn đuổi theo phong cách rạp hát. Truyền một màu (giá trị 32-bit, // a la strip. Color (r, g, b) như đã đề cập ở trên) và thời gian trễ (tính bằng ms) // giữa các khung hình. void TheaterChaseOne (uint32_t color, int index) {strip.clear (); dải.setPixelColor (17 - chỉ số, màu sắc); // đèn led hàng đầu tiên dải.setPixelColor (18 + index, color); // đèn led hàng thứ hai dải.setPixelColor (53 - chỉ mục, màu); // đèn led hàng thứ ba dải.show (); }
Đề xuất:
Cảm biến nhịp tim sử dụng Arduino (Theo dõi nhịp tim): 3 bước
Cảm biến nhịp tim sử dụng Arduino (Máy theo dõi nhịp tim): Cảm biến nhịp tim là một thiết bị điện tử được sử dụng để đo nhịp tim, tức là tốc độ của nhịp tim. Theo dõi nhiệt độ cơ thể, nhịp tim và huyết áp là những điều cơ bản mà chúng ta làm để giữ cho mình khỏe mạnh
Bộ điều khiển trò chơi nhịp điệu Arduino (dành cho trò chơi của riêng tôi): 6 bước
Bộ điều khiển trò chơi nhịp điệu Arduino (cho Trò chơi của riêng tôi): Trong phần hướng dẫn này, tôi sẽ chỉ cho bạn cách tôi tạo Bộ điều khiển trò chơi nhịp điệu này từ đầu. Nó liên quan đến các kỹ năng chế biến gỗ cơ bản, kỹ năng in 3d cơ bản và kỹ năng hàn cơ bản. Bạn có thể xây dựng dự án này thành công nếu bạn không có
Đo nhịp tim của bạn ở đầu ngón tay: Phương pháp chụp ảnh quang tuyến để xác định nhịp tim: 7 bước
Đo nhịp tim của bạn ngay trên đầu ngón tay: Phương pháp chụp ảnh quang tuyến để xác định nhịp tim: Máy đo quang tuyến (PPG) là một kỹ thuật quang học đơn giản và chi phí thấp thường được sử dụng để phát hiện những thay đổi về thể tích máu trong lớp vi mạch của mô. Nó chủ yếu được sử dụng không xâm lấn để thực hiện các phép đo trên bề mặt da, thường là
ESP8266 RGB LED STRIP Điều khiển WIFI - NODEMCU làm điều khiển từ xa hồng ngoại cho dải đèn Led được điều khiển qua Wi-Fi - Điều khiển điện thoại thông minh RGB LED STRIP: 4 bước
ESP8266 RGB LED STRIP Điều khiển WIFI | NODEMCU làm điều khiển từ xa hồng ngoại cho dải đèn Led được điều khiển qua Wi-Fi | Điều khiển bằng điện thoại thông minh RGB LED STRIP: Xin chào các bạn trong hướng dẫn này, chúng ta sẽ học cách sử dụng gật đầu hoặc esp8266 làm điều khiển từ xa IR để điều khiển dải LED RGB và Nodemcu sẽ được điều khiển bằng điện thoại thông minh qua wifi. Vì vậy, về cơ bản bạn có thể điều khiển DÂY CHUYỀN LED RGB bằng điện thoại thông minh của mình
Vẫy tay để điều khiển cánh tay robot OWI Không có dây đính kèm: 10 bước (có hình ảnh)
Vẫy tay để điều khiển Cánh tay robot OWI … Không có dây đính kèm: Ý tưởng: Có ít nhất 4 dự án khác trên Guiductables.com (kể từ ngày 13 tháng 5 năm 2015) xoay quanh việc sửa đổi hoặc điều khiển Cánh tay robot OWI. Không có gì đáng ngạc nhiên, vì nó là một bộ robot tuyệt vời và rẻ tiền để chơi cùng. Dự án này tương tự trong s