안녕하세요. 호랑인 입니다. LG 구동부 업데이트입니다.

 

 

1. 본래 목표와 한계점

 

본래 처음 목표는 아두이노를 사용하여 방을 Mapping 하면서 공기 질의 분포를 정리하고, 가장 더러운 부분들을 돌아다니면서 청정을 하는 것이었는데, EV3 와 Arduino가 통신하도록 하는것이 불가능해보이지는 않으나, 생각보다 overhead 가 발생할 것 같아 아예 과감하게 구동부와 기타 다른 부를 분리하여 단순화하기로 마음먹었습니다.

 

그래서 구동부는 자체적인 Linetracer 를 만드는 것으로 그 목표가 바뀌게 되었습니다.

 

 

2. Linetracer 를 개발할 때 힘들었던 점

 

Linetracer 를 만들 때에 사용할 수 있는 센서로 EV3 에서 제공하는 컬러 센서가 있습니다. 이를 통해서 바닥의 색을 빨주노초검흰 등으로 분류할 수 있어, 이를 사용해서 track, 혹은 line 위로 잘 가고 있는지를 확인하면서 진행하는 프로그램을 작성하였습니다.

 

통상적인 linetracer 는 컬러 센서를 두개 갖고 있어, 왼쪽과 오른쪽이 각각  line을 벗어났는지 여부를 판단해주는데, 저희의 경우에는 컬러 센서가 하나 밖에 없었기 때문에 이를 최대한 활용하여 linetracer를 만드는 것을 목표로 삼게 되었습니다.

 

그래서 아래에서 설명할 알고리즘을 만들었고, 실제로 작동이 잘됨을 확인했습니다.

 

 

 

3. 알고리즘

 

3-1. line

우선, line은 검정색 단일색으로 설정했습니다. 이유는 저희가 line을 그릴 때 사용할 수 있는 마땅한 도구가 검은 사인팬 밖에 없었기 때문입니다. 바닥이 검정색일 수도 있다는 의견이 나와 다음 캠프 부터는 바닥 색으로 사용하지 않을 것이라 예상되는 빨강색을 line으로 사용하기로 결정했습니다.

 

3-2. IDLE

가장 먼저, 컬러센서가 검정색 선을 인지하고 있을 때에는 그냥 앞으로 진행하면 됐습니다. 다만, EV3 를 코딩하는데에 사용되는 블럭은 한 블럭당 앞으로 가는 각도를 설정할 수 있으며, 해당 각도만큼 진행하기 전에는 색을 탐지하는 블록으로 넘어기지 않기 때문에, 색을 꾸준히 확인하기 위해 한번에 앞으로 진행하는 각도를 작게 설정했습니다.

 

3-3. line을 벗어나는 경우

line을 벗어날 경우, 저희는 다시 line을 따라가도록 하기 위해 왼쪽으로 꺾어야할지, 오른쪽으로 꺾어야할지를 결정해야 합니다. 이를 위해선 원래 센서가 두개 필요하지만 (왼쪽과 오른쪽 중에서 어떤 방향이 line에서 벗어났는지를 확인하기 위해서) 저희는 그게 없기 때문에 아래의 방법을 사용했습니다.

 

우선 오른쪽으로 "조금" 회전합니다. 그 뒤에 검정색이 인식이 되면 그 방향이 맞는 것으므로 진행합니다. 하지만 그래도 검정색이 인식되지 않으면 왼쪽으로 회전했어야 하는 것이었기 때문에 왼쪽으로 아까의 2배만큼 왼쪽으로 회전합니다.

 

여기에서 "조금"의 정도는 "센서의 크기"와 앞서 앞으로 가는 부분에서 "앞으로 가는 최소단위" 두 개 중 더 큰 값으로 설정했습니다. 이것이 크면 불편하기 때문에 미리 아프올가는 최소 단위를 작게 설정해야 합니다.

 

 

 

이렇게 Linetracer의 개발이 끝났습니다. 감사합니다.

 

'LG 사랑의 다문화 학교' 카테고리의 다른 글

[LG] 2019년도 2학기 캠프 준비과정  (0) 2020.04.09
[LG] 2019년도 1학기 캠프 총정리 (完)  (0) 2019.06.28
[LG] 5월 캠프 정리  (0) 2019.06.14
[LG] 4월 캠프 정리  (0) 2019.05.02
[LG] 3월 캠프 정리  (0) 2019.05.02

+ Recent posts