
๋์ฉ๋ ๋ชจํฐ ์ฐ๊ฒฐํ๊ธฐ
๋์์ ๊ฐ์๋ฅผ ํ๋ฉด์ ํญ์ MW DCM ์๋ฆฌ์ฆ๋ฅผ ๋์์ผ๋ก ํ๋๋ฐ์. ์ด๋ฒ์๋ ๋์ฉ๋์ธ MW-MDC24D500D๋ชจ๋ธ์ ๋์์ผ๋ก ํ ๋ ค๊ณ ํฉ๋๋ค. ๊ธฐ๋ฅ๊ณผ ์ด์ฉ๋ฐฉ๋ฒ์ ๋์ผํ๊ธฐ ๋๋ฌธ์ ์ด์ ๊ฐ์๋ฅผ ์ฐธ์กฐํ์๋ฉด ๋ฉ๋๋ค. ์ด๋ฒ์๋ ๊ฒฐ์ ์ ๋ํด ์ด์ผ๊ธฐ๋ฅผ ํ ๋ ค๊ณ ํฉ๋๋ค.
MoonWalkerย MW-MDC24D500D ๋ชจ๋ธ์ ๊ฐ ์ฑ๋๋น ์ต๋ ์ฐ์ ๊ตฌ๋ ์ ๋ฅ๊ฐ 40A์ธ ์ฑ๋์ด 2๊ฐ๊ฐ ์๋ ๋ชจ๋ธ์
๋๋ค. ์ฉ๋์ด ๋์ฃ . ๊ทธ๋์ ์ธํ์ ํฌ๊ธฐ๋ ํฌ๋ต๋๋ค. ย ์ผ๋จ ์ด๋ฒ ์์ ๋ก ๋ค๋ฃฐ ์ฃผํ ๋ก๋ด์
NT-TriWheel[๋ฐ๋ก๊ฐ๊ธฐ]์ด๋ผ๋ ์ ํ์ผ๋ก ๊ทธ ์์ ์ฅ์ฐฉ๋ ๋ชจํฐ๊ฐ ์ฉ๋์ด ๋์ต๋๋ค.
์์ ๋ณด์ด๋ ์ฌ์๋๋ก ๋์ฃ . ์ด์ฐจํผ 10A๋ง ๋์ด๊ฐ๋ย MW-MDC24D200 ์๋ฆฌ์ฆ๋ก๋ ๊ตฌ๋์ํค๊ธฐ ์ด๋ ต์ต๋๋ค. ๊ทธ๋์ย MW-MDC24D500 ์๋ฆฌ์ฆ๋ก ๊ตฌ๋์ ํด๋ณด๋ ์์ ๋ก ๊ด์ฐฎ์ ๋ฏ ํฉ๋๋ค.
DCL ์๋ฆฌ์ฆ์ ์์ฝ๋ ์ฐ๊ฒฐ ์ปค๋ฅํฐ์ ํ๋งต์
๋๋ค.
๊ทธ์ ๋ฐ๋ฅธ ๋ฐฐ์ ๋ ์
๋๋ค. ์ด์ ๋์์ ๊ฐ์๊น์ง ๋ค ๋ณด์
จ๋ค๋ฉด ํฐ ๋ฌด๋ฆฌ์์ด ์ ์ฐ๊ฒฐํ์ค ๊ฑฐ๋ผ ์๊ฐํฉ๋๋ค.
๋์ฉ๋์ด๋ค ๋ณด๋ MW-MDC24D500์๋ฆฌ์ฆ๋ ์ผ๋ฐ์ ์ธ ์์ ์์คํ
์…

์ธ๋ถ MCU ๋ณด๋์์ MoonWalker ์ ์ด๊ธฐ ๋ค๋ฃจ๊ธฐ
์ค๋ ๋ค๋ฃฐ ์์ ๋ MoonWalker๋ฅผ ์ธ๋ถ MCU๋ณด๋์์ ํธ๋ค๋งํ๋ ๊ฒ์ ๋๋ค. ๋ง์ ๋ด์ฉ์ด ์๋ ๊ฒ์ ์๋๊ณ ์ด๋ ๊ฒ ํ๋ฉด ๋๋ค๋ ์์ค์ ๊ฐ๋จํ ์ ๊ทผ๋ฐฉ๋ฒ์ ๋๋ค. ์์ธํ ์ฌํญ์ ๋งค๋ด์ผ์ ํ์ธํ์๋ฉด ๋ฉ๋๋ค.
์ผ๋จ ์ด์ ๋์์ ๊ฐ์์์๋ ๊ณ์ ์ด์ผ๊ธฐํ๊ณ ์์ง๋ง, MoonWalker์ RS232์ ํธ ์ถ๋ ฅ๋จ๊ณผ MCU์ 232์ถ๋ ฅ๋จ์ ์ฐ๊ฒฐํฉ๋๋ค.
์ด๋, TX์ RX์ ์ฐ๊ฒฐ์ด ์ฌ๋ฐ๋ฅธ์ง ํ์ธํด์ฃผ์ธ์
์์ฃผ ๊ฐ๋จํ๊ฒ ์๋๋ฅผ ์ธ๊ฐํ๋ ๋ช
๋ น์ ํจ์๋ก ๊ตฌํํ์ต๋๋ค. MoonWalker์ ์๋ฐํด(2์ฑ๋)์ ๋์์ ๊ตฌ๋ํ๊ธฐ ์ํด์ ์ฌ์ฉํ๋ ๋ช
๋ น์ธ mvc๋ฅผ ์ฌ์ฉํ๋ ๊ฒ๋๋ค. ๊ฐ์ข
์ค์ ์ Control UI Program์ผ๋ก ํ๋ ๋ฐฉ๋ฒ์ ์ญ์ ์ด์ ๋์์ ๊ฐ์๋ฅผ ํ์ธํด์ฃผ์
ํฉ๋๋ค.
์์์ ๋ง๋ค์ด์ง ์๋ ๊ตฌํ ํจ์๋ฅผ ์ด์ฉํด์ ์ ๋ฐํด์ ์๋๋ฅผ ์ธ๊ฐํ๊ณ ๊ธฐ๋ค๋ฆฌ๊ณ , ๋ ์๋๋ฅผ ์ธ๊ฐํ๋ ๋ช
๋ น์ ๊ฐํ๊ณ ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ , ์ ํฌ ์ ํ ์ค ํ๋์ธ STELLA๋ฅผ ์ด์ฉํ์ฌ ์ด๋ ๊ฒ ์ง์ ๊ตฌ๋์ ํ๊ณ ์๋ ๋ชจ์ต์
๋๋ค. MoonWalker๋ ์ด๋ ๊ฒ ๊ฐํธํ…

์๋์ด๋ ธ์์ NT-ARSv1์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋ ์์
NT-ARSv1์ ์ถ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ์๋์ด๋
ธ์์ ํด์ํ๋ ์์ ์
๋๋ค. Roll, Pitch์ ๊ทธ ๊ฐ์๋ ์ด๋ ๊ฒ 4๊ฐ์ ๊ฐ์ค์์ ์ฌ์ฉ์๊ฐ ์ ํํ ์ ์์ผ๋ฉฐ, ์ถ๋ ฅ๋ ๋ฐ์ดํฐ๋ ๋ฌธ์์ด์ด ์๋๋ผ doubleํ์ ์ซ์๋ก ๋ฐ๋๋ก ํ์ต๋๋ค. ์ด๋ฏธ ์์ ์ [๋ฐ๋ก๊ฐ๊ธฐ]์์ NT-ARSv1์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋ ๋ถ๋ถ์ ๋ค๋ฃจ์๋๋ฐ์. ๋น์์๋ ๋จ์ํ ๊ฐ์ ํ ๋ฒ ํ์ธํ๋ ๊ฒ๊ณผ ์๋์ด๋
ธ์ ARS์์ ์ฐ๊ฒฐ์ ๋ํ ๋ถ๋ถ์ ๋ค๋ฃจ์๋ค๋ฉด ์ด๋ฒ์๋ ์ฝ๊ฐ ํจ์ํ๋ฅผ ํ์ต๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ํ๋์จ์ด์ ์ธ ์ฐ๊ฒฐ์ย [๋ฐ๋ก๊ฐ๊ธฐ]์ ๊ฐ์ผ๋ ๋จผ์ ์ฝ๊ณ ๋์ด์ค์๊ธฐ ๋ฐ๋๋๋ค.
์ผ๋จ ์ค๋ ๋ณด์ฌ๋๋ฆด ์์ ๋ ๋ช๋ช๊ฐ์ ํจ์๋ก ๊ตฌํ๋์ด ์์ด์ ํจ์๋ณ๋ก ํ๋์ฉ ํ์ธํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
String getARSresultAtOnece() { String outputValuesOfARS = ""; Serial1.print("<CAO>"); delay(2); while (Serial1.available()) { char incomingChar = Serial1.read(); outputValuesOfARS += incomingChar; } return outputValuesOfARS; } |
๋จผ์ getARSresultAtOnce() ํจ์์ ๋๋ค. ์ด ํจ์๋ NT-ARSv1์ ๋ฐ์ดํฐ๋ฅผ STRING์ ํํ๋ก ์ ์ฅํ๋ ๊ฒ์ด ๋ชฉ์ ์ ๋๋ค. ์ฌ๋ฌ๊ฐ์ง ํํ๋ก ๋ค์ํ๊ฒ ์ฌ์ฉํ์ค๋ ค๋ฉด ์ด ํจ์๋ง ์ฌ์ฉํ์ ๋ค์ ๊ฐํธํ๊ฒ ์์ฉํ์๋ฉด ๋ฉ๋๋ค. ํจ์์ด๋ฆ์๋ ๋ํ๋ ์์ง๋ง, ARS์ <CAO>๋ช ๋ น์ ์ฌ์ฉํฉ๋๋ค. ๋ง์ฝ ์ฌ์ฉ์๊ฐ <CAH>๋ช ๋ น์…

์๋์ด๋ ธ์์ NT-ARSv1์ ๋ฐ์ดํฐ ๋ฐ๊ธฐ
์๋์ด๋
ธ Arduino MEGA ADK์์ NT-ARSv1๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ ๊ฐ๋(degree)๋ก ํ์ฐํ๋ ์์ ์ฝ๋์
๋๋ค. ์๋์ด๋
ธ๋ก ์ ํฌ NT-ARSv1๋ฅผ ๋ค๋ฃฐ๋ ค๊ณ ํ์๋ ๋ถ๋ค๊ป ๋์์ด ๋ ์ ์์ผ๋ฉด ์ข๊ฒ ์ต๋๋ค.
์ฐ๋ฆฌ ์ฐ๊ตฌ์์์๋ ์์ฃผ ์์ ์ Pitch์ Roll๊ฐ๋๋ฅผ ๋ฐ์ ์ ์๋ NT-ARSv1[๋ฐ๋ก๊ฐ๊ธฐ]์ด๋ผ๋ ์ ๊ฐ์ ARS ๋ชจ๋์ ์ถ์ํ์์ต๋๋ค.
์ค๋์ ์ฌ๋ฌ ์ ์ ๋ค๊ป์ ์์ฃผ ์์ฒญํ์๋ ์๋์ด๋
ธ์์ ์ด ARS์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋ ์์ ๋ฅผ ๊ณต๊ฐํ ๋ ค๊ณ ํฉ๋๋ค. ์ผ๋จ, ์ด ๊ธ์์ ํ
์คํธ ๋๋ ์๋์ด๋
ธ ๋ณด๋๋ Arduino MEGA ADK[ํ๋งค ํ์ด์ง ๋ฐ๋ก๊ฐ๊ธฐ]์
๋๋ค. ย ์ MEGA ADK ๋ฒ์ ผ์ ์ฌ์ฉํ๋๋ฉด, ์ ๋ PC์์ ๋ฐ์ดํฐ๋ฅผ ํ์ธํ๊ณ ์ถ์๊ธฐ ๋๋ฌธ์ ARS์ ์๋ฆฌ์ผ ํต์ ์ผ๋ก ์ฐ๊ฒฐ๋ ์ฌ๋ถ์ ์๋ฆฌ์ผ ํฌํธ๊ฐ ๋ ํ์ํ๊ธฐ ๋๋ฌธ์
๋๋ค. Arduino MEGA ADK๋ ์ด 4๊ฐ์ ์๋ฆฌ์ผ ํฌํธ๋ฅผ ๊ฐ์ง๊ณ ์์ด์ ์ ์ ํ๊ตฌ์.
๊ทธ๋ฐ๋ฐ ์ฐ๊ฒฐํ๋ค๋ณด๋ ์ฝ๊ฐ์ ๋ฌธ์ ๋ฅผ ๋ง๋ฌ๋ค์. ์ด๋ค ๋ฌธ์ ๋๋ฉด, NT-ARSv1์ ์๋ฆฌ์ผํต์ ์ถ๋ ฅ์ RS232์ ํธ๋ก ๋์จ๋ค๋…