Page 148 - 최강 아두이노 스마트 자동차 로봇 키트
P. 148

운행 모드 동작 QUEUE 개념을 적용해 봅니다.


               운행  모드에  관련된  요구  작동들을  정의하고  처리해주는  큐(QUEUE)  로직을  구현해
               봅니다.  처리  순서는  FIFO 로  합니다.

               문자열에  명령어를  집어  넣고,  큐의  목록에  있는  요구  항목들을  처리해  줍니다.

               프로젝트를  발전시키고  좀더  복잡하고  세밀한  스마트  드라이빙  제어를  위해서는  필수
               적으로  구현해주어야  하는  부분입니다.


                        초음파 센서 방향으로 차량 회전


               초음파  센서의  패닝(수평축  회전)을  3 방향으로  지정해놓은  상태입니다.

               현재  위치에서  정면에서  40 도  방향으로  회전을  시켜서  직진을  하게  합니다.
               물론,  대략의  시간  지연을  사용하면  근접하게  맞추어서  코드를  구현할  수도  있습니다.
               하지만  해당하는  원리를  알면  코드에  대한  이해와  차후에  여러  변수가  생길  경우  대
               처하기도  쉬울  것으로  추측됩니다.

               그럼,  위에서  계산된  1 회전  거리를  공식을  기반으로  각도를  계산해봅니다.

               현재  방향을  0  각도로  보았을  때  초음파  센서는  중앙  기준  왼쪽,  오른쪽  40 방향의
               거리를  구합니다.  그럼  거의  근접하게  40 도  각도로  차량을  회전  시켜,  직진  시켜주면
               오차  및  오류가  적은  운행이  될  수  있습니다.

               1 회전에  1 초가  걸린다는 가정하에  계산해  줍니다.

               1 회전은  360 으로  했을  경우,40  도는  360 도의  1/9  입니다.

               360 = 40 x 9

               그럼  1  회전이  1 초라  가정하면  1/9 = 0.1111111..계산됩니다.
               물론  DC  모터의  작동  시간  및  제어  보드에의  반응시간,  소모되는  시간은  적용  하지
               않았으므로  정확하지는  않습니다.  하지만  대략적인,  아주  개략적인  근사값,  시간을  추
               측할  수  있습니다.

               0.1 초라  는  시간  동안  오른쪽,  왼쪽  회전을  유지시켜주면  해당하는  각도가  나오리라
               예상됩니다.  물론  작동  테스트  후  적절히  계산,  또는  수정하여  주도록  합니다.
               그리고,  해당  시간  회전시간  경과  후  다시  직진을  하게  해줍니다.






                                                   147
   143   144   145   146   147   148   149   150   151   152   153