Một lập trình viên Arduino số lượng lớn Raspberry Pi - 💡 Fix My Ideas

Một lập trình viên Arduino số lượng lớn Raspberry Pi

Một lập trình viên Arduino số lượng lớn Raspberry Pi


Tác Giả: Ethan Holmes, 2019

Trong khi xây dựng rất nhiều robot để hoàn thành một dự án Kickstarter gần đây, tôi có nhu cầu lập trình một nghìn Arduinos, sẽ mất mãi mãi nếu tôi lập trình riêng lẻ. Các tình huống như thế này là cơ hội hoàn hảo để làm việc trên các dự án meta đó có thể thú vị để xây dựng như chính sản phẩm. Trong trường hợp này tôi cần một cái gì đó sẽ:

  • lập trình song song một số Arduinos
  • làm việc mà không có màn hình
  • cho tôi biết nếu nó đã được lập trình thành công hay không
  • nhanh chóng và dễ sử dụng

Các chân Pogo là một cách tuyệt vời để thực hiện kết nối điện tạm thời nhanh chóng với PCB, vì vậy tôi quyết định sử dụng chúng một cách nhanh chóng. Tôi đã sử dụng một chút chuyển đổi cắt laser để giữ Arduino đúng chỗ. Giao diện người dùng cần được giữ khá đơn giản vì vậy tôi đã giải quyết một số nút kiểu arcade trông tuyệt vời cũng sáng lên với một đèn LED bên trong. Tôi nghĩ rằng họ có ý định lột ra những chiếc xe đua của cậu bé, nhưng cũng hoạt động khá tốt trên một lập trình viên Arduino. Sau đó, tôi cắt laser một khung cho tất cả những thứ này ngồi để bạn có thể nhanh chóng trượt Arduino vào vị trí và nhấn nút. Khi nó lập trình, nút này sẽ nhấp nháy và khi nó thực hiện xong thì nó vẫn bật nếu thành công và tắt nếu thất bại.

Tôi đã kết nối bộ chuyển đổi USB sang nối tiếp với từng bộ chân pogo và sau đó cắm tất cả các chân này vào một bộ chia USB. Để điều khiển giao diện người dùng, tôi đã tạo một bản phác thảo đơn giản cho Arduino, cho phép điều khiển bên ngoài các đèn LED và phát ra các sự kiện khi nhấn các nút. Cái này cũng cắm vào bộ chia USB sau đó cắm vào Raspberry Pi.

Tôi đã viết một phần mềm đơn giản trong Node.js, đây là phần mềm tuyệt vời cho loại khối lượng công việc hướng sự kiện song song này. Tất cả điều này là giao tiếp với UI Arduino và khi nhấn nút, nó sẽ thực thi avrdude trong một quy trình phụ trên cổng nối tiếp chính xác. Sau đó, nó báo cho Arduino Arduino để nháy đèn LED chính xác và sau đó tùy thuộc vào mã trả về từ quy trình bên ngoài này, nó sẽ cho biết thành công hay thất bại.

Với tất cả những điều này, tất cả những gì tôi cần làm là bảo nó khởi động khi chạy, điều mà tôi đã làm bằng cách đưa nó vào crontab. Điều phức tạp duy nhất để giải quyết là đảm bảo rằng các cổng USB xuất hiện cùng một ID mỗi lần. May mắn thay trong Linux, điều này là có thể bằng cách thêm một tập lệnh udev tạo ra một liên kết tượng trưng tùy thuộc vào vị trí của thiết bị trên bus USB. Điều này có nghĩa là sau khi khởi động lại bộ chuyển đổi USB sang nối tiếp giữ nguyên tên.

Bởi vì tất cả chúng hoạt động độc lập với nhau, tôi có thể rất nhanh chóng đặt một cái vào vị trí, nhấn nút và bắt đầu đặt cái tiếp theo vào vị trí. Khi tôi đạt đến Arduino thứ năm, lần đầu tiên đã hoàn thành. Bởi vì chúng đang được thực hiện song song, chỉ mất vài giây để lập trình cho mỗi Arduino, thay vì 30 hoặc thường thì sẽ mất cho mỗi cái.

Nếu bạn muốn xây dựng một cái gì đó như thế này cho riêng mình, thì đó là tất cả nguồn mở:

  • Thư viện Node Arduino và thư viện Node
  • Thư viện lập trình Node và các tệp thiết kế

Nếu bạn muốn sửa đổi nó để lập trình các loại Arduino khác, tất cả phần mềm vẫn phải hợp lệ và bạn có thể định cấu hình nó để làm nhiều như bạn có các cổng nối tiếp.



BạN Có Thể Quan Tâm

RobotsConf 2013: Nhiệm vụ đã hoàn thành!

RobotsConf 2013: Nhiệm vụ đã hoàn thành!


Tạo kết nối với băng dẫn: Một mồi

Tạo kết nối với băng dẫn: Một mồi


Nó bắt đầu trông rất giống 3DPmas: Cho chúng tôi xem bản in buổi sáng Giáng sinh của bạn

Nó bắt đầu trông rất giống 3DPmas: Cho chúng tôi xem bản in buổi sáng Giáng sinh của bạn


Flashback: Đế lót ly bông tuyết

Flashback: Đế lót ly bông tuyết