Дата выпуска | Апрель 2011 г. ( 2011-04 ) |
---|---|
Начальная цена | $39.95 (IOIO-OTG) [1] |
Процессор | Микросхема PIC24FJ256 [1] |
Связность | Хост : USB / USB-OTG , Bluetooth I/O : GPIO , PWM , I2C , SPI , UART , захват входного сигнала, емкостное зондирование |
Веб-сайт | github.com/ytai/ioio/ |
IOIO (произносится как йо-йо ) — это серия плат с открытым исходным кодом на базе микроконтроллера PIC , которые позволяют мобильным приложениям Android взаимодействовать с внешней электроникой. [2] [3] [4] Устройство было изобретено Итаем Бен-Цви в 2011 году и впервые было произведено компанией SparkFun Electronics . [2] [5] [6] [7] Название «IOIO» происходит от функции устройства, которое позволяет приложениям получать внешний ввод («I») и производить внешний вывод («O»). [4]
Плата IOIO содержит один микроконтроллер PIC , который действует как USB-хост / USB-ведомый и взаимодействует с приложением Android, работающим на подключенном устройстве Android. [8] Плата обеспечивает подключение через USB , USB-OTG или Bluetooth и управляется из приложения Android с помощью Java API. [1] [4] [9] [10] [11]
В дополнение к базовому цифровому вводу/выводу и аналоговому вводу библиотека IOIO также обрабатывает PWM , I2C , SPI , UART , захват входного сигнала, емкостное зондирование и расширенное управление двигателем . [3] Для подключения к старым устройствам Android, использующим USB 2.0 в подчиненном режиме, более новые модели IOIO используют USB On-The-Go , чтобы выступать в качестве хоста для таких устройств. [1] Некоторые модели также поддерживают протокол Google Open Accessory USB. [4]
API управления двигателем IOIO может управлять до 9 двигателями и любым количеством двоичных приводов синхронно и с точностью цикла. [12] [13] Разработчики могут отправлять последовательность высокоуровневых команд в IOIO, который выполняет генерацию низкоуровневых сигналов на кристалле. [12] [13] Прошивка IOIO поддерживает 3 различных типа двигателей: шаговые двигатели , двигатели постоянного тока и серводвигатели . [12] [13]
Прошивку устройства пользователь может обновить на месте. [3] Для устройств первого поколения обновление выполняется с помощью устройства Android и приложения IOIO Manager, доступного в Google Play . [3] [14] Устройства IOIO-OTG второго поколения должны быть обновлены с помощью настольного компьютера, на котором запущено приложение IOIODude . [15]
IOIO поддерживает как компьютеры, так и устройства Android в качестве первоклассных хостов и предоставляет точный API на обоих типах устройств. [3] Устройства первого поколения могут взаимодействовать с ПК только через Bluetooth, в то время как устройства IOIO-OTG могут использовать как Bluetooth, так и USB. [3] Приложения для ПК могут использовать API для Java или C# для взаимодействия с платой; Java является официальным API. [11] [16]
Аппаратное и программное обеспечение IOIO имеет полностью открытый исходный код [17] и позволило создать сотни проектов робототехники своими руками по всему миру. [18] [19] [20] [21] [22]
Доска была представлена в различных учебных комплектах, цель которых — помочь студентам писать приложения Android, способные взаимодействовать с внешним миром. [3] [23] [24] [25]
Qualcomm Snapdragon Micro Rover — это 3D-печатный робот, который использует Android- смартфон и IOIO для управления двигателями и датчиками робота. [26] [27] Команда под руководством израильского изобретателя доктора Гая Хоффмана создала эмоционально-чувствительного робота, который использует IOIO для управления оборудованием робота. [28]
IOIO по-разному описывали как «рай для гиков», «простой способ получить ввод-вывод от USB-подключения устройства Android» и «плата USB-ввода-вывода для смартфонов Android, которая превращает ваш телефон в своего рода супер-Arduino». [18] [29] [30] [31] В статье Scientific Computing он упоминался как рекомендуемый «подарок для гиков» . [25]
По данным интернет-журнала об электронике SlashGear:
Вы можете подключить IOIO для Android и пару датчиков тепла и накрутить приложение, которое измеряет температуру в помещении, а затем отправляет вам электронное письмо, если становится слишком жарко. Благодаря ряду вариантов ввода-вывода, включая цифровой вход/выход, ШИМ, аналоговый вход, управление I2C, SPI и UART, вы также можете подключить домашний термостат для автоматической регулировки отопления в ответ.
— Крис Дэвис, «IOIO для Android получает видеодемонстрации: рай для гиков!», SlashGear [18] [32]
По данным SparkFun , первого производителя устройства:
Вы можете объединить потрясающую вычислительную мощность, подключение к Интернету/Bluetooth, сенсорный экран и множество датчиков вашего устройства Android с возможностью легкого добавления периферийных устройств для взаимодействия с внешним миром. Кроме того, использование IOIO не требует никаких аппаратных или программных модификаций вашего устройства Android, что позволяет сохранить гарантию, а также сделать функционал доступным для нехакеров.
— Издательская группа, «IOIO Android Interface Board Retail», SparkFun [8] [32]
По словам изобретателя устройства Итая Бен-Цви:
Телефоны Android — это мощные мобильные компьютеры с подключением к Интернету и богатым набором встроенных датчиков (камера, GPS, IMU, сенсорный экран). Для них также очень легко писать приложения благодаря большой работе, проделанной разработчиками Android SDK. Для многих приложений все, чего им действительно не хватает, — это подключения к внешним периферийным устройствам. Именно здесь и подходит IOIO: он обогащает внутренние возможности устройства Android возможностью связи с внешними цепями.
— Ютай Бен-Цви, «Знакомьтесь: IOIO — ввод-вывод для Android» [33]
Платы IOIO первого поколения (известные как IOIO V1 ) содержат следующие встроенные функции: [34] [35] Это поколение поддерживает только режим USB-ведомого устройства и требует наличия USB-ведущего устройства в качестве хоста (ПК или более новые телефоны Android). [2] [7]
IOIO V1 — это логическое устройство уровня 3,3 В, которое оснащено импульсным стабилизатором постоянного тока 5 В и линейным стабилизатором 3,3 В. [36] Стабилизатор 5 В поддерживает входной диапазон 5–15 В и нагрузку до 1,5 А. [7] Это облегчает зарядку подключенного устройства Android, а также управление несколькими небольшими двигателями или аналогичными нагрузками.
Особенность | Подробности | Описание |
---|---|---|
USB-разъем | тип А, женский | Используется для подключения к устройству Android. |
Контакты заземления | 9 штифтов | Заземление. |
VIN-коды | 3 штифта | Используется для питания платы. Должно подаваться напряжение от 5 до 15 В. |
5 В контакты | 3 штифта | Обычно используется как выход 5 В для пользовательской электроники, когда плата питается от VIN. Может использоваться как вход 5 В, если VIN не подключен. |
Контакты 3,3 В | 3 штифта | Выход 3,3 В для пользовательской электроники. |
Контакты ввода/вывода | 48 штифтов | Контакты ввода/вывода общего назначения. Некоторые из них имеют специальные функции, такие как АЦП, захват входного сигнала, UART, ШИМ, компаратор или для программирования микроконтроллера PIC ( ICSP ). |
Светодиод питания | Загорается, когда на IOIO подается питание. | |
Статический светодиод | Загорается на короткое время при включении питания, а затем переходит под управление приложения. | |
штифт MCLR | Обычно не используется. Его цель — программирование новой прошивки загрузчика на плате IOIO. | |
Регулятор тока заряда (CHG) | Регулирует величину зарядного тока, подаваемого на линию VBUS USB к устройству Android. Поворот в направлении (+) увеличивает зарядный ток. |
Платы IOIO второго поколения (известные как IOIO-OTG ) содержат следующие встроенные функции: [37] [38] [39] Как следует из названия, ключевой особенностью этого поколения является введение USB-OTG , поддерживающего режим USB master или slave. Это позволяет IOIO подключаться к старым телефонам Android, которые поддерживают только режим USB slave, кроме того. [1] [9]
IOIO-OTG — это логическое устройство уровня 3,3 В , некоторые контакты которого допускают напряжение 5 В. Он оснащен импульсным стабилизатором постоянного тока 5 В и линейным стабилизатором 3,3 В. Стабилизатор 5 В поддерживает входной диапазон 5–15 В и нагрузку до 3 А. [1] Это облегчает зарядку подключенного устройства Android , а также управление несколькими небольшими двигателями или аналогичными нагрузками.
Особенность | Подробности | Описание |
---|---|---|
USB-разъем | микро-AB, женский | Используется для подключения к хост-компьютеру, устройству Android или Bluetooth-модулю. |
Разъем питания | 2-контактный JST, гнездовой | Используется для питания платы. Должно подаваться напряжение от 5 до 15 В. |
Контакты заземления | 10 штифтов | Заземление. |
VIN-коды | 3 штифта | Используется для вывода напряжения питания в вашу схему или в качестве альтернативного входа в разъем питания. |
5В контакты | 3 штифта | Выходное напряжение 5 В от встроенного регулятора, которое можно использовать в вашей схеме. |
Контакты 3,3 В | 3 штифта | 3,3 В от встроенного регулятора, который можно использовать в вашей схеме. |
Контакты ввода/вывода | 46 штифтов | Контакты ввода/вывода общего назначения. Некоторые из них имеют специальные функции, такие как АЦП, захват входного сигнала, UART, ШИМ, компаратор или для программирования микроконтроллера PIC ( ICSP ). |
Светодиод питания | красный | Загорается, когда на IOIO подается питание. |
СВЕТОДИОД СТАТ | желтый | Встроенный светодиод общего назначения, управляемый приложением. |
штифт MCLR | Обычно не используется. Его цель — программирование новой прошивки загрузчика на плате IOIO. | |
штифт BOOT | Специальный вывод, используемый для перевода IOIO в режим загрузчика при включении питания. Обратите внимание, что этот вывод используется совместно со светодиодом состояния. | |
Регулятор тока заряда (CHG) | Регулирует величину тока, подаваемого на линию VBUS USB при работе в качестве USB-хоста. Обычно используется в приложениях с питанием от батареи с Android, чтобы предотвратить быструю разрядку батареи Android. Поворот в направлении (+) увеличивает ток заряда. | |
Переключатель хоста | В режиме «A» IOIO-OTG автоматически определит, должен ли он действовать как хост или как устройство, в зависимости от того, какой разъем USB подключен (micro-A или micro-B). Для поддержки нестандартных кабелей USB или адаптеров, использующих тип micro-B, переведите переключатель в положение «H», чтобы принудительно включить режим хоста. |