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