Як я можу інтегрувати смарт-телефон у свій проект з робототехніки? [зачинено]


24

Смартфони в ці дні зазвичай мають гіроскоп, акселерометр, компас, камеру та GPS-датчик. Зазвичай вони також мають підключення до Інтернету за допомогою Wi-Fi та мобільних мереж передачі даних. Я бачив багато випадків використання телефону як пульта управління роботом, але мені здається, що сам телефон є ідеальною легкою платформою обчислень та зондування для автономного робота.

Основна перешкода, яку я бачу, - це взаємодія між приводами. Наприклад, вміючи керувати моторами, щоб керувати навіть робочим столом або керувати сервоприводами, наприклад. Підключення та спілкування з мікроконтролером також може бути перешкодою.

Як хобі-робот, я хотів би знати, як я можу подолати ці та інші перешкоди, щоб мати змогу використовувати силу свого смарт-телефону своїми проектами з робототехніки.


Щоб додати опцію iOS, дивіться SESO iPhone як контролер роботів
Greenonline

Відповіді:


19

Набір для розробки аксесуарів для Android (ADK) має робити все необхідне.

ADK

Це плата Arduino, яка спеціально розроблена для взаємодії з Android. Ви можете підключити два пристрої через Bluetooth або USB (я думаю, або WiFi / Ethernet).

Оскільки вся архітектура відкрита, ви можете використовувати кожну частину для того, що найкраще. Ви пишете код Android для отримання даних із вбудованих датчиків телефону та керування дисплеєм. І ви пишете код Arduino для управління виконавчими механізмами, сервоприводами та іншими датчиками, до яких телефон не приходить. Код для зв'язку між ними надається з відкритим кодом через Google.

З блогу Arduino :

Набір для розробки відкритих аксесуарів Android (ADK) забезпечує реалізацію USB-аксесуара для Android, заснованого на платформі прототипування електроніки Arduino з відкритим кодом, файли дизайну апаратних засобів аксесуара, код, який реалізує вбудовану програму аксесуара, та додаток Android, який взаємодіє з аксесуар. Файли та код апаратного дизайну містяться в завантаженні пакета ADK.

Більшість прикладів розроблені навколо використання телефону як графічного інтерфейсу для якогось апаратного аксесуара, наприклад, годинника. Але немає причин, щоб ви також не могли отримати доступ до датчиків телефону і передавати дані туди-назад.

Adafruit навіть згадує його використання для виготовлення роботів на сторінці свого магазину для ADK:

Швидко відслідковуйте розробку апаратури для Android-телефонів або просто створюйте роботів для мобільних телефонів за допомогою Arduino ADK! Arduino ADK - це мікроконтролерна плата, заснована на потужному ATmega2560 (лист даних). Він має інтерфейс USB для з'єднання з телефонами на базі ОС Android, а також перетворювач посилення живлення для заряджання телефону від постійного струму під час підключення до ADK

(наголос мій)


11

Інший варіант - плата IOIO-OTG :

Дошка IOIO-OTG

Опис продукту Sparkfun описує його функціональність:

Він оснащений мікроконтролером PIC, який діє як міст, що з'єднує додаток на вашому ПК або пристрої Android до периферійних пристроїв низького рівня, таких як GPIO, PWM, ADC, I2C, SPI та UART. Бібліотека рівня додатків допомагає писати контрольний код для цих периферійних пристроїв низького рівня так само, як ви писали б будь-яке інше додаток Java!

Ця рада повинна робити все, що завгодно, і навіть у ній є хороший підручник, який допоможе вам розпочати роботу.


6

Основна проблема, як я бачу, це насправді не взаємодія з виконавчими механізмами. Якщо у вас є хороший спосіб бездротової передачі цифрових (ще краще буде аналоговий або достатньо хороший канал для отримання ШІМ), ви можете просто інтерфейсувати це з чіп драйвера двигуна (наприклад, L293D) і будьте в курсі. Для сервоприводів потрібен хороший час відгуку, щоб ви могли обробляти імпульси. Якщо у вас є PWM-канал, це не повинно бути важким, оскільки канал вже має високу віддачу. Якщо у вас повільний канал, сервоприводи можуть бути неможливі, оскільки вам потрібна точна синхронізація імпульсу.

Перший варіант, який я бачу (хоча це досить громіздко) - це взяти Raspberry Pi, підключити його через Ethernet до бездротового маршрутизатора та підключити телефон до того ж бездротового зв’язку. Тепер просто напишіть основний додаток для вашого телефону, який надсилає запити на Pi на основі вхідних даних, і напишіть інший сервер, наприклад додаток для Pi, який обробляє їх. Може бути об'ємним і дещо важким, але це досить розширюється, ІМО. Ви також можете покласти маршрутизатор за борт і вставити це в Pi (або скористатися гарячою точкою і повністю усунути маршрутизатор).

Інший варіант - використовувати контролер Bluetooth, як показаний тут . Я раніше цього не використовував, але, схоже, вам все одно знадобиться мікроконтролер для цього. Я думаю, ви можете підключити його RX / TX штифти безпосередньо до TX / RX на ардуїно, хоча я не надто впевнений у цьому.

Якщо ви раніше використовували XBee / ZigBee, можливо, ви захочете спробувати Bluetooth бджолу .

Останнім варіантом є використання USB-порту телефону із звичайною настройкою бездротового керування (XBee / що завгодно) - але для цього потрібно буде записати драйвери та все.


5

Так, відсутність штифтів GPIO на смартфонах - ганьба. Якщо у вас уже працює робот ROS, ви можете використовувати цю програму на телефоні Android, щоб отримати доступ до набору сенсорів на телефоні.


4

Багато останніх пристроїв Android, наприклад Nexus 7, підтримують USB On The Go (OTG), що є фантастичним способом сказати, що підтримується режим "USB Host". У цих випадках за допомогою потрібного кабелю, який може бути менше 1 долара, можна використовувати будь-який сумісний USB-пристрій. Вам не потрібна спеціальна версія Arduino, яка має апаратне забезпечення для режиму USB Host.

Я досить експериментував з цим, щоб знати, що "звичайний" Arduino, такий як Леонардо або Teensy 2, видається на телефон Android як TTY (наприклад, послідовний порт) пристрій, коли він з'єднаний з кабелем OTG.

Ця стаття детально розглядає те, як за допомогою Android USB Host API для спілкування з Arduino через додаток Android. Він вимагає Android 3.1+ і не вимагає від вас кореневого пристрою.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.