IOIO (pronunciado yo-yo ) es una serie de placas basadas en microcontroladores PIC de código abierto que permiten que las aplicaciones móviles de Android interactúen con dispositivos electrónicos externos.[1][2][3]​ El dispositivo fue inventado por Ytai Ben-Tsvi en 2011 y fue fabricado por primera vez por SparkFun Electronics.[1][4][5][6]​ El nombre "IOIO" está inspirado en la función del dispositivo, que permite a las aplicaciones recibir una entrada externa ("I") y producir una salida externa ("O").[3]

Características editar

La placa IOIO contiene una única MCU PIC que actúa como host USB / esclavo USB y se comunica con una aplicación de Android que se ejecuta en un dispositivo Android conectado. La placa proporciona conectividad a través de USB, USB-OTG o Bluetooth, y se puede controlar desde una aplicación de Android usando la API de Java.[7][3][8][9][10]

Además de la entrada / salida digital básica y la entrada analógica, la biblioteca IOIO también maneja PWM, I2C, SPI, UART, captura de entrada, detección capacitiva y control de motor avanzado.[2]​ Para conectarse a dispositivos Android más antiguos que usan USB 2.0 en modo esclavo, los modelos más nuevos de IOIO usan USB On-The-Go para actuar como host para dichos dispositivos.[7]​ Algunos modelos también son compatibles con el Google Open Accessory USB protocol.[3]

La API de control de motores IOIO puede manejar hasta 9 motores y cualquier número de actuadores binarios en sincronización y precisión de ciclo.[11][12]​ Los desarrolladores pueden enviar una secuencia de comandos de alto nivel al IOIO, que realiza la generación de formas de onda de bajo nivel en el chip.[11][12]​ El firmware IOIO admite 3 tipos diferentes de motores; Motores paso a paso, motores DC y servomotores .[11][12]

El Dispositivo de firmware puede ser actualizado en el sitio por el usuario.[2]​ Para la primera generación de dispositivos de la actualización se lleva a cabo utilizando un dispositivo Android y la IOIO Manager application de aplicaciones disponibles en Google Play.[2][13]​ La segunda generación de IOIO-OTG debe ser actualizado utilizando un equipo de escritorio que ejecute el IOIODude aplicación.[14]

IOIO es compatible con computadoras y dispositivos Android como hosts de primera clase, y proporciona la API exacta en ambos tipos de dispositivos.[2]​ Los dispositivos de primera generación solo pueden comunicarse con PC a través de Bluetooth, mientras que los dispositivos IOIO-OTG pueden usar Bluetooth o USB.[2]​ Las aplicaciones de PC pueden usar API para Java o C # para comunicarse con la placa; Java es la API oficial.[10][15]

Aplicaciones editar

El hardware y software de IOIO es completamente de código abierto,[16]​ y ha permitido la creación de cientos de proyectos robóticos en todo el mundo.[17][18][19][20][21]

El dispositivo ha sido presentado en varios kits de aprendizaje, cuyo objetivo es ayudar a los estudiantes a escribir aplicaciones de Android que puedan interactuar con el mundo externo.[2][22][23][24]

El Qualcomm Snapdragon Micro Rover es un robot impreso en 3D que aprovecha un teléfono inteligente Android y el IOIO para controlar los motores y sensores del robot.[25][26]​ Un equipo liderado por el inventor israelí Dr.Guy Hoffman creó un robot emocionalmente sensible, que se apoya en el IOIO para controlar el hardware de dicho robot.[27]

Opiniones editar

El IOIO se ha descrito de diversas maneras como un "paraíso geek", "una forma fácil de obtener I / O de la conexión USB de un dispositivo Android" y "una tarjeta de ruptura de I / O USB para teléfonos inteligentes Android que convierte su teléfono en un super-Arduino ".[17][28][29][30]​ Apareció como un "regalo para geeks" recomendado en un artículo de la Scientific Computing.[24]

Detalles técnicos editar

IOIO V1 editar

 
Diagrama de conexión / pinout IOIO de primera generación

Las tarjetas IOIO de primera generación (más conocidas como IOIO V1 ) contienen las siguientes funciones integradas:[31][32]​ Esta generación solo admite el modo USB Slave, y requiere un USB maestro como host (PC o teléfonos Android más recientes).[1][6]

El IOIO V1 es un 3.3   Dispositivo de nivel lógico V, y cuenta con un 5   V DC / DC regulador de conmutación y un regulador lineal de 3.3V. Los 5   El regulador V soporta un 5–15   Rango de entrada V y hasta 1,5   Una carga.[6]​ Esto facilita la carga de un dispositivo Android conectado, así como la conducción de varios motores pequeños o cargas similares.

Característica Detalles Descripción
Conector USB tipo A, hembra Se utiliza para conectarse al dispositivo Android.
Pines GND 9 pines Conexión a tierra.
Pines VIN 3 pines Se utiliza para la alimentación de la placa. Voltaje entre 5-15   V debe ser suministrado.
5   Alfileres en V 3 pines Normalmente se utiliza como 5   Salida de V a la electrónica del usuario, cuando la placa se alimenta desde VIN. Puede usarse como entrada de 5V en caso de que VIN no esté conectado.
3.3   Alfileres en V 3 pines 3.3   Salida V a la electrónica del usuario.
Pines de E / S 48 pines Pines de E / S de propósito general. Algunos tienen funciones especiales, como ADC, captura de entrada, UART, PWM, comparador o para programar el PIC MCU ( ICSP ).
LED de encendido Se enciende cuando el IOIO está recibiendo energía.
Stat LED Se enciende brevemente durante el encendido y luego queda bajo el control de la aplicación.
Pin MCLR Normalmente no se utiliza. Su propósito es programar el nuevo firmware del cargador de arranque en la placa IOIO.
Recortador de corriente de carga (CHG) Ajusta la cantidad de corriente de carga suministrada en la línea VBUS del USB al dispositivo Android. Girar en la dirección (+) aumenta la corriente de carga.

IOIO OTG editar

 
Diagrama de conexión / pinout IOIO-OTG

Las tarjetas IOIO de segunda generación (conocidas como IOIO-OTG ) contienen las siguientes características integradas:[33][34][35]​ Como su nombre indica, una característica clave de esta generación es la introducción de USB-OTG, que admite Modo maestro o esclavo USB. Esto permite que IOIO se conecte a teléfonos Android más antiguos que solo admiten el modo esclavo USB, además.[7][8]

El IOIO-OTG es un 3.3   Dispositivo de nivel lógico V, con algunos de los pines siendo 5   V tolerante. Cuenta con un 5.   V DC / DC regulador de conmutación y un 3.3   V regulador lineal . Los 5   El regulador V soporta un 5–15   Rango de entrada V y hasta 3   Una carga.[7]​ Esto facilita la carga de un dispositivo Android conectado, así como la conducción de varios motores pequeños o cargas similares.

Característica Detalles Descripción
Conector USB micro-AB, hembra Se utiliza para conectarse a una computadora host, un dispositivo Android o un dongle Bluetooth.
Conector de alimentación 2 pines JST, hembra Se utiliza para la alimentación de la placa. Voltaje entre 5-15   V debe ser suministrado.
Pines GND 10 pines Conexión a tierra.
Pines VIN 3 pines Se utiliza para enviar la tensión de alimentación a su circuito, o como una entrada alternativa al conector de alimentación.
Pines 5V 3 pines Salida de 5 V desde el regulador a bordo, que puede usarse en su circuito.
3.3   Alfileres en V 3 pines 3.3   V del regulador a bordo, que se puede utilizar en su circuito.
Pines de E / S 46 pines Pines de E / S de propósito general. Algunos tienen funciones especiales, como ADC, captura de entrada, UART, PWM, comparador o para programar el PIC MCU ( ICSP ).
LED PWR rojo Se enciende cuando el IOIO está recibiendo energía.
LED de estado amarillo LED de uso general a bordo, bajo control de la aplicación.
Pin MCLR Normalmente no se utiliza. Su propósito es programar el nuevo firmware del cargador de arranque en la placa IOIO.
Pin de arranque Pin especial utilizado para poner el IOIO en el modo de cargador de arranque en el encendido. Tenga en cuenta que este pin se comparte con el LED de estado.
Recortador de corriente de carga (CHG) Ajusta la cantidad de corriente suministrada en la línea VBUS del USB cuando actúa como un host USB. Normalmente se usa en una aplicación de batería con Android para evitar que Android agote la batería rápidamente. Girar en la dirección (+) aumenta la corriente de carga.
Interruptor de host En el modo "A", el IOIO-OTG detectará si debe actuar como host o como dispositivo automáticamente, según el conector USB que esté conectado (micro-A o micro-B). Para admitir cables USB o adaptadores no estándar que utilizan el tipo micro-B, mueva el interruptor a la posición "H" para forzar el modo host.

Véase también editar

Referencias editar

  1. a b c Lutz, Zachary (10 de abril de 2011). «SparkFun intros IOIO for Android, a hack-free breakout box to get your mind spinning». Engadget. 
  2. a b c d e f g IOIO Mint - Kit de desarrollo de Android portátil, AdaFruit
  3. a b c d SparkFun aloja la clase de desarrollo de Android con IOIO, PRNewsWire, BOULDER, Colo., 27 de junio de 2012
  4. IOIO Wiki, GitHub, "Y este es el blog de Ytai, el inventor de IOIO"
  5. Blog de Ytai Ben-Tsvi, Blogspot
  6. a b c IOIO para Android, DEV-10585, SparkFun
  7. a b c d IOIO-OTG, DEV-12633, SparkFun
  8. a b O'Brien, Terrence (30 de mayo de 2012). «Second-gen IOIO in the works: embraces the wireless revolution, cuts cost». Engadget. 
  9. Guía para principiantes de IOIO-OTG, SparkFun
  10. a b Conceptos básicos de la biblioteca IOIO Java, GitHub
  11. a b c Control de motor, IOIO Wiki
  12. a b c IOIO Plotter y la biblioteca de control de motores, 14 de mayo de 2013, blog de Ytai Ben-Tsvi
  13. IOIO Manager, Google Play Store
  14. IOIO-OTG cargador de arranque y IOIODude, IOIO Wiki
  15. IOIODotNet, GitHub
  16. IOIO, GitHub
  17. a b Davies, Chris (8 de abril de 2011). «IOIO for Android gets video demos: Geek’s paradise!». Slashgear. 
  18. Proyectos construidos con IOIO, Pinterest
  19. Tanque de bricolaje con Android, Edwin Kee, 08/10/2011, Ubergeek
  20. El termostato de teléfono inteligente de bricolaje nos ha preguntado qué pasó con Android @ Home, 15 de octubre de 2012, Kevin Krause, Phandroid
  21. Respirar en el tablero de IOIO para un dispositivo de análisis de alcohol para Android, GadgetMaster, Electronics Weekly, 11 de mayo de 2012
  22. Kit de inventor de IOIO, RB-Spa-934 Archivado el 12 de julio de 2015 en Wayback Machine., RobotShop
  23. Kit del inventor SparkFun para IOIO, SparkFun
  24. a b Joyce, John R. (13 de noviembre de 2014). «Holiday Shopping? 25 Gifts Sheldon and Friends would Love». Scientific Computing. Archivado desde el original el 17 de abril de 2016. Consultado el 22 de enero de 2019. 
  25. Snapdragon Micro Rover, Qualcomm
  26. MENDOZA, HANNAH ROSE (21 de septiembre de 2014). «Qualcomm’s 3D Printed Micro Rover Controlled by Smartphones». 3DPrint. 
  27. Meyrav, Avner (9 de abril de 2014). «Israeli Robot Reacts 'Emotionally' to How You Talk». ShalomLife. Archivado desde el original el 12 de julio de 2015. Consultado el 22 de enero de 2019. 
  28. SparkFun IOIO para Android hace que los hacks al estilo de Arduino sean simples, Comunidad de Android, 7 de abril de 2011, Chris Davies
  29. IOIO para Android detallado: muestras de proyectos de la tarjeta USB Breakout, comunidad de Android, 8 de abril de 2011, Chris Davies
  30. «IOIO board gets I/O from an Android device’s USB connection». Electronics Weekly. 19 de agosto de 2011. 
  31. Conociendo la placa IOIO-V1, Wiki de IOIO
  32. IOIO V1, SparkFun USA
  33. Conociendo la Junta de IOIO-OTG, Wiki de IOIO
  34. IOIO OTG, SparkFun USA
  35. IOIO OTG, SparkFun USA