# 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
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
# 도움말
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