스마트 폰을 로봇 프로젝트와 통합하려면 어떻게해야합니까? [닫은]


24

요즘 스마트 폰에는 자이로 스코프, 가속도계, 나침반, 카메라 및 GPS 센서가 모두 내장되어 있습니다. 또한 일반적으로 Wifi 및 모바일 데이터 네트워크를 통해 인터넷에 연결되어 있습니다. 전화를 로봇의 리모컨으로 사용하는 경우를 많이 보았지만 전화 자체가 자율 로봇을위한 완벽한 경량 컴퓨팅 및 감지 플랫폼 인 것처럼 보입니다.

내가 보는 주요 장애물은 액추에이터와의 인터페이스입니다. 예를 들어 탁상 로봇이나 조종 서보를 조종하기 위해 모터를 제어 할 수 있습니다. 마이크로 컨트롤러를 연결하고 통신하는 것도 장애가 될 수 있습니다.

로봇 애호가로서 로봇 프로젝트와 함께 스마트 폰의 힘을 활용할 수 있도록 이러한 장애물을 극복 할 수있는 방법을 알고 싶습니다.


iOS 옵션을 추가하려면 SESO iPhone을 로봇 컨트롤러로보십시오
Greenonline

답변:


19

안드로이드 액세서리 개발 키트 (ADK)는 당신이 필요로하는 모든 것을해야한다.

ADK

Android와 상호 작용하도록 특별히 설계된 Arduino 보드입니다. 블루투스 또는 USB (또는 WiFi / 이더넷)를 통해 두 개를 연결할 수 있습니다.

전체 아키텍처가 개방되어 있으므로 각 부분을 가장 잘 활용할 수 있습니다. 휴대 전화의 내장 센서에서 데이터를 가져오고 디스플레이를 제어하기 위해 Android 코드를 작성합니다. 그리고 Arduino 코드를 작성하여 액츄에이터, 서보 및 전화가 제공되지 않는 기타 센서를 제어합니다. 둘 사이의 통신 코드는 Google을 통해 오픈 소스로 제공됩니다.

로부터 아두 이노 블로그 :

ADK (Android Open Accessory Development Kit)는 Arduino 오픈 소스 전자 프로토 타이핑 플랫폼, 액세서리의 하드웨어 디자인 파일, 액세서리의 펌웨어를 구현하는 코드 및 종범. 하드웨어 디자인 파일 및 코드는 ADK 패키지 다운로드에 포함되어 있습니다.

대부분의 예제는 시계와 같은 일종의 하드웨어 액세서리에 대한 그래픽 인터페이스로 전화를 사용하도록 설계되었습니다. 그러나 휴대 전화 센서에 액세스 할 수없고 데이터를주고받을 수있는 이유는 없습니다.

Adafruit 는 ADK를 위해 매장 페이지 에서 로봇을 만드는 데 사용한다고 언급했습니다 .

Arduino ADK로 Android 전화 하드웨어 개발을 빠르게 추적하거나 휴대폰 로봇 을 설계 하십시오! Arduino ADK는 강력한 ATmega2560 (데이터 시트)을 기반으로하는 마이크로 컨트롤러 보드입니다. Android 기반 전화와 연결하기위한 USB 호스트 인터페이스와 ADK에 연결된 상태에서 DC 전원으로 전화를 충전하는 전원 공급 장치 부스트 컨버터가 있습니다.

(강조 광산)


11

다른 옵션은 IOIO-OTG 보드입니다 .

IOIO-OTG 보드

스파크 펀 제품 설명 의 기능을 설명합니다 :

PC 또는 Android 장치의 앱을 GPIO, PWM, ADC, I2C, SPI 및 UART와 같은 저수준 주변 장치에 연결하는 브리지 역할을하는 PIC 마이크로 컨트롤러가 있습니다. 앱 수준 라이브러리를 사용하면 다른 Java 앱을 작성하는 것과 같은 방식으로 이러한 하위 수준 주변 장치에 대한 제어 코드를 작성할 수 있습니다!

이 게시판은 당신이 원하는 모든 것을해야하며, 시작하는 데 도움 이되는 훌륭한 튜토리얼 도 있습니다 .


6

내가 본 주요 문제는 실제로 액추에이터와 인터페이스하는 것이 아닙니다. 디지털로 무선으로 전송하는 좋은 방법이 있다면 (아날로그 또는 PWM을 수행하기에 충분한 채널 일 수도 있습니다) 신호를 무선으로 전송할 수 있다면 모터 드라이버 칩 (예 : L293D)을 사용해야합니다. 서보의 경우 펄스를 처리 할 수 ​​있도록 좋은 응답 시간이 필요합니다. PWM 가능 채널이있는 경우 채널의 전송 속도가 이미 높기 때문에 어렵지 않습니다. 채널이 느린 경우 정확한 펄스 타이밍이 필요하기 때문에 서보가 불가능할 수 있습니다.

내가 볼 수있는 첫 번째 옵션은 다소 부피가 크지 만 Raspberry Pi를 가져 와서 이더넷을 통해 무선 라우터에 연결 한 다음 전화를 무선으로 동일한 연결하는 것입니다. 이제 입력을 기반으로 Pi에 요청을 보내는 휴대 전화의 기본 응용 프로그램을 작성하고 이러한 응용 프로그램을 처리하는 Pi의 응용 프로그램과 같은 다른 서버를 작성하십시오. 부피가 크고 다소 어려울 수 있지만 확장 성이 뛰어납니다. 또한 라우터 오프 보드를 넣어 스틱 수 파이로 (또는 사용 핫스팟과 완전히 라우터를 제거).

다른 옵션은 여기에 표시된 것과 같은 블루투스 컨트롤러를 사용하는 입니다. 나는 이것을 전에 사용하지는 않았지만 이것을 처리하기 위해 여전히 마이크로 컨트롤러가 필요한 것처럼 보입니다. 확실하지는 않지만 RX / TX 핀을 arduino의 TX / RX에 직접 연결할 수 있다고 생각합니다.

XBee / ZigBee를 사용한 적이 있다면 블루투스 비 를 사용해보십시오 .

마지막 옵션은 기존의 무선 제어 설정 (XBee / 무엇이든)과 함께 전화 USB 포트를 사용하는 것입니다. 그러나 드라이버를 작성하려면 하나가 필요합니다.


5

그렇습니다. 스마트 폰에 GPIO 핀이 부족하다는 것은 부끄러운 일입니다. 로봇에서 이미 ROS를 실행중인 경우 Android 전화 에서이 앱 을 사용 하여 전화의 센서 제품군에 액세스 할 수 있습니다.


4

Nexus 7과 같은 최신 Android 기기는 'USB 호스트 모드'가 지원된다는 멋진 표현 인 USB On The Go (OTG)를 지원합니다. 이 경우 1 달러 미만으로 구입할 수있는 올바른 케이블을 사용하면 호환되는 모든 USB 장치를 사용할 수 있습니다. USB 호스트 모드 용 하드웨어가있는 특수 버전의 Arduino가 필요하지 않습니다.

나는 OTG 케이블로 연결될 때 Leonardo 또는 Teensy 2와 같은 '일반적인'Arduino가 Android 전화에 TTY (예 : 직렬 포트) 장치로 나타나는 것을 알기에 충분히 실험했습니다.

이 기사에서는 Android USB Host API를 사용하여 Android 앱에서 Arduino와 통신하는 방법에 대해 자세히 설명합니다. Android 3.1 이상이 필요하며 기기를 루팅 할 필요가 없습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.