0. Arduino IED 환경 세팅하기
참고자료가 있다면 링크를 올리겠습니다.
아두이노 IDE 설치 및 아두이노 연결
준비물
1. Arduino Uno
2. 우분투 운영체제가 설치된 PC or 윈도우 기반 PC
이 글은 우분투22.04를 기준으로 진행됩니다.
https://www.arduino.cc/en/software
다음의 사이트에서 설치를 진행합니다. 우분투의 경우에는 zip파일로 다운로드 받으면됩니다.
터미널상에서 다운로드 받았던 폴더로 이동하여 다음을 순서대로 입력합니다.
cd
mkdir arduino
cd ~./Downloads
cp -r ar(tap누르기)* ~/arduino/
cd ~/arduino
unzip ar(tab)
./arduino-ide
앞으로 실행을 하게된다면 다음과 같이 터미널에 입력하면됩니다.
cd arduino
./arduino-ide
다음처럼 나오게 되면 설치가 완료된 것입니다.
이제 아두이노를 노트북과 연결합니다. 다음처럼 노트북과 연결하면 전원이 들어올 것입니다.
연결이 완료되면 File에서 Example 을 누르고 basic 을 누른 후에 blink를 누릅니다.
여기서 다음처럼 Select Board로 Arduino Uno가 나올 것입니다. 여기서 Arduino Uno를 선택합니다.
이제 화살표 버튼을 눌러서 코드를 전송합니다.
만약 다음과 같은 오류가 나온다면 permission을 부여해주어야합니다.
ls -l /dev/ttyACM*
sudo usermod -a -G dialout 우분투이름
reboot
다음의 명령어를 입력해주면 됩니다. 재부팅을 해야하니 주의하세요.
그리고 다음처럼 실행하게 되면 정상적으로 전송이 완료됩니다.
이정도 까지 세팅을 완료합니다.
OpenCR 을 Arduino IDE에서 연결하기
OpenCR보드가 필요합니다. 이 보드는 turtlebot3에 들어가는 보드인데, 저는 이 보드를 때와서 가지고 놀아보려고합니다. 이 보드도 아두이노 IDE를 지원합니다.
이 보드의 메뉴얼은 제작사인 로보티즈에 자세히 나와 있습니다.
https://emanual.robotis.com/docs/en/parts/controller/opencr10/
우선 동봉된 USB케이블을 통해 PC와 연결합니다. 그리고 USB port에 Permission을 부여해주어야합니다.
$ wget https://raw.githubusercontent.com/ROBOTIS-GIT/OpenCR/master/99-opencr-cdc.rules
$ sudo cp ./99-opencr-cdc.rules /etc/udev/rules.d/
$ sudo udevadm control --reload-rules
$ sudo udevadm trigger
다음을 계속 입력해줍니다.
그리고 OpenCR 라이브러리는 32 bit 운영체제에서 작동을 합니다. 그래서64 bit 환경이라면 다음을 입력해주어야 합니다.
sudo apt-get install libncurses5-dev:i386
이제 Aurduino IDE를 실행합니다.
File -> preferences 에서 URLs에 다음을 입력합니다.
https://raw.githubusercontent.com/ROBOTIS-GIT/OpenCR/master/arduino/opencr_release/package_opencr_index.json
그리고 확인을 누릅니다.
그 후에 Tools -> Board -> Boards Manager를 들어갑니다. 그러면 다음처럼 나오게 되는데, 여기서
여기서 OpenCR by ROBOTIS package 를 찾습니다. 검색을 해도 좋습니다.
이것을 설치해주면 됩니다. 설치가 완료되면 Tools -> Board -> Boards Manager 에서 openCR을 선택할 수 있게 됩니다.
그 후에 Tools -> port에서 opencv가 연결된 포트를 선택해줍니다. 하나만 연결이 되어 있다면 연결된 포트를 선택하면 됩니다.
그리고 컴파일 과정에서 오류를 발생할 위험이 있어 다음의 명령어로 삭제를 해주어야하는게 있다고 합니다.
sudo apt-get purge modemmanager
여기까지 완료되었다면 다음의 명령어를 한 번 실행해봅니다.
int led_pin = 13;
int led_pin_user[4] = { BDPIN_LED_USER_1, BDPIN_LED_USER_2, BDPIN_LED_USER_3, BDPIN_LED_USER_4 };
void setup() {
// Set up the built-in LED pin as an output:
pinMode(led_pin, OUTPUT);
pinMode(led_pin_user[0], OUTPUT);
pinMode(led_pin_user[1], OUTPUT);
pinMode(led_pin_user[2], OUTPUT);
pinMode(led_pin_user[3], OUTPUT);
}
void loop() {
int i;
digitalWrite(led_pin, HIGH); // set to as HIGH LED is turn-off
delay(100); // Wait for 0.1 second
digitalWrite(led_pin, LOW); // set to as LOW LED is turn-on
delay(100); // Wait for 0.1 second
for( i=0; i<4; i++ )
{
digitalWrite(led_pin_user[i], HIGH);
delay(100);
}
for( i=0; i<4; i++ )
{
digitalWrite(led_pin_user[i], LOW);
delay(100);
}
}
혹시나 업로드과정에서 오류가 발생한다면 다시 한 번 업로드를 진행합니다.
그렇게하면 OpenCR 보드에서 LED가 깜빡이는 것을 확인할 수 있습니다.
여기까지 세팅을 완료합니다. 다음으로 진행을 하도록 하겠습니다.