무선 방송과 동시에 많은 Arduino를 프로그래밍


9

서로 독립적 인 많은 마이크로 컨트롤러 기반 장치를 갖지만 모두 동일한 프로그램을 실행합니다.

무선 브로드 캐스트를 통해 동시에 모든 프로그램에 프로그램을 업로드하고 싶습니다. 이상적으로 사용자는 USB 컨트롤러를 컴퓨터에 연결하고 마치 단일 장치를 프로그래밍하는 것처럼 Arduino 환경에서 프로그램을 업로드합니다.

내가 말하는 것에 대한 더 나은 아이디어를 얻으려면 이 비디오를 살펴보십시오 . 이는 Atmel 마이크로 컨트롤러가 아닌 맞춤형 Arduino 부트 로더로 이루어졌습니다.

"Arduino 적외선 프로그래밍"에 대한 Google 검색 에서이 흥미로운 프로젝트가 등장했습니다 . 가장 큰 단점은 리셋 버튼을 여전히 수동으로 눌러야한다는 것입니다. 이상적으로는 기본적으로 장치가 저전력 상태에 있고 컨트롤러에서 신호를 감지하면 프로그램을 수신하기 위해 깨어납니다. 아직도, 이것은 나에게 좋은 출발점이 될 수 있습니다.

나는 Arduinos에 익숙한 사람들로부터 내가 뛰어 들기 전에 이것이 가능하다고 생각하는지에 대한 관점을 얻고 싶었습니다.



스케치를 업로드하기 위해 어떤 플랫폼을 사용하고 있습니까?
Greenonline

답변:


2

TL; DR-

무선 업로드를위한 BlueTooth 또는 XBee 옵션 (예 : IR?)이 있습니다. 그러나 한 번에 하나의 보드 만 업로드 할 수 있다고 생각하므로 한 번에 하나씩 보드를 순환해야합니다 (한 번에 여러 ATMegas / Arduino 프로그래밍하기 참조) .

스케치를 업로드하거나 프로그래머 (스케치 또는 부트 로더 용)를 사용할 때 소프트웨어는 코드를 작성하는 것이 아니라 실제로 마이크로 컨트롤러와 통신합니다.

한 번에 모두 프로그래밍 할 수는 없습니다. 그러나 자동 방식으로 하나씩 프로그래밍 할 수 있습니다.


귀하의 질문은 매우 흥미로운 질문이며, 내가 생각한 적이 없지만 매우 유용하고 노동력을 절약 할 수 있다고 확신하는 질문을합니다. 특히 많은 Arduino 제어 센서 포인트가 집. 여기에 시도해 볼 가치가있는 다소 우아하지 않은 솔루션이 있습니다.

무선 업로드 하드웨어

BlueTooth 를 사용 하여 스케치를 무선으로 업로드하는 경우이 솔루션은 USB 케이블없이 Arduino에 무선 업로드 프로그램을 사용할 수 있습니다 . 이 솔루션은 핀 D0과 D1을 묶습니다.

그러나 D0 및 D1을 하드웨어 UART TX, RX로 사용해야하는 일부 프로젝트와 호환되지 않을 수 있습니다. 무선 프로그래머는 두 핀을 영구적으로 점유해야하기 때문입니다.

그것을 보면서, 당신은 당신의 질문에서 언급했을 수도 있는 맞춤형 Arduino Wireless Programmer 를 사용합니다. 그러나 이름에 속지 말고 단순히 블루투스 방패입니다. 기본적으로 Arduino에 볼트로 고정 된 BT HC-05 (또는 유사한) 장치입니다 ( Bluetooth 무선 업로드 참조) .

또는 BlueTooth 대신 XBee 장치를 사용할 수 있습니다 ( Arduino 무선 프로그래밍 참조) . XBees를 사용하면 BT를 사용할 때 필요한 새로운 장치 루프 (아래 참조)를 거치지 않아도됩니다. 대신 XBee 네트워크 ID를 순환하기 만하면됩니다.

그러나 그 외에도 스케치를 브로드 캐스트 할 수 없으므로 BT 장치 전환을 자동화하고 적절한 포트를 선택하고 각 Arduino에 차례로 업로드해야합니다 . (내가 틀렸다면 누군가 나를 교정하십시오).

포트 선택 및 스케치 업로드

Arduino IDE의 명령 행 버전과 함께 스크립트를 사용하여 각 업로드 전에 BT 장치가 연결된 포트를 선택할 수 있습니다. 이 작업을 수행하는 방법은 컴파일하는 플랫폼에 따라 다릅니다. Arduino 컴파일 및 다운로드 명령 줄을 참조하십시오 . 환경 변수 ARDUINO_COMPORT(아마도 오래된 Windows 명령 행 빌드 참조) 또는 arduino cmd line 옵션 --port <portname>( man 페이지 참조 )을 사용하여 수행 할 수 있습니다 . 그런 다음 옵션을 사용하여 스케치를 업로드합니다 --upload <filename>. 한 번에이 작업을 수행 할 수 있습니다.

arduino --upload --port <portname> FILE.ino

Windows에서는을 사용해야합니다 arduino_debug.exe.

또는 Windows PC를 사용 하지 않는 경우 Ino를 사용할 수 있지만 다음 단계는 루프를보다 복잡하게 처리 할 수 ​​있습니다.

각 Arduino (예 : BT 장치) 선택

다음으로, 포트 선택 및 업로드를 위해 PC를 각 BT 장치에 차례로 페어링 한 다음 Arduino IDE를 호출하는 루프에 스크립트를 추가해야합니다. 불행히도, 이것은 전혀 플랫폼에 구애받지 않으며 사용중인 플랫폼에 따라 다른 솔루션이 필요합니다. 커맨드 라인 에서 블루투스를 살펴 보지만 Windows의 경우 Blue Tooth 커맨드 라인 도구 모음이 필요할 것이다 .

OS X에 당신이 애플 스크립트를 사용하여 의지 것이 가장 좋은 선택이 될 수 있습니다, 참조 에서라도에 명령 줄을 통해 블루투스 기기 (아이폰)에 연결을 제어하기위한 cmd를 선 도구로 BT는 조금 부족한 보인다 -이 BlueUtil는 참조 블루투스 무선을 제어하는 방법 커맨드 라인에서 라디오? 그러나 그것은 단지 BT를 끄는 것처럼 보입니다. 그러나 AppleScript를 나머지 Arduino IDE 제어 스크립트에 연결하면 Arduino 명령을 AppleScript 내에 넣을 수는 있지만 작업이 더 복잡해집니다.


0

ESP-LINK를 사용하여 WiFi를 통해 Arduino를 프로그래밍 할 수 있습니다.

ESP8266은 Arduino IDE로 프로그래밍 할 수있는 간단하고 저렴한 Wi-Fi MCU입니다.

ESP-LINK는 ESP가 Arduino에 대한 직렬 연결 (USB)처럼 작동하도록하는 ESP8266의 펌웨어입니다.

펌웨어는 ESP-LINK ESP8266 에서 찾을 수 있습니다 .


0

하나는 같은 것을 사용할 수 있습니다 . NRF24L01 + 라디오 모듈을 통해 Arduino의 코드를 업데이트하는 것은 맞춤형 부트 로더입니다. *

* Linux 시스템에서만 작동합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.