А Raspberry Pi Осъществено насипно Arduino програмист - 💡 Fix My Ideas

А Raspberry Pi Осъществено насипно Arduino програмист

А Raspberry Pi Осъществено насипно Arduino програмист


Автор: Ethan Holmes, 2019

Докато изграждахме много роботи, за да изпълним скорошния проект Kickstarter, имах нужда да програмирам хиляда или повече Arduinos, което щеше да отнеме завинаги, ако щях да ги програмирам поотделно. Такива ситуации са идеалната възможност да се работи по тези мета-проекти, които могат да бъдат също толкова забавни, колкото и самият продукт. В този случай имах нужда от нещо, което:

  • Програмирайте няколко Arduinos паралелно
  • работа без екран
  • уведомете ме, ако е било успешно програмирано или не
  • да бъде бърз и лесен за използване

POGO щифтове са чудесен начин да направите бърза временна електрическа връзка с PCB, така че реших да използвам тези доста бързо. Използвах малък лазерен превключвател, за да държа Ардуино на място. Потребителският интерфейс трябваше да се поддържа много прост, така че се спрях на някои страхотно изглеждащи бутони в стил аркада, които също светват с LED вътре. Мисля, че те са предназначени за разбиране на „момчетата за състезатели“, но работят доста добре и с програмист на Arduino. След това лазерът изряза рамка, за да седят, за да можете бързо да приплъжете Arduino на място и да натиснете бутона. Когато програмира, бутонът мига и когато го направи, остава включен, ако е бил успешен и изгасва, ако не успее.

Свързах се с USB към сериен конвертор към всеки набор от щифтове пого и след това включих всички тези устройства в USB хъб. За да управлява потребителския интерфейс, направих проста малка скица за Arduino, която ще позволи външен контрол на светодиодите и ще излъчи събития при натискане на бутоните. Това също е включен в USB хъб, който след това включен в Raspberry Pi.

Написах обикновен софтуер в Node.js, който е чудесен за този вид паралелно работно натоварване. Всичко това се свързва с потребителския интерфейс Arduino и при натискане на бутон ще изпълни avrdude в подпроцес на правилния сериен порт. Тогава той казва на потребителския интерфейс Arduino да мига правилния светодиод и след това в зависимост от кода на връщане от този външен процес ще покаже успех или неуспех.

С всичко това на място, всичко, което трябваше да направя, беше да му кажа да се стартира по време на изпълнение, което направих, като го поставих в crontab. Единственото сложно нещо, което трябваше да се оправи, беше да се увери, че USB портовете всеки път излизат с един и същ ID. За щастие в Linux това е възможно чрез добавяне на udev скрипт, който генерира символична връзка в зависимост от това къде се намира устройството на USB шината. Това означава, че след рестартирането на USB към серийните конвертори се запазва същото име.

Тъй като всички те действат независимо един от друг, аз мога много бързо да го поставя на едно място, да натисна бутона и да започне да поставя следващото място. Когато стигна до петия Arduino, първият завърши. Тъй като те се извършват успоредно, отнема само няколко секунди, за да се програмира всеки Arduino, вместо 30 или около това, което обикновено се взема за всеки един.

Ако искате да създадете нещо подобно за себе си, то е отворен код:

  • Скетчът на Arduino UI и библиотеката на Node
  • Библиотеката на програмистите на възела и файловете за проектиране

Ако искате да го промените, за да програмирате други видове Arduino, софтуерът трябва да е все още валиден и можете да го конфигурирате да прави толкова, колкото имате серийни портове.



Може Да Се Интересувате

Intel обявява „Създател на реалността”, награда от $ 1 милион

Intel обявява „Създател на реалността”, награда от $ 1 милион


Новият марсиански трейлър наистина го донася

Новият марсиански трейлър наистина го донася


Създаден на Земята - Подвижен като Лука

Създаден на Земята - Подвижен като Лука


Бейби принцеса Лея Рокс Междузвездни войни Скоростен велосипед

Бейби принцеса Лея Рокс Междузвездни войни Скоростен велосипед