Using flat‎ > ‎

아두이노 프로그래밍: '플렛-style'

posted Apr 3, 2018, 10:13 AM by Sundew Shin   [ updated Apr 15, 2018, 4:25 AM ]
웹 UI를 통해 SBC에 연결된 아두이노를 원격에서 프로그래밍 (OTA) 해 봅니다.
SBC로, avrdude(CLI)를 쓰거나, 아니면, X윈도우상에서 GUI를 써서 연결된 아두이노를 프로그래밍하는 방법은 잘 알려져 있습니다. 하지만 모두 추가 프로그램 설치 등 작업환경 설정이 필요해서 일부 사용자들은 어려움을 격으며 시간낭비를 하는 경우도 많이 있습니다. 해서 오늘은 검증된 아두이노 프로그래밍 환경이 이미 갖춰져 있는 다커 템플릿을 활용하는 방법을 알아 봅니다.

'아두이노 원격 프로그래밍'이라는 주제에 초점이 맞춰져 있는 만큼, 이를 위해 오픈소스 프로젝트인 SPJS (Serial Port JSON Server)를 활용한 웹UI를 사용 해 보겠습니다.

SPJS는 arduino.cc의 온라인 아두이노 프로그래밍툴인 Arduino Create에서 사용한 통신 모듈/라이브러리 입니다.

준비물

  • 플렛 v0.1.1 이상
  • RPi에 연결된 아두이노
    (이 글은 /dev/ttyUSB0 연결기준으로 작성 되었습니다.)

설치

1. 플렛 좌측의 'App Templates' 메뉴로 들어간 뒤 'SPJS' 템플릿을 선택 합니다.

2. 컨테이너 이름을 입력한 뒤 'Show advanced options' 링크를 눌러서 다음과 같이 설정 해 줍니다.
Name: spjs
Port mapping: host:89 -> container:80; host:8989 -> container:8989 (비어 있는 포트 아무거나 사용하시면 됩니다.)

3. 'Create' 버튼을 눌러 컨테이너를 만듭니다.
역시 처음 이 템플릿을 사용하는 경우에는 시간이 꽤 소요 될 수 있습니다.
참고로 녹색 메뉴 부분이 v0.1.1에서 추가된 기능입니다.



만일 RPi에 아두이노 연결이 ttyUSB0를 통해 있지 않다면 다음과 같은 실패 메시지가 나올 것입니다.
호스트에서 'ls /dev' 명령으로 '/dev/ttyUSB0' 장치가 있는지 다시 한번 확인 해 보세요.



이런 경우에도 컨테이너는 실행(run)되지는 않지만 이미 설정한 이름으로 생성 되어 있습니다. 같은 이름을 사용 해서 다시 시도 하시려면 'Containers' 메뉴에서 이를 먼저 삭제 하셔야 합니다.

SPJS-way 아두이노 프로그래밍

4. http://[RPi IP]:89 로 접속 해서, 다음과 같이 SPJS 웹UI가 나타나는 것을 확인 합니다.



5. 잠시 둘러 보시고 에러메시지도 보이지만 무시하고 바로 프로그래밍을 해 봅니다. 메뉴에서 firmware 프로그래밍 버튼을 찾아 누릅니다.



6. 다음과 같은 메뉴가 나오고 해당 정보를 입력하고 'Program' 버튼을 누릅니다.
SPJS (stock) 웹UI는 아직 입력 파라미터로 웹상에 올려져 있는 hex파일만을 받아 들이고 있습니다.
다음 주소를 넣어 주세요: http://host.wednus.com/flat/blink.hex
1초에 한번씩 on-board LED가 깜빡거리는 클레식 예제입니다.



7. 끝으로 맨 밑줄에서 'avrdude done. Thank you' 메시지가 보이면 프로그래밍이 정상 완료 된 것입니다.

감사합니다.
Comments