아두이노와 스마트폰의 만남(아두이노)
아두이노와 스마트폰의 만남(아두이노)
- 온라인 가상시뮬레이터 : https://www.tinkercad.com
아두이노에 스마트폰을 연동하면 어떤 일이 벌어질까요. 지금까지 아두이노 실험에서는 아두이노와 스마트폰 간의 Bluetooth 통신이였습니다. 아두이노에서 측정한 센서값을 Bluetooth 통신을 통해 스마트폰에 그 결과를 출력하거나 스마트폰의 조정기 어플을 이용하여 아두이노를 컨트롤 하는 실험만 했었습니다. 단순히 아두이노와 스마트폰 사이에 무선 통신을 통해 데이터를 주고 받는 동작만이 전부였었죠. 사실 아두이노와 스마트폰의 사이에 딱 하나 Bluetooth 기능만 있는게 아닙니다. 스마트폰에 내장된 다양한 센서 부품들이 있는데 이 기능들을 잘만 아두이노와 연동하면 많은 것들을 만들어 낼 수 있습니다.
스마트폰에 내장된 고급 부품들이 많고 그 부품들의 데이터를 손쉽게 얻을 수 있습니다. 아두이노를 공부하시는 분들은 스마트폰에 내장된 부품의 기능을 사용할 때 해당 부품에 대한 오류 처리 코딩 부분을 생략 할 수 있습니다. 실제 아두이노에서 해당 부품을 구매해서 아두이노에 연결 할 경우 거기서 발생 할 수 있는 문제와 오류들을 해결하고 거기에 맞는 코딩을 수작업으로 일일히 체크하고 코딩해야 합니다. 하지만 스마트폰에 내장 되 부품을 이용하면 해당 부품의 데이터만 읽는 부분만 신경 쓰면 되기 때문에 코딩하기가 편해집니다. 참고로, 센서 읽기와 그 센서 데이터를 Bluetooth 통신을 통해 아두이노에게 명령만 내리면 되기 때문에 아두이노를 컨트롤 하기 쉽고 고퀄리티 작품을 제작하기에 효과적입니다.
스마트폰을 이용하려면 아두이노와 연동 할 스마트폰 센서는 어떻게 접근 할 수 있어야 합니다. 그 부분을 오늘 이야기 할까 합니다. 스마트폰 센서와 어플에 대해 간단히 소개하고 아두이노와 스마트폰이 연동을 하면 어떤 가능성이 있는지 살펴보도록 합시다.
1. 스마트폰 센서
스마트폰에는 어떤 센서가 내장되어 있을까요?
스마트폰에는 가속센서, 중력센서, 자이로센서, 온도센서, 압력센서, 조도센서, 근접센서, GPS센서, 지자기센서, 방향센서 ... 등이 탑재되어 있습니다. 스마트폰에 내장 된 센서들을 보면 아두이노에서 실험했던 일부 센서들이 있습니다. 그리고 특정 센서는 고가로 아두이노에서 실험을 한다면 부품 가격 때문에 저가의 부품을 사용하게 되고 그러면 만족할 만한 정확한 결과를 얻기 힘듭니다. 실험 제작 단가가 올라가겠죠.
아두이노에서 스마트폰과 연동을 하면 스마트폰에 탑재된 센서들을 다 사용할 수 있습니다. 스마트폰의 다양한 센서를 이용하여 아두이노를 동작시킬 수 있습니다.
예를 들면, 스마트폰으로 모바일 비행 시뮬레이터 게임 같은 것을 할 때 스마트폰 몸체를 좌/우 위/아래로 움직이면 모바일 게임 내 비행기 조정하는 게임을 한번 쯤 해보셨을 꺼에요. 바로 스마트폰 내에 내장된 자이로/가속 센서 값을 이용하여 조정을 하게 되는데 현실에서 이 조정값을 Bluetooth를 통해 아두이노로 보내면 그 값을 토대로 RC카 or 로보팔 같은 것을 실제 조정을 할 수 있게 됩니다.
다양한 센서를 읽을 수 있게 되면 Bluetooth를 통해 아두이노에 활용한다면 꽤 재밌는 것들을 만들 수 있겠죠.
2. 안드로이드 폰 센서 읽기
안드로이드 폰을 기준으로 이야기 하면 위 출처에 가시면 Sensor 부분을 읽으시면 됩니다.
안드로이든 폰에 내장된 센서를 어떻게 읽을 수 있는지 그 방법에 대해 자세히 나와 있습니다.
자바스크립트로 코딩부분까지 자세히 나와 있는데 어플로 센서 값을 읽고 어플 안에 Bluetooth 통신 코딩까지 합쳐진다면 이 어플을 통해서 아두이노를 제어 할 수 있게 되겠죠.
어플을 만들려면 아래 안드로이드 스튜디오와 같은 어플 개발 툴들을 사용 할 수 있어야 겠죠.
- 안드로이드 스튜디오 설치 : https://developer.android.com/studio/install?hl=ko
- Do it! 안드로이드 앱 프로그래밍 강좌 : https://www.youtube.com/playlist?list=PLG7te9eYUi7vXZf7O6Fd2YCnJlx5YG9qq
몇년 전에 봤던 강좌인데 나름 볼만 하네요. 최근판은 어떤지 모르겠네요.
직접 안드로이드 어플로 만들어 봐야 하는데 오래 전에 잠깐 재미로 봤던 거라서 다시 안드로이드 스튜디오를 사용 하려면 공부를 다시 해야하기 때문에 시간이 좀 소요되어 이 부분을 못 보여드리네요.
나중에 안드로이드 스튜디오를 다시 공부하게 된다면 한번 만들어 볼 날이 오겠죠.
스마트폰에 내장된 센서들을 사용하기 위해서는 어플 공부를 하셨으면 합니다.
스마트폰을 아두이노와 연동을 하면 뭘 할 수 있을까요?
간단히 사례와 상상을 이야기 해보겠습니다.
3. 아두이노와 스마트폰의 만남 후 가능성
위 그림을 폰드론 에토스 이미지 입니다. 보시면 아두이노 관점으로 해석하면 드론의 조정 핵심 부분을 스마트폰이 대신하게 됩니다 .스마트폰이 두뇌가 됩니다. 스마트폰에는 드론 컨트롤에 필요한 부품들이 내장되어 있기 때문에 어플로 로직만 잘 짜시면 나머지 아두이노는 폰이 명령한대로 드론모터만 제어하면 됩니다. 이렇게 스마트폰으로 드론을 컨트롤하면 다양한 것들을 할 수 있게 됩니다. 스마트폰에 카메라를 이용하여 고급 촬영이 가능하고 드론에 필요한 고급부품을 스마트폰이 대신하기 때문에 아두이노는 실질적으로 드론모터를 컨트롤하는 기능만 잘 표현하면 됩니다. 제작비를 대폭 줄이고 고급기능을 사용할 수 있게 됩니다.
미래의 전자기기는 이처럼 스마트폰과 연동한 제품들이 많이 만들어 질거라 생각됩니다.
한가지 가능성을 상상을 해보면 저번에 post한 시각장애인을 위한 스마트 지팡이 원리 이해(아두이노) 내용에서 스마트 지팡이를 만약 스마트폰에 연동을 하게 된다면 어떤 것들을 할 수 있을까요.
위 그림처럼 스마트폰의 카메라를 이용 할 수 있게 되면 어떻게 될까요. 정면의 보행길과 사물을 인식할 수 있는 영상처리를 할 수 있겠죠. 이말은 실제 보행유도선이 깔림 보드블록이 없어도 영상으로 가상 보행유도선을 만들어 낼 수 있고 그 정보로 시각장애인을 안내할 수 있게 될거라 생각됩니다. 이걸로 자율보행스마트지팡이를 제작 하면 좋겠죠. 그리고 현재의 위치를 GPS 정보를 알 수 있는데 이 센서를 이용하여 주변의 건물이나 사물을 식별하고 그 정보를 스마트폰으로 제공받을 수도 있겠죠. 시각장애인은 이어폰으로 현재 상황 정보를 소리로 들을 수 있게 되겠죠. 간단히 상상을 해봤습니다. 아두이노 스마트지팡이에 스파트폰을 연결하면 다양한 결과물을 만들어 낼 수 있기 때문에 그 가능성은 엄청납니다.
참고로, 디지털 영상처리에 대해 관심을 가졌으면 합니다. 요즘 핫한 자율주행차에 핵심 기술입니다. 자율보행스마트지팡이로 주변 환경과 사물 인식에 대해 연구하시면 스마트지팡이에서 끝나지 않고 나중에 자율주행차에서도 그 기술을 활용할 수 있을 거라 생각됩니다. 프로그램을 배우는 학생분들은 서점에 가셔서 디지털 영상처리 책을 한번 읽어보시고 관심을 가졌으면 합니다. 저도 영상처리에 관심이 한때 많았고 3D Rendering 쪽으로 코딩 공부를 했었고 영상 인식부분은 자료가 부족하여 제대로 공부를 제대로 못해 봤습니다. 혹시 프로그램에 관심있으신 분이라면 자율주행차나 뭔가 영상인식에 관심을 가진 분들이라면 영상처리를 공부해 보셨으면 합니다. 이 기술은 나중에 아두이노와 같은 것들과 접목하면 고퀄리티 작품을 만들어 낼 수 있는 기반이 됩니다.
마무리
아두이노와 스마트폰을 연동하기 위해서는 어플을 필수로 배우셔야 합니다. 어플 공부가 쉽지는 않습니다. 코딩에 대해서 어느정도 능력이 탑재되어 있어야 합니다. 그럼에도 어플 공부를 추천하는 이유는 스마트폰의 다양한 센서 기능을 활용할 수 있고 그걸 활용하면 아두이노로 엄청난 걸 만들 수 있기 때문입니다. 뭔가 제대로 아두이노 작품을 만들어 보고 싶다면 스마트폰과의 연동에 관한 연구를 하셨으면 합니다. 그리고 영상인식에 관심이 있다면 디지털 영상처리 책을 구매하셔서 공부해보셨으면 합니다.
스마트폰을 활용하기 위해서는 스마트폰의 센서값을 읽을 수 있어야 합니다. 안드로이드폰이면 안드로이드 폰에서 센서값을 읽는 함수를 사용할 수 있어야 합니다. 읽은 센서값에 대한 동작 명령을 아두이노에 보내야 하기 때문에 Bluetooth 코딩도 알아야 합니다. 그러면 어플을 만들 수 있는 개발 툴을 사용 할 수 있어야 합니다. 앱 제작 공부를 해야 합니다. 어플을 만들 수 있는 능력이 있어야 아두이노와 스마트폰의 연동을 제대로 할 수 있게 됩니다. 스마트폰의 센서를 사용하기 위해서는 어플 공부를 해야 하는 어려움이 있지만 꼭 공부해보셨으면 해요.
어플을 공부하시면 나중에 스팀 블록체인과 관련한 어플도 제작 가능하기 때문에 꼭 이쪽 분야가 아니더라도 다른 분야에서도 많이 활용되니깐 공부해보셨으면 합니다.
아두이노를 취미로 하신다더니.. 거의 전문가 수준이신거 같내요..^^
아직 부족한 초심자 수준입니다.
전문가수준까지 갈려면 고가의 부품들을 사서 고퀄리티 실험을 해야 좀 아두이노를 다룰 수 있다고 할 수 있지요.
아무튼 아두이노는 다루기 쉬우면서 그 가능성은 엄청난 것 같아요. 조금만 생각하는 관점만 바꿔도 많은 일들을 할 수 있으니깐요.
눼? 코알못 인사 드립니다. ㅋㅋㅋㅋ
전문가 냄새가 물씬 나는 글이네요.
잘 봤습니다.
챙피함 그냥 즐기는 수준이에요.
스트레스가 쌓이면 전 코딩을 해요. ^^
즐거운 스팀잇 생활하시나요?
무더위야 가라!!!!
스팀이 떡상해서 더위가 달아나기를... ^^
pairplay 가 kr-dev 컨텐츠를 응원합니다! :)
컨텐츠 응원에 감사합니다.
와 스마트폰드론 신기하네요
그쵸,
저도 스마트폰드론을 처음 봤을 때 신기하더군요.
스마트폰을 연동한 작품들을 보면 고퀄리티 작품들이 찾으면 엄청 많습니다.