Mục lục:

Arduino Cradle Rocker: 19 bước (có hình ảnh)
Arduino Cradle Rocker: 19 bước (có hình ảnh)

Video: Arduino Cradle Rocker: 19 bước (có hình ảnh)

Video: Arduino Cradle Rocker: 19 bước (có hình ảnh)
Video: 4 Atmega32 Assembly Tutorial- Hello World in ATmega32 Assembly and Table Processing Instructions 2024, Tháng mười một
Anonim
Image
Image

Xin lỗi, tôi không thể cưỡng lại thứ âm nhạc dữ dội ngô nghê mà điều chỉnh sửa video của tôi đề xuất.

Gần đây tôi đã có đứa con đầu lòng và đã có một chiếc nôi bằng gỗ mà chú tôi (một người thợ làm đồ gỗ tuyệt vời) đã làm cho cháu trai tôi. Cháu trai của tôi đã lớn hơn nó từ lâu, vì vậy tôi rất vui khi nhận nó và tránh tiêu TẤT CẢ TIỀN vào bất cứ chiếc nôi / nôi mà các blogger mẹ đã khiến vợ tôi ngất ngây. Nôi có thiết kế khá đơn giản, về cơ bản là hai giá đỡ thẳng đứng với các chốt xuyên qua chúng để hỗ trợ thân nôi. Có một chốt có thể tháo rời để khóa nó tại chỗ.

Trong vòng vài tuần, chúng tôi nhận thấy rằng chúng tôi thường có thể làm dịu cơn quấy khóc nhẹ bằng cách đung đưa nôi một chút cho đến khi cậu bé của chúng tôi ổn định. Vào cái đêm mà chúng tôi phát hiện ra điều này, tôi đã dành vài phút nằm dài vài 10 phút vào ban đêm với cánh tay vươn từ dưới chăn ra, đung đưa anh ấy một cách buồn ngủ, hạnh phúc vì tôi đã tìm ra cách để xoa dịu anh ấy mà không cần tự mình ra khỏi giường. buổi sáng, tôi gắn một sợi dây và một ít carabiner để tôi có thể lắc lư chiếc nôi mà không cần phải duỗi tay ra.

Buổi sáng hôm sau, tôi bắt đầu nghĩ cách để chỉ có một con robot đá cho đứa trẻ này cho tôi. Nhập Arduino…

Quân nhu

Được rồi, đây là dự án Arduino đầu tiên của tôi, vì vậy tôi đã thực hiện một số thử nghiệm và thử và sai, và tôi chắc chắn rằng có chỗ để cải thiện thiết kế của mình, nhưng đây là danh sách phần của tôi: Arduino Uno ($ 13) để kiểm soát mọi thứ kit ($ 10) để kết nối dây

Động cơ bước ($ 14) Đây là tác phẩm thú vị nhất, bởi vì nó là thứ thực hiện tất cả công việc. Tôi bắt đầu với một trình điều khiển mô-men xoắn thấp hơn một chút, nhưng sau đó đã nhận được cái này và nó hoạt động khá tốt. Hãy thoải mái để có được một cái thậm chí còn mạnh mẽ hơn. Trình điều khiển động cơ bước ($ 10-30) Cái này nằm giữa Arduino và động cơ. Chiếc cụ thể này rõ ràng có thể điều khiển động cơ yên tĩnh hơn một số chiếc khác, vì vậy tôi đã đi với điều đó vì động cơ sẽ cách đầu tôi (và con trai tôi) vài feet khi chúng tôi đang ngủ. Ban đầu tôi chỉ mua một trình điều khiển TMC2209 với giá ~ 10 đô la, nhưng cuối cùng đã mua một gói 4 vì tôi gặp một số khó khăn lúc đầu và muốn đảm bảo rằng tôi đã không làm hỏng bảng mạch tại một số điểm. Tôi đã thực sự giết được 3 bảng, điều này đưa tôi đến mục tiếp theo của tôi… Tụ điện! (10 đô la) Bạn thực sự chỉ cần 1 tụ điện 47 uF 50V, vì vậy hộp 240 này là quá mức cần thiết. Nguồn điện 36V (17 đô la) Ban đầu tôi mua một nguồn cung cấp 12V nhỏ, sau đó phát hiện ra rằng đó là nguồn gốc của tất cả các rắc rối của tôi và có một cái gần với điện áp tối đa mà động cơ bước của tôi có thể xử lý. Nếu bạn sử dụng một động cơ hoặc trình điều khiển bước khác, hãy đảm bảo rằng nó có thể xử lý điện áp (V) và cường độ dòng điện (A) của nguồn cung cấp ít nhất phải cao bằng Ampe đỉnh do động cơ vẽ. $ 8) Đây là những gì nguồn điện cắm vào. Bạn sẽ cần hàn những thứ này vào một số dây để gắn vào breadboard của bạn.

Các nút ($ 8) để bật / tắt, v.v.

Một bộ khuếch đại micrô ($ 11) Ồ, các bạn không biết cái này cũng đã được kích hoạt bằng âm thanh à?

Một số bánh xe ròng rọc nhỏ ($ 8) Tôi đã kết thúc sử dụng những thứ này, nhưng có thể có những lựa chọn thay thế tốt hơn. Bạn cũng sẽ cần một mỏ hàn và bất cứ thứ gì bạn muốn sử dụng để gắn động cơ. Cá nhân tôi chỉ làm một chiếc hộp thô từ 4 miếng gỗ được vặn với nhau, và sau đó vặn chúng vào một miếng gỗ khác có chiều rộng gần bằng chiều rộng của chân nôi của tôi. Bây giờ tôi chỉ có nó với nó bởi vì tôi không biết liệu tôi có muốn cưới cái nôi của chú tôi hay không.

Bước 1: Tự làm quen với Sơ đồ trình điều khiển bước của bạn

Nối Arduino 5V / GND vào Breadboard của bạn
Nối Arduino 5V / GND vào Breadboard của bạn

Chương trình mô hình mà tôi đã sử dụng không có bảng điều khiển chính xác này, vì vậy bạn sẽ phải tham khảo hình ảnh này. Tôi đã sắp xếp mọi thứ theo cùng một hướng như hình ảnh này.

Bước 2: Nối Arduino 5V / GND vào Breadboard của bạn

Kết nối dây từ Arduino 5V với thanh "+" trên một mặt của bảng mạch của bạn Kết nối dây từ một trong các Arduino GND với thanh "-" trên cùng một phía của bảng mạch

(bỏ qua

Bước 3: Kết nối +/- Rails với VIO / GND

Kết nối +/- Rails với VIO / GND
Kết nối +/- Rails với VIO / GND

Kết nối dây từ thanh ray "-" với GND ở phía dưới bên trái của bảng điều khiển bước. Kết nối dây từ thanh ray "+" với VIO

Bước 4: Kết nối DIR / STEP với các Ghim kỹ thuật số trên Arduino

Kết nối DIR / STEP với các Ghim kỹ thuật số trên Arduino
Kết nối DIR / STEP với các Ghim kỹ thuật số trên Arduino

Kết nối các chân DIR và STEP từ bảng điều khiển bước với hai trong số các chân kỹ thuật số trên Arduino. Tôi đã sử dụng các chân 2 và 3 tương ứng, nhưng nó không quan trọng miễn là bạn đặt các chân trong mã của mình sau này.

Bước 5: Hãy đi về phía trước và thêm tụ điện đó…

Hãy đi về phía trước và thêm tụ điện đó…
Hãy đi về phía trước và thêm tụ điện đó…

Tôi đã đốt cháy 2 bảng trình điều khiển bước vì tôi không có tụ điện tại chỗ, vì vậy hãy tiếp tục và thêm tụ điện 47uF 50V vào các chân VM / GND trên bảng điều khiển. Đảm bảo chân "-" trên tụ điện nằm trong chân GND trên bảng mạch (sẽ có dấu "-" ở phía tương ứng của tụ điện)

Bước 6: Và đi về phía trước và kết nối GND đó

Và đi về phía trước và kết nối GND đó
Và đi về phía trước và kết nối GND đó

Trên GND mà bạn vừa thêm tụ điện vào, hãy tiếp tục và kết nối tụ điện đó với cùng một đường ray "-" như GND khác.

Bước 7: Kết nối động cơ với trình điều khiển

Kết nối Động cơ với Trình điều khiển
Kết nối Động cơ với Trình điều khiển

Chân nào đi đâu sẽ phụ thuộc vào động cơ bạn mua, nhưng cái mà tôi liệt kê có sơ đồ đấu dây trên danh sách amazon.

Đối với động cơ của tôi -

Kết nối Xanh lục & Đen với M2B & M2A

Kết nối Red & Blue với M1A & M1BNLưu ý: Nếu vì lý do gì đó mà động cơ của bạn không có sơ đồ, bạn có thể dễ dàng tìm ra dây dẫn nào tạo thành mạch nếu bạn có đồng hồ vạn năng. Đặt đồng hồ vạn năng của bạn thành cài đặt amp thấp và ngắt kết nối động cơ của bạn. Chạm vào một trong các dây dẫn của đồng hồ vạn năng với một trong các dây của động cơ, sau đó thử từng dây khác với dây dẫn còn lại. Nếu bạn nhận được số đọc về điện trở, thì hai dây đó tạo thành 1 mạch, và hai dây kia tạo thành mạch kia.

Bước 8: Kết nối EN, MS1 và MS2 với "-"

Kết nối EN, MS1 và MS2 với
Kết nối EN, MS1 và MS2 với

Tôi không hoàn toàn chắc chắn rằng điều này là cần thiết, nhưng tôi tin rằng nó đặt động cơ thành cài đặt microstep nhỏ hơn trên trình điều khiển TMC2209. Bạn có thể kết nối chúng với đường ray "-" đường ray gần nhất, vì chúng tôi sẽ kết nối nó với phía bên kia sau này.

Bước 9: Hàn một đầu nối nguồn nữ vào hai dây

Hàn một đầu nối nguồn nữ với hai dây
Hàn một đầu nối nguồn nữ với hai dây

Tôi không phải là người giỏi nhất thế giới về hàn, vì vậy bạn sẽ cần phải tìm kiếm nơi khác cho điều đó, nhưng tôi đã làm như vậy. Tôi uốn cong các đầu của dây để chúng nằm phẳng so với các đầu nối của đầu nối, sau đó hàn dây vào dây dẫn. Tôi không có bất kỳ thứ gì để co nhiệt cho dây nên tôi chỉ quấn chúng một cách kỳ công bằng băng dính điện.

Bước 10: Kết nối đầu nối nữ mới được hàn của bạn

Kết nối đầu nối nữ mới được hàn của bạn
Kết nối đầu nối nữ mới được hàn của bạn

Vui lòng không cắm nguồn điện thực tế của bạn. Dây màu đỏ thành "+", màu đen thành "-"

Bước 11: Kết nối chúng với VM / GND

Kết nối chúng với VM / GND
Kết nối chúng với VM / GND

Kết nối các đường ray "+" và "-" đó với VM và GND bên cạnh nó. Những cái có tụ điện trên đó.

Bước 12: Chiêm ngưỡng tác phẩm thủ công của bạn

Chiêm ngưỡng tác phẩm thủ công của bạn
Chiêm ngưỡng tác phẩm thủ công của bạn

Được rồi, bây giờ bạn đã thiết lập xong động cơ và trình điều khiển! Từ đây trở đi, chúng tôi sẽ chỉ thực hiện kiểm soát. Nhân tiện, tiếp tục:

  • Nếu bạn đã ngắt kết nối trình điều khiển của mình vì bất kỳ lý do gì, đừng cố kết nối nó trong khi nguồn 36V của bạn được cắm vào. Tôi đã giết bo mạch trình điều khiển thứ 3 của mình như vậy.
  • Cắm nguồn 36V trước khi cắm nguồn Arduino. Cá nhân tôi không sử dụng Arduino, nhưng trên đường đi, tôi đã thấy nhiều cảnh báo về điều này.

Bước 13: Tùy chọn - Kiểm tra VREF của bạn

TMC2209 có chiết áp điều khiển dòng điện đến động cơ. Nếu bạn có cùng một trình điều khiển mà tôi đã làm, bạn có thể đọc về điều đó ở đây. Nếu bạn muốn điều chỉnh cài đặt:

  • Ngắt tất cả nguồn điện và ngắt kết nối dây động cơ khỏi trình điều khiển.
  • Ngắt kết nối dây với chân EN (bật) trên trình điều khiển. Đây là ghim ở góc trên cùng bên trái.
  • Cắm nguồn điện động cơ của bạn (loại 36V)
  • Sử dụng đồng hồ vạn năng đặt trên 20V, chạm vào một dây dẫn với nguồn GND (tôi đã sử dụng dây nối với đường ray "-" của mình) và chạm vào dây dẫn còn lại với chân VREF. Vui lòng không chạm vào dây dẫn với bất kỳ thứ gì khác, bạn CÓ THỂ rút ngắn trình điều khiển của mình nếu bạn làm vậy.
  • Sử dụng tuốc nơ vít nhỏ để điều chỉnh vít chiết áp một cách nhẹ nhàng. Đối với bảng của tôi, ngược chiều kim đồng hồ = nhiều điện hơn. VREF của tôi cá nhân đọc ~ 0,6V.

Bước 14: Các nút

Nút!
Nút!

Tiếp theo, kết nối các nút của bạn như vậy. Họ không cần quyền lực.

  • Kết nối đường ray "-" của bảng mạch nút của bạn với một trong các GND của Arduino. Bạn cũng có thể chỉ cần xích nó ra khỏi đường ray "-" của breadboard khác nếu bạn muốn.
  • Kết nối một chốt của mỗi nút với đường ray "-"
  • Kết nối một chân khác của mỗi nút với một chân kỹ thuật số trên Arduino.

Tôi đã sử dụng 4 nút: Bật / tắt động cơ

Tiếp tục động cơ

Bật micrô

Micrô tắt

Thông tin thêm về những điều này khi chúng tôi nhận được mã, nhưng tôi đã sử dụng các nút micrô riêng biệt đơn giản vì tôi không có đèn LED để cho tôi biết micrô đang bật hay tắt, vì vậy việc có các nút bật / tắt riêng biệt khiến nó trở nên dễ hiểu.

Bước 15: Thêm Bảng Micrô

Thêm Bảng Micrô
Thêm Bảng Micrô

Cái này đơn giản và Adafruit có hướng dẫn tốt (và những điều cơ bản về hàn!) Ở đây.

  • Kết nối "-" với GND
  • Kết nối GND trên bảng micrô với "-" (bạn có thể kết nối trực tiếp GND với GND và bỏ qua bước trước đó)
  • Kết nối VCC với nguồn 3.3V trên Arduino. Điều này rất quan trọng vì nguồn điện này ít "ồn" hơn 5V, dẫn đến khả năng đọc micrô tốt hơn
  • Kết nối OUT với chân ANALOG IN trên Arduino. Tôi đã sử dụng A0.

Bước 16: Đây sẽ là kết quả cuối cùng

Đây sẽ là kết quả cuối cùng!
Đây sẽ là kết quả cuối cùng!
Đây sẽ là kết quả cuối cùng!
Đây sẽ là kết quả cuối cùng!

Mọi thứ đã sẵn sàng ngay bây giờ. Đây là hình ảnh của sơ đồ cuối cùng và mớ dây nhợ của tôi trong thực tế. Hãy xem một số mã!

Bước 17: Mã

Ok chúng ta hãy nhìn vào mã! Đây không phải là công việc sạch sẽ nhất của tôi, nhưng nó đã hoàn thành công việc. Tôi đã thêm các nhận xét để giải thích mọi thứ ở đây, nhưng hãy chịu khó, tôi đã sử dụng Arduino IDE cho tất cả những điều này (có sẵn trên Windows và Mac miễn phí) Cái jist là thế này: Đặt tốc độ động cơ và khoảng cách để quay.

Đặt một số tảng đá (xích đu) để làm.

Xoay khoảng cách đã đặt cho 1 lần xoay người. Đung đưa một số lần nhất định.

Giữa tất cả những điều đó, hãy để ý các lần nhấn nút hoặc lắng nghe micrô để xem liệu động cơ có bật không. Bạn sẽ cần điều chỉnh các giá trị tốc độ, khoảng cách và độ nhạy mic. Tốc độ động cơ sẽ ảnh hưởng đến âm lượng và mô-men xoắn. Động cơ chạy càng nhanh, tiếng ồn càng lớn và mô-men xoắn bạn nhận được càng ít. Của tôi hiện gần như im lặng, vì vậy có thể làm cho nó chạy mà không tạo ra nhiều âm thanh.

#include // thư viện động cơ bước "tiêu chuẩn"

// # define DEBUG 1 // bỏ ghi chú điều này khi bạn muốn điều chỉnh mức micrô // Thiết lập nút - các nút này tương ứng với vị trí các chân kỹ thuật số bạn đã kết nối với các nút const int motorEnablePin = 10; const int continuePin = 11; const int micDisablePin = 12; const int micEnablePin = 13; // Thiết lập micrô - A0 ở đây là tín hiệu tương tự cho micrô. Cửa sổ mẫu tính bằng mili giây const int micPin = A0; const int sampleWindow = 1000; mẫu int không dấu; bool micEnabled = false; mic kép Độ nhạy = 0,53; // có thể bạn sẽ cần thay đổi điều này // Đối với tôi, khoảng.5 là đủ tốt để không phát ra tiếng kêu nhỏ // nhưng sẽ kích hoạt khi có tiếng kêu nhỏ int stepPerRevolution = 3200; // thay đổi điều này để phù hợp với số bước trên mỗi vòng quay cho động cơ của bạn // Động cơ của tôi là 200 bước / vòng quay // Nhưng tôi đặt trình điều khiển thành 1/16 micro bước // vậy 200 * 16 = 3200… thành thật không biết nếu điều này là cách thích hợp // để thực hiện điều này Stepper myStepper (stepsPerRevolution, 2, 3); // 2 & 3 là các chân DIR & STEP int stepCount = 0; int motorSpeed = 95; // bạn sẽ cần điều chỉnh giá trị này theo cân nặng của nôi & em bé int numSteps = 90; // Quãng đường động cơ sẽ di chuyển. // Bạn sẽ cần điều chỉnh điều này dựa trên bán kính của bánh xe mà bạn gắn // vào động cơ của mình. Điều này và tốc độ có thể sẽ được thử và sai. // Lưu ý - tốc độ cao hơn trên động cơ bước = mô-men xoắn hiệu dụng thấp hơn // Nếu bạn không có đủ mô-men xoắn, động cơ của bạn sẽ bỏ qua các bước (không di chuyển) int oldmotorButtonValue = HIGH; bool được kích hoạt = false; // động cơ được kích hoạt? int loopStartValue = 0; int maxRocks = 100; // bạn muốn nó rung lên bao nhiêu lần trước khi tắt int rockCount = 0; void setup () {#ifdef DEBUG Serial.begin (9600); // để ghi nhật ký gỡ lỗi #endif pinMode (motorEnablePin, INPUT_PULLUP); // Đây là cài đặt để các nút hoạt động mà không cần nguồn pinMode (continuePin, INPUT_PULLUP); pinMode (micEnablePin, INPUT_PULLUP); pinMode (micDisablePin, INPUT_PULLUP); myStepper.setSpeed (motorSpeed); // đặt tốc độ động cơ theo mức bạn đã chỉ định trước đó} void loop () {int motorButtonValue = digitalRead (motorEnablePin); // digitalRead chỉ đọc các giá trị của nút int continueValue = digitalRead (continuePin); // Thao tác này sẽ phát hiện thao tác nhấn nút của động cơ và ngăn nó kích hoạt nhiều hơn một lần cho mỗi lần nhấp nếu (motorButtonValue == HIGH && oldmotorButtonValue == LOW) {enable =! Enable; } Kiểm tra mic(); // Nếu động cơ đang tắt và micrô đang bật, hãy lắng nghe tiếng trẻ khóc if (! Enable && micEnabled) {if (getMicReading ()> = micSensuality) enable = true; } if (đã bật) {stepsPerRevolution = stepsPerRevolution * -1; // đảo ngược hướng // Với thiết lập của tôi, việc đảo ngược trên // lần xoay đầu tiên sẽ hiệu quả hơn. Bạn có thể đặt cái này sau vòng lặp // nếu đó không phải là trường hợp của bạn // quay động cơ khoảng cách được chỉ định ở trên cho (int i = loopStartValue; i <numSteps; i ++) {// kiểm tra tắt int tempmotorButtonValue = digitalRead (motorEnablePin); if (tempmotorButtonValue! = motorButtonValue) {rockCount = 0; // Hai dòng tiếp theo này "lưu" vị trí động cơ, để lần sau bạn bật nó lên // nó sẽ tiếp tục di chuyển như thể bạn chưa tắt. Điều này ngăn chặn việc ném ra // khoảng cách di chuyển của bạn loopStartValue = i; // lưu các bước vị tríPerRevolution = stepsPerRevolution * -1; // duy trì hướng oldmotorButtonValue = tempmotorButtonValue; nghỉ; } checkContinue (continueValue); // kiểm tra xem nút tiếp tục đã được nhấn micCheck (); myStepper.step (stepsPerRevolution / 50); // có bao nhiêu bước cần thực hiện cho mỗi vòng lặp, // bạn có thể cần điều chỉnh điều này // đảm bảo rằng chúng tôi tiếp tục khoảng cách vòng lặp đầy đủ nếu vòng lặp kết thúc // điều này có tác dụng nếu bạn tự tắt động cơ và nó "cứu" vị trí if (i == numSteps - 1) {loopStartValue = 0; }}} delay (100); // tạm dừng 100 mili trước khi thực hiện lần đá tiếp theo. Bạn sẽ cần phải điều chỉnh điều này. if (đã bật) checkComplete (); oldmotorButtonValue = motorButtonValue; // mã này được sử dụng để ngăn nhấp chuột hai lần} // Mã này trực tiếp từ Adafruit. double getMicReading () {unsigned long startMillis = millis (); unsigned int peakToPeak = 0; // mức đỉnh-đến-đỉnh không dấu int signalMax = 0; không dấu int signalMin = 1024; while (millis () - startMillis <sampleWindow) {micCheck (); if (digitalRead (motorEnablePin) == LOW) được kích hoạt = true; mẫu = analogRead (micPin); if (signalMax mẫu) {signalMax = sample; // chỉ lưu các mức tối đa} else if (mẫu = maxRocks) {đã bật = false; rockCount = 0; // quay lại vị trí giữa

for (int i = loopStartValue; i <numSteps / 2; i ++) {

myStepper.step (stepsPerRevolution * -1 / 50); // bước 1/100 của một cuộc cách mạng:

}

} }

Bước 18: Lắp đặt & Thiết lập bánh xe

Lắp đặt & Thiết lập Bánh xe
Lắp đặt & Thiết lập Bánh xe

Đây vẫn là một WIP đối với tôi, vì như tôi đã nói, tôi không chắc mình muốn lắp vít vào giá đỡ của mình.

  • Đặt một cái kẹp để đóng vai trò như một cánh tay rời khỏi giá đỡ để bánh xe của tôi có thể kéo theo một đường thẳng
  • Bắt vít với nhau một hộp thô để đặt động cơ vào và vặn nó vào một tấm đế, mà tôi đã kẹp vào chân đế
  • Tạo một bánh xe ròng rọc bằng gỗ tùy chỉnh với một lỗ để lắp bánh xe ròng rọc bước nhỏ bên trong. Tôi đã làm cho lỗ trung tâm rất chặt chẽ và chỉ được uốn trong bánh xe ròng rọc bước. Tôi khoan một lỗ xuyên qua bánh xe ở giữa để tôi có thể tiếp cận con vít trên bánh xe ròng rọc kim loại để siết chặt nó vào động cơ bước.
  • Ran một dây từ "cánh tay" của cái nôi đến bánh xe. Tôi đã cố định sợi dây bằng cách luồn nó qua lỗ mà tôi đã khoan và chỉ cần dán nó vào vị trí.

Giải pháp tốt hơn cho bước thứ 3 là ngay từ đầu chỉ cần mua một bánh xe ròng rọc có đường kính lớn hơn. Của tôi có đường kính dưới 3 một chút bên trong rãnh và hoạt động thực sự tốt cho chiếc nôi cụ thể của tôi.

Phiên bản đầu tiên của tôi sử dụng một cánh tay thay vì một bánh xe. Nó gần như không hoạt động vì lực không được tác dụng theo một hướng nhất quán và nó cũng thực sự dễ bị văng ra nếu vị trí xuất phát không chính xác. Sử dụng một bánh xe giải quyết những vấn đề đó. Tôi cũng giải trí bằng cách sử dụng một hệ thống ròng rọc nhỏ, nhưng cuối cùng không cần vì bánh xe của tôi đã cho tôi đủ mô-men xoắn.

Bước 19: Thiết lập cuối cùng

Thiết lập cuối cùng
Thiết lập cuối cùng

Gắn micrô gần với con bạn, nhưng ở nơi mà chúng sẽ không chạm vào bất kỳ dây nào. Hãy bấm các nút ở bất cứ đâu bạn muốn, miễn là bạn có đủ dây để chạy đến đích cuối cùng. Bạn cũng có thể chỉ cần thay thế các nút bằng thiết lập wifi trên arduino, nhưng tôi vẫn chưa hiểu sâu về điều đó.

Đề xuất: