라이트 자주PROJECT! (+파이 손) 인공지능 RC카, 아르티노

안녕하세요 에디입니다!이번에는 특별한 PROJECT를 해볼까 합니다자율주행 PROJECT입니다!

에디가 작년에 소개한 인공 지능 RC카 아르티노 라이트 기억하고 있습니까?아르티노라이트를 모르시는 분은 아래 포스팅을 참고하시기 바랍니다.http://blog.naver.com/eduino/222585985780 안녕하세요! 에디입니다. 최근 테슬라, 벤츠, 현대, BMW 등 유명 자동차회사의 자율주행기술 & quo… blog.naver.com에 소개된 아르티노라이트를 자율주행차로 만들어 보고 싶습니다.

#RC카킷 #인공지능RC카 #자율주행RC카 #코딩키트 #코딩학습 #성인코딩 #코딩로봇 #코딩교구 #인공지능 #인공지능코딩

제일 먼저 할 일은 자율주행 자동차가 어떻게 움직이는지 생각해 봐야 해요!

우선 RC카가 주행하는 트럭은 아래와 같습니다.

사용한 트럭: https://eduino.kr/product/detail.html?product_no=799&cate_no=97&display_group=1 코딩 교육 전문 쇼핑몰에듀이노, 아두이노, 보드, 쉴드, 모듈, 키트, 로봇, 드론, 교구, 전자부품 등의 판매 eduino.kr RC카가 직진-우회전-직진-주차장 순으로 움직이도록 해보겠습니다.

그리고 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로 왼쪽 화살표를 보여줍니다.

  1. 라이트 왼쪽 방향 지시기 2) 아르티노 라이트 엔트리 본1의 p54를 참고로 LED를 켭니다.3) 왼쪽으로 진행되므로 조향(=바퀴의 회전방향)을 왼쪽으로 바꾼후 구동(=바퀴속도)에 SPPED를 넣습니다.

2) RIGHT

RIGHT 함수는 오른쪽으로 회전하면서 우측 지시등과 LED로 우측 화살표를 표시합니다.

  1. 라이트 오른쪽 방향 지시기 2) 아르티노 라이트 엔트리 본1의 p54를 참고로 LED를 켭니다.3) 오른쪽으로 나아가므로 조향(=바퀴의 회전방향)을 오른쪽으로 바꾼 후 구동(=바퀴속도)에 SPPED를 넣습니다.

3) GO

GO함수는 모든 지시등을 끄고 회전하지 않고 앞으로 나아가는 함수입니다.

  1. 라이트 전방향 지우개2)아르티노 라이트 엔트리 책1의 p54를 참고로 LED를 켭니다.3) 앞으로 나아가기 때문에 조향(=바퀴의 회전방향)을 중앙으로 바꾼 다음 구동(=바퀴속도)에 SPPED를 넣습니다.

4. BACK

BACK은 뒤로 가는 함수입니다

  1. 조향중앙에 맞추는 2)바퀴가 반대로 굴러야하므로 구동에 양수가 아닌 음수를 넣는(값을 마음대로 변경하셔도 됩니다.

5. BREAK

BREAK는 모든 활동을 멈추고 ‘쏘’ 소리가 3초 동안 나오게 합니다

  1. 모두 정지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카 #코딩키트 #코딩학습 #성인코딩 #코딩로봇 #코딩교구 #인공지능 #인공지능코딩

자율주행사는 조도센서를 이용하여 어두워지면 주차(7)를 시작합니다. (엔트리 1p90)

그리고 두 번째 센서와 벽이 얼마나 가까우면 앞이 막혀있다고 인식시키는지 측정을 해야 합니다.

제 자율주행 알고리즘은 다음과 같습니다

  1. 센서2의 값이 150보다 작으면 (=끝이 안 막히면) 직진한다.- 벽에 치우치지 않도록 하다.(=함수 회전)
  2. 2. 센서2의 값이 150보다 클 경우 (=앞이 막히면) 1초간 후진을 한다.- 벽에 치우치지 않도록 하다.(=함수 회전)
  3. 센서 4의 값이 5보다 크면(=오른쪽 벽이 막혀 있으면) 좌회전한다.- 벽에 치우치지 않도록 하다.(=함수 회전)
  4. 3-2) 아니면 우회전한다.- 벽에 치우치지 않도록 하다.(=함수 회전)

자동차가 알아서 벽을 인식하면서 회전을 하죠.복잡한 코드 없이도 엔트리로 간단하게 자율주행차를 만들 수 있었습니다!

사실 에디는 자율주행을 만들면서 많은 시행착오를 겪었습니다.1. 내생각대로 RC카는 안움직여!물론, 제 생각대로 코딩을 짜면 RC카가 제 생각과 같이 움직입니다만, 100%똑같이 움직이지 않았기 때문에 많은 수정을 하지 않으면 안되었습니다.

2) 반응속도가 느려!분명히 측정치는 범위 안이지만 반응이 느려서 후진해야 하는데 후진하지 못해 벽에 부딪칠 때가 많았어요.

3. 같은코드지만 다른결과! 영상에서는 자율주행에 성공했지만 같은코드였지만 실패한 영상도 많았습니다.

그 밖에도 많은 문제가 있어서 만드는데 상당한 시간이 걸렸습니다.여러분도 내 환경에 맞게 코드를 쌓아 나가다 보면 많은 오류가 발생하게 되는데요.그럴 때는 센서값을 확인하면서 계속 수정하는 것이 좋습니다!

+파이톤 맛보기!파이썬으로도 아르티노라이트를 제어할 수 있습니다!

파이썬은 간결하고 생산성이 높은 프로그래밍 언어입니다.프로그래밍 언어 중 간결하고 간단한 사용으로 많은 사용자가 이용하는 언어입니다.

우리는 아주 간단한 예제 두 개를 해볼게요.

  1. 스스로 시간과 속도를 계산하고 아르티놀라이트가 벽에 부딪치지 않도록 최대한 가까이 멈추는 벽과의 거리는 스스로 측정해야 합니다.거리 = 시간 * 속도인 공식을 이용합니다. 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카의 장단점을 비교해 보겠습니다.

메이커는 여러 RC카로, 이 3개의 RC카 중 유일하게 인공 지능 활동을 할 수 있다는 점입니다.하지만 코딩을 할 수 있는 활동이 많지 않다는 것이 단점입니다.

아르티노는ᅢ の 대의 RC카의 최대 장점은 이미 자동차가 완성되어 있기 때문에 활동하기 쉽고, 엔트리에서 파이슨까지의 2 개의 언어를 사용할 수 있다는 것입니다.하지만 단점은 교재 활동에 대한 답을 주지 못했다는 것입니다. 그래서 교재를 하다가 막히면 무조건 스스로 해결해야 된다는 단점이 있습니다.

2휠 RC카는 여러 대의 RC카 RC카 제작에서 코딩까지 정말 직접 모든 것을 해볼 수 있다는 점과 센서의 추가가 자유롭다는 것이 장점입니다.단점은 스스로 만드는 것이기 때문에, 3개의 RC카 중에서는 가장 완성도가 낮다는 점입니다.

이와 같이 각각의 RC카는 장단점을 가지고 있습니다.그래서 자신이 생각하기에 하고싶은 활동이 무엇인지 판단해서 그에 맞는 RC카를 선택하세요!

#RC카킷 #인공지능RC카 #자율주행RC카 #코딩키트 #코딩학습 #성인코딩 #코딩로봇 #코딩교구 #인공지능 #인공지능코딩

사용 후기를 알고 싶은 코딩 교구가 있으면 댓글로 알려주세요! 확인 후 요청하신 교구에 대해 상세하게 포스팅 해드리겠습니다.

error: Content is protected !!