태지쌤

로봇 & 코딩교육 No.1 크리에이터

로봇코딩

[코딩교육] 알버트 라인트레이서 코딩방법

태지쌤 2022. 10. 28. 15:41
반응형

안녕하세요? 로봇 & 코딩교육 No.1

크리에이터 태지쌤입니다.

오늘은 코딩/인공지능교육에 많이 활용되고 있는

SK텔레콤에서 출시한 알버트AI를 통해

라인트레이서, 즉 검은 색 라인을 따라가도록

만들어보고자 합니다.

제가 인터넷, 유튜브 다 찾아봤는데

알버트 로봇으로 라인트레이서를 구현한

콘텐츠는 전혀 없더라구요.

아마 태지쌤이 최초가 되지 않을까 싶어요.

그럴만한게....

다른 코딩로봇의 경우, 예를 들어 햄스터는

햄스터 로봇의 바닥에 적외선센서가 있어서

라인트레이서를 구현하기가 참 쉬워요.

그런데 오른쪽 사진처럼

알버트ai의 경우 근접센서가 로봇의 바닥이 아닌

로봇의 정면에 위치하고 있습니다.

그러다보니 장애물회피 기능은 가능하지만

라인트레이서는 어렵다는 편견이 있죠.

저 태지쌤이 오늘 그 편견을 깨보겠습니다.

 

알버트AI의 구성도를 보면

로봇 정면에 근접센서가 양쪽에 있어요.

그런데 이 근접센서라는 단어 때문에

많은 분들이 오해하실 수 있을 것 같아요.

거리만 인식할 수 있다라고 말이죠.

그런데 말입니다~~

근접센서는 어차피 적외선을 활용하는거라

검은색과 흰색을 구분할 수 있어요.

어떻게 구분하냐구요??

검은색은 적외선을 흡수해서

센서값이 작게 나오고

흰색은 적외선을 반사해서

센서값이 크게 나오거든요.

이 원리를 이용하면 근접센서로

거리 뿐만 아니라 바닥의 검은색과 흰색을

구분해 낼 수 있는거에요.

실제로 그런지 실험해볼까요?

흰 색 종이 위에 근접센서를 가까이한 후

스크래치에서 센서값을 읽어볼게요.

 

보이시나요?

흰색 종이 위에서는 양쪽 근접센서값이 70이에요.

 

이번에는 검은색 라인 위에 올려놔봤어요.

어! 이번엔 양쪽 센서값이 50미만으로 뚝 떨어졌어요.

신기하죠?

이래서 라인트레이서 구현이 가능한거에요.

 

지금부터는 다른 로봇과 동일하게

코딩해주면 됩니다.

경우의 수(= 조건문)는 3가지입니다.

1) 왼쪽 근접센서가 검은색

라인에 닿은 경우

2) 오른쪽 근접센서가 검은색

라인에 닿은 경우

3) 양쪽 근접센서가 흰 색

라인에 닿은 경우

1번의 경우를 코드로 표현하면

오른쪽 근접센서 = 검은 색 / 왼쪽 근접센서 = 흰 색

기준이 되는 수치값을 50으로 설정할게요.

이때는 오른쪽으로 회전해야 하니까

오른쪽으로 도는 코드를 넣었구요.

자동차 방향지시등처럼 알버트AI의

LED 색깔도 오른쪽만 켜줬어요.

2번의 경우를 코드로 표현하면

왼쪽 근접센서 = 검은 색 / 오른쪽 근접센서 = 흰 색

기준이 되는 수치값을 50으로 설정할게요.

이때는 왼쪽으로 회전해야 하니까

왼쪽으로 도는 코드를 넣었구요.

자동차 방향지시등처럼 알버트AI의

LED 색깔도 왼쪽만 켜줬어요.

3번의 경우는 왼쪽 오른쪽 근접센서 둘 다

흰 색에 닿은 경우

즉 직진만 하면 되는 경우에요.

이것도 따로 조건문으로 표현할 수 있지만

1,2번 모두 아닌 경우에는 3번이니까요.

'만약 참이라면 아니면'을 이용하면

별도의 조건문 작성없이 코드로 표현할 수 있어요.

이때는 일정 속도로 직진하는 코드를 넣었어요.

그리고 직진이니까 양쪽 LED를 초록색으로 켜줬구요.

지금까지의 코드를 종합해보면

전체 코드를 아래와 같습니다.

코딩은 정답이 있는게 아닙니다.

저처럼 위와 같이 코딩할 수 있지만

충분히 다른 논리로도 알버트AI를 통해

라인트레이서를 구현해 낼 수 있어요.

< 아래는 두번째 방법 >

웨일북에서도 가능합니다.

여러분은 어떻게 해결했는지

댓글을 통해 공유해주시겠어요~?^^

반응형