Intro arduino-cli는 아두이노 IDE의 명령라인 툴이다. (소프트웨어 툴) Shell Script로 여러 번거로운 작업을 자동화 할 수 있다. nvim 이나 vim에서 개발할 수 있는 환경에 적용할 수 있다. nvim을 중심으로 코드 작성, 컴파일, 디버깅을 모두 처리할 수 있다. 설치 및 사용환경: windows, windows-wsl2-alpine, linux-ubuntu Intall: Windows reference: https://dumblebots.com/2020/08/02/arduino-cli-getting-started-windows/ 윈도우즈용 arduino-cli.exe를 다운받아 설치, dos-shell 또는 powershell에서 경로 추가하고 사용 이를 윈도우즈 wsl2 기반의 리눅스에서 사용할 경우 /mnt/c/<이하경로>로 접근 가능하다. PATH에 추가. Install: Linux 일반사용자의 경우 ~/bin에 설치: PATH에 추가 curl -fsSL https://raw.githubusercontent.com/arduino/arduino-cli/master/install.sh | sh Install: windows-wsl2-alpine reference: https://github.com/dorssel/usbipd-win/wiki/WSL-support 아두이노 장치를 USB에 연결한다. wsl2-alpine - gcompat, usbip, hwdata 설치 gcompat은 ardunino-cli로 컴파일할 때 ld-linux-x86-64.so.2 사용하는데 alpine은 musl 기반이므로 호환 지원 패키지를 설치해야 한다. usbip는 usbipd의 클라이언트 패키지 hwdata는 USB등의 장치파일 ardunino-cli 사용자 설치시에 USB장치 소유권 문제가 있다. 장치 소유권을 해당 사용자로 변경한다. windows - usbipd-win 설치 및 설정 usbipd는 윈도우즈에서 wsl2 등에 USB 장치를 공유해주는 데몬 프로그램 반드시 관리자 권한으로 실행해 주어야한다. 아두이노 장치를 wsl2에 붙여 주었을 경우 윈도우에서는 사용할 수 없다. 이 데몬은 usbip 클라이언트의 요청을 통해 USB장치(여기에서는 아두이노)를 공유 # WSL2-Alpine Linux: Pre-Package Install doas apk update doas apk add gcompat linux-tools-usbip hwdata # Windows-Powershell # 관리자권한으로 실행, 윈도우즈 재부팅시 다시 설정해주어야 한다. # 연결시 자동 attach 방법을 모색할 필요가 있다. # usbipd를 설치하고 wsl list를 통해 아두이노의 busid를 확인하고 이를 연결하고 확인. winget usbipd usbipd wsl list usbipd wsl attach --busid=2-2 usbipd wsl list # WSL2-Alpine Linux: arduino-cli Install # usb 지원여부 확인 # ardunino-cli 설치 및 패스 설정 # 장치 소유권 현 사용자로 변경 lsusb curl -fsSL https://raw.githubusercontent.com/arduino/arduino-cli/master/install.sh | sh export PATH=$PATH:$HOME/bin arduino-cli board list doas chown -R <user_id>:<user_id> /dev/ttyACM0 arduino-cli --help Install: debian, ubuntu lsusb curl -fsSL https://raw.githubusercontent.com/arduino/arduino-cli/master/install.sh | sh export PATH=$PATH:$HOME/bin arduino-cli board list sudo chown -R <user_id>:<user_id> /dev/ttyACM0 arduino-cli --help 시작하기 reference: https://arduino.github.io/arduino-cli/0.35/getting-started/ 아래는 Ardunino UNO의 경우 # 도움말 arduino-cli help arduino-cli help core # 설정 파일 초기화 (~/.arduino15/arduino-cli.yaml) arduino-cli config init # 장치와 연결하기 (Arduino UNO) arduino-cli board list arduino-cli core update-index arduino-cli core install arduino:avr arduino-cli board listall mkr # list의 보드가 Unknown으로 나올 경우 arduino-cli board list # 소스 작성 (동일한 스케치 이름의 폴더와 파일이 필요) # 다른 방법: arduino-cli sketch new myfirst && vim myfirst/myfirst.ino mkdir myfirst cat<<EOF > myfirst/myfirst.ino void setup() { pinMode(LED_BUILTIN, OUTPUT); } void loop() { digitalWrite(LED_BUILTIN, HIGH); delay(1000); digitalWrite(LED_BUILTIN, LOW); delay(1000); } # 컴파일과 업로드하기 (upload시 자동 컴파일) # 장치명 확인: ardunino-cli board list # 컴파일(-b) arduino-cli compile --fqbn arduino:avr:uno myfirst # 업로드 (-u) arduino-cli upload -p /dev/ttyACM0 --fqbn arduino:avr:uno myfirst # 컴파일(-b) & 업로드(-u) arduino-cli compile -p /dev/ttyACM0 -u arduino:avr:uno myfirst REFERENCE ardunino-cli 설치 및 시작 - https://arduino.github.io/arduino-cli/0.35/getting-started/ 윈도우즈 설치 및 안내 - https://dumblebots.com/2020/08/02/arduino-cli-getting-started-windows/ wsl2에서 usb장치 연결 - https://github.com/dorssel/usbipd-win ardunino-cli linux install - https://m.blog.naver.com/roboholic84/221815428642