Dio를 가지고 만든 후 정리한 두 번째 미션

탁자 위에서 떨어지지 않는, 움직이는 디오 만들기


적외선IR 센서를 스크래치에서 쉽게 통제할 수 있다면 

라인트레이서와 같이 특정 영역 안에서 계속 돌며 '갇혀 있는 디오'만들기를 하고 싶었다.

하지만, 아직은 스크래치에서 IR 센서를 다루도록 되어 있지 않다는 말에...


나름 하게된 다른 비슷한 미션...

'탁자 위에서 떨어지지 않는, 움직이는 디오 만들기'


작동의 흐름은 이렇다.

디오가 전진을 하다가 탁자의 테두리 부분에 다다르면

전진을 멈추고 조금 뒤로 후진하여 왼쪽으로 방향을 틀어 다시 전진한다.

이를 탁자 위에서 디오가 떨어지지 않고 계속 반복하게 한다.


이를 위해서 IR 센서 대신에 선택한 것이

예전에 갈릴레오 보드 테스트로 받았던 세트에 포함된,

여분의 초음파거리 센서(Ultrasonic Range Finder HC-SR04)


디오 자체에 있는 초음파거리센서를 분리하여 위치를 조정하여 새로이 장착할 수도 있겠지만...

모든 재료의 활용이 자유롭지 않은 집에서 눈비비며 새벽에 작업하다 보니

복잡한 분리 과정 선택보다는

여분의 거리 센서를 적당한 방법으로 디오에 장착하여 연결하는 방법을 선택했다. 


먼저 한 일은

디오에 장착된 초음파거리센서의 연결 단자를 분리하는 것.

초음파센서 상단 연결핀에 바로 연결된 단자를 분리하니 다른 단자를 꼽기 쉽도록 되어 있었다.

아래 사진에서 정 가운데 부분에 흰색 단자 위에 작은 흰색 단자가 바로 초음파센서에 바로 연결되었던 단자 부이다. 



여분의 초음파거리 센서를 적당히 연결하여

처음에는 구조체를 만들어줄, 마땅한 것을 찾다가 활용한 것이 쓸모 없는 명함을 테이프로 연결하는 방법(^.^;;)

외모는 좀 허접해 보이지만 그래도 원하는 제 기능을 다 한다는...


작동 모습 - 동영상


동영상을 꼼꼼하게 보면 알겠지만...

mini-USB 선이 디오의 자연스런 좌회전을 막는다.

손이 좀 꼬이면서 일정한 각도의 회전이 되지 않는 점이 있다.


USB를 뽑아도 제대로 작동이 될까 싶어서 해보았는데... 작동이 안된다. 뽑기 전 최종 작동을 계속하는...

아두이노의 스케치 내용처럼 보드에 관련 알고리즘이 업로드되어 자유롭게 스스로 작동하지는 않는 듯하다.

이부분은 문외한이라 일단 관찰 결과만...



명함과 테이프로 연결한 것이 좀 마음에 걸려서

디오의 원래 상판을 이용하여 나름 업그레이드 실시

하지만 글루건이 없어서 그냥 만만한 테이프로 연결

앞에서의 초음파거리센서 값보다는 조금 상향 조정하여(설치 높이가 높아진 관계로) 장착

아래 사진들은 장착 모습을 다양한 각도에서 찍은 것들





무게가 앞으로 쏠려 제대로 작동할까 싶었는데 나름 잘 작동한다.

 

 

작업한 알고리즘 스크래치 파일

 

dio_always-on.sb2

 

 

이번 알고리즘을 만들면서의 Tip 또는 띵킹~!

 

1. 센서를 가급적 앞으로 돌출시켜야 바퀴가 탁자의 테두리를 타고 넘어가는 일이 없다.

  ==> 이는 아마도 디오 자체에서 라인단위의 알고리즘 진행 과정에서 라인과 라인 사이의 시간 텀이 비교적 길기 때문에 나타나는 문제점으로 보인다. 

   예전에 코드아이 연수 받을 때 제작자이며 강사인 쌤이 라인단위 실행에서 다음 라인으로의 진행을 위한 기본 시간 텀이 있다는 말을 얼핏 들은 기억이 난다. 

  아마도 이 때문에 로직에서 직진하다가 센서 측정값에 따라 바로 후진할 때에 일정한 시간이 걸리고 그 시간 때문에 여차하면 넘어가는 문제점이 다소 발생하기도 하는 것 같다.

  특히 테두리를 따라 사선방향으로 디오가 진행하는 경우 센서 측정값이 일정 수준에 다다르기에는 시간이 걸려 디오가 넘어가는 사례가 '종종' 있었다.


2. 초음파 거리 센서를 장착할 때에는 약간 전진하는 방향을 향해 '살짝' 센서를 틀어서 설치하면 좋다.

  ==> 초음파 거리 센서의 측정값을 좀더 일찍 확인하게 되어 시차발생문제(1번과 같은)를 해결하는 데 효과적인 것으로 생각된다.


3. USB선을 빼어도 제작한 프로그램 대로 디오가 작동할 수 있는 방법을 찾아 보아야 하겠다.

  ==> USB선의 트위스트 정도가 결국에는 디오의 회전에 영향을 미치는 것을 확인할 수 있었다.


4. 다음에는 난수를 발생시켜 어떤 때에는 좌회전, 어떤 때에는 우회전을 하도록하여 USB선의 트위스트를 최소화 하는 방향으로 조정해봐도 좋겠다.


5. IR센서처럼 바닥의 5개의 민감 센서로 어느 센서 먼저 탁자 밖으로 삐쳐나가는 가를 측정할 수 있다면

  그에 맞추어 적당히 좌회전과 우회전을 지정해 주어 더욱 효과적인 움직임이 가능하도록 조정할 수 있을 것이다.


6. 초음파 거리 센서를 디오에 3개를 동시에 장착하여 측정, 연동할 수 있다면 좋겠다는 생각... 그러면 5번의 생각을 IR 없이도 구현할 수 있지 않을까?


 

Posted by 창석쌤
,