안녕하세요 에디입니다~!이번에는 특별한 프로젝트를 해볼까 합니다.자율주행 PROJECT입니다!
여러분, 에디가 작년에 소개한 인공지능 RC카 알티노라이트 기억하시나요?알티노라이트에 대해 모르시는 분은 아래 포스팅을 참고해주세요.http://blog.naver.com/eduino/222585985780 안녕하세요! 에디입니다. 최근 테슬라, 벤츠, 현대, BMW 등 유명 자동차 업체들의 ‘자율주행 기술 "blog.naver.com’ 그때 소개한 알티노라이트를 자율주행차로 만들어 봅니다.
#RC카킷 #인공지능RC카 #자율주행RC카 #코딩키트 #코딩학습 #어른코딩 #코딩로봇 #코딩교구 #인공지능 #인공지능코딩
제일 먼저 할 일은 자율주행차가 어떻게 움직이는지 생각해봐야 해요!
먼저 RC카가 주행하는 트럭은 다음과 같습니다.

사용한 트랙 : https://eduino.kr/product/detail.html?product_no=799&cate_no=97&display_group=1 코딩교육 전문 쇼핑몰 에듀이노, 아두이노, 보드, 쉴드, 모듈, 키트, 로봇, 드론, 교구, 전자부품 등 판매 에듀이노, krRC카가 직진-우회전-후진-주차 순으로 움직이도록 해보겠습니다.
그리고 RC카가 자율주행을 할 때 진행방향으로 자동차의 진행방향과 방향지시등을 켜도록 해줍니다.
또 장애물을 감지해 멈추도록 후방 주차 후 정지 시 ‘쏠’ 소리가 3초간 울리도록 추가 동작을 넣습니다.
기본적인 방법을 생각했기 때문에 코딩을 시작해 보겠습니다.
이번 코딩에서는 ENTRY를 사용해 보겠습니다! https://playentry.org/ 소프트웨어를 통해 미래를 꿈꾸며 함께 성장하겠습니다.playentry.org
깨끗하고 쉬운 수정을 위해 함수와 변수를 활용합니다.
함수는 총 7개(LEFT, RIGHT, GO, BACK, BREAK, 회전, 주차), 변수(SPPED)는 1개를 사용해 봅니다.
먼저 SPEED라는 변수를 선언합니다.

SPPED 변수는 자동차의 속도를 의미합니다.에디는 변수 값을 300으로 지정하는데 여러분이 원하는 값으로 변경할 수 있습니다.(값이 클수록 RC카의 속도가 빨라집니다.300보다 작은 값으로 하면 차의 무게로 앞으로 전진하지 못할 수도 있습니다.)
그럼 기본적인 함수부터 만들어 볼까요?1.LEFT

LEFT 함수는 왼쪽으로 회전하면서 전진하고 왼쪽 지시기와 LED로 왼쪽 화살표를 보여줍니다.
- 라이트 좌측 방향 지시등 2) 아르티노 라이트 엔트리 본 1의 p54를 참고로 LED를 켭니다.3) 왼쪽으로 가기 때문에 스티어링(=바퀴 회전방향)을 왼쪽으로 바꾼 후 구동(=바퀴 속도)에 SPPED를 넣습니다.
2. RIGHT

RIGHT 함수는 오른쪽으로 회전하면서 전진하고 오른쪽 지시기와 LED로 오른쪽 화살표를 보여줍니다.
- 라이트 우측 방향 지시등 2) 아르티노 라이트 엔트리 본 1의 p54를 참고로 LED를 켭니다.3) 오른쪽으로 가기 때문에 스티어링(=바퀴 회전방향)을 오른쪽으로 바꾼 후 구동(=바퀴 속도)에 SPPED를 넣습니다.
3) GO

GO 함수는 모든 지시기를 끄고 회전하지 않고 앞으로 나아가는 함수입니다.
- 라이트 전방향 자르기 2) 아르티노 라이트 엔트리 본 1의 p54를 참고로 LED를 켭니다.3) 앞으로 나아가기 때문에 스티어링(=바퀴 회전방향)을 중앙으로 바꾼 뒤 구동(=바퀴속)에 SPPED를 넣어줍니다.
4. BACK
BACK은 뒤로 가는 함수입니다.
- 스티어링 중앙에 맞추다 2) 바퀴가 반대로 굴러야 하므로 구동에 양수가 아닌 음수를 넣는다(값을 마음대로 변경하셔도 됩니다)
5. BREAK
BREAK는 모든 활동을 멈추고 ‘쏠’ 소리가 3초간 나도록 합니다.
- 모두 정지한다 2) 소리 ‘솔’ ON – 3초 기다리기 – 소리 ‘솔’ OFF
이렇게기본함수를만들었어요.이제 기본적인 함수를 조합해서 회전, 주차 함수를 만들어 보도록 하겠습니다.
6. 회전 주행을 하고 있으면 자동차가 회전하여 한쪽으로 치우쳐 진행되는 경우가 있습니다.이 경우 RC카와 벽이 부딪히면 RC카가 벽에 막혀 앞으로 나오지 않게 됩니다.그래서 차가 양쪽으로 치우치지 않게 운전하도록 해야 해요!
이를 위해서는 RC카의 적외선 1, 3번 센서를 사용해야 합니다.
6-1) 센서 거리 측정 1, 3번 센서에 가까울 때 센서 값이 어느 정도 나오는지 측정해봐야 합니다.
RC 자동차가 벽에 부딪혔을 때의 1, 3 번 센서 값을 측정해 줍니다.
측정한 센서보다 작은 숫자를 사용하여 1, 3번 센서 값이 그 값보다 크면 (=벽에 가까우면) 후진하여 반대편으로 회전시켜 한쪽 벽에 치우치지 않게 해줍니다.
부딪혔을 때 측정치가 93이었는데 그건 참고 측정치였고 실제로 RC카를 다루다 보니까 저 같은 경우는 35정도가 적당히 인식이 잘 됐어요! 여러분도 측정치는 참고치로 하고 여러 번 실험해 보고 자연스럽게 RC카가 움직이는 값으로 책정하세요.
7. 후방 주차를 후방 주차하기 위해서는 적외선 센서 6번을 사용해야 합니다. 6-1) 번과 같은 방법으로 센서 6의 거리를 측정해 줍니다.
자율주행 RC카를 만들기 위해서는 많은 시도를 해봐야 합니다.후방 주차를 하려고 여러 번 해본 결과 차량의 바퀴 회전 각도가 최대 20이므로 한 번의 후진으로는 벽에 부딪히기 쉬워지고 두 번에 걸쳐 후진할 것입니다.
먼저 우측으로 후방을 한 후 다시 앞으로 직진하여 두 번째로 우측으로 후방을 하고 주차공간으로 들어갑니다.
센서 6 값보다 작아질 때까지(=벽에 가까워질 때까지) 후진을 하고 측정값보다 커지면 모든 코드가 멈춰서 정지합니다.
그럼 모든 함수를 작성했으니까 함수를 맞춰서 자율주행하는 차를 만들어 봅시다.
#RC카킷 #인공지능RC카 #자율주행RC카 #코딩키트 #코딩학습 #어른코딩 #코딩로봇 #코딩교구 #인공지능 #인공지능코딩
8. 자율주행 저는 조도 센서를 이용하여 어두워지면 주차(7)를 시작합니다. (엔트리 1p90)
그리고 2번 센서와 벽이 얼마나 가까우면 앞이 막혔다고 인식시키는지를 측정해야 합니다.
저의 자율주행 알고리즘은 다음과 같습니다.
- 센서2 값이 150보다 작으면 직진한다.- 벽에 치우치지 않도록 하다.(= 함수의 회전)
- 2. 센서2 값이 150보다 크면(=앞이 막히면) 1초간 후진을 한다.- 벽에 치우치지 않도록 하다.(= 함수의 회전)
- 3-1) 센서 4의 값이 5보다 크면(=오른쪽 벽이 막혀 있으면) 좌회전을 한다.- 벽에 치우치지 않도록 하다.(= 함수의 회전)
- 3-2) 아니면 우회전을 한다.- 벽에 치우치지 않도록 하다.(= 함수의 회전)
자동차가 스스로 벽을 인식하고 회전하죠.복잡한 코드 없이도 엔트리를 해서 아주 쉽게 자율주행차를 만들 수 있었어요!
사실 에디는 자율주행을 만들면서 많은 시행착오를 겪었습니다 1. 내 뜻대로 RC카는 움직이지 않는다!확실히 제 생각대로 코딩을 짜면 RC카가 제 생각과 똑같이 움직이는데 100% 똑같이 움직이지 않기 때문에 많은 수정을 해야 했습니다.
2) 반응속도 느려!확실히 측정치는 범위 내이지만 반응이 느리게 후진해야 하는데 후진하지 못하고 벽에 부딪히는 경우가 많았습니다.
3. 같은 코드지만 다른 결과! 영상에서는 자율주행에 성공했지만 같은 코드였지만 실패한 영상도 많았습니다.
그 밖에도 많은 문제가 있어서 만드는데 꽤 시간이 걸렸습니다.여러분도 자신의 환경에 맞게 코드를 쌓으면 많은 오류가 발생할 것입니다.그럴 때는 센서 값을 확인하면서 계속 수정하는 것을 추천합니다!
+ 파이썬 맛보기!파이톤으로도 알티노 라이트를 제어할 수 있습니다!
파이슨은 간결하고 생산성이 높은 프로그래밍 언어입니다.프로그래밍 언어 중 간결하고 간단한 사용으로 많은 사용자가 이용하는 언어입니다.
우리는 아주 간단한 예제를 두 개 해볼게요.
- 스스로 시간과 속도를 계산해 알티노라이트가 벽에 부딪히지 않고 최대한 가까이 멈추는 벽과의 거리는 스스로 측정해야 합니다.거리=시간*속도 공식을 이용합니다. RC카의 속도는 스스로 결정합니다.
2. 아르티노 라이트 터널 진입시 불빛을 켜!이번 활동은 아르티노 라이트 조도 센서를 이용합니다.조도 센서는 빛의 양을 감지합니다.빛이 어두워지면 라이트를 켜요.
- 참고로 파이썬 실행 시 실행시키는 파이썬 파일이 알티노라이트 파이썬 라이브러리 파일에 들어가 있어야 합니다!*
- + RC카에 관심 있으신 분들을 위해 다른 종류의 RC카를 소개합니다! https://eduino.kr/product/detail.html?product_no=190&cate_no=97&display_group=1 코딩교육전문쇼핑몰 에듀이노, 아두이노, 보드, 쉴드, 모듈, 키트, 로봇, 드론, 교구, 전자부품 등 판매 eduino.kr [2휠RC카] https://eduino.kr/product/detail.html?product_no=2113&cate_no=181&display_group=1 코딩교육전문쇼핑몰 에듀이노, 아두이노, 보드, 쉴드, 모듈, 키트, 로봇, 드론, 교구, 전자부품 등 판매 eduino.kr [제조사]
제조사(왼쪽)/아르티노라이트(중)/2휠 RC카(오른쪽) 왼쪽부터 순서대로 제조사/아르티노라이트/2휠 RC카입니다.제가 생각한 3가지 RC카의 장단점을 비교해드리겠습니다.
제조사는 20만원대 RC카로 이 3개 RC카 중 유일하게 인공지능 활동을 할 수 있다는 점입니다.하지만 코딩을 할 수 있는 활동은 적다는 것이 단점입니다.
알티노는 20만원대 RC카에서 가장 큰 장점은 이미 자동차가 완성돼 활동하기 편하며 엔트리부터 파이썬까지 두 언어를 사용할 수 있다는 것입니다.하지만 단점은 교재활동에 대한 답을 주지 못했다는 것입니다. 그렇기 때문에 교재를 하다가 막히면 무조건 스스로 해결해야 한다는 단점이 있습니다.
2휠 RC카는 3만원대 RC카로 RC카 제작부터 코딩까지 정말 스스로 모든 것을 할 수 있다는 점과 센서 추가가 자유롭다는 게 장점입니다.단점은 제가 직접 만드는 것이기 때문에 3개의 RC카 중에서는 가장 완성도가 떨어진다는 점입니다.
이처럼 각각의 RC카는 장단점을 가지고 있습니다.그래서 자신이 생각했을 때 하고 싶은 활동이 무엇인지 판단해서 그에 맞는 RC카를 선택해주세요!
#RC카킷 #인공지능RC카 #자율주행RC카 #코딩키트 #코딩학습 #어른코딩 #코딩로봇 #코딩교구 #인공지능 #인공지능코딩
사용후기가 궁금하신 코딩 교구가 있으시면 댓글로 알려주세요!확인 후 요청하신 교구에 대해 자세히 포스팅합니다.