Английская Википедия:IOIO
Шаблон:Use dmy dates Шаблон:For Шаблон:Infobox computer
IOIO (pronounced yo-yo) is a series of open source PIC microcontroller-based boards that allow Android mobile applications to interact with external electronics.[1][2][3] The device was invented by Ytai Ben-Tsvi in 2011, and was first manufactured by SparkFun Electronics.[1][4][5][6] The name "IOIO" is inspired by the function of the device, which enables applications to receive external input ("I") and produce external output ("O").[3]
Features
The IOIO board contains a single PIC MCU that acts as a USB host/USB slave and communicates with an Android app running on a connected Android device.[7] The board provides connectivity via USB, USB-OTG or Bluetooth, and is controllable from within an Android application using the Java API.[8][3][9][10][11]
In addition to basic digital input/output and analog input, the IOIO library also handles PWM, I2C, SPI, UART, Input capture, Capacitive sensing and advanced motor control.[2] To connect to older Android devices that use USB 2.0 in slave mode, newer IOIO models use USB On-The-Go to act as a host for such devices.[8] Some models also support the Google Open Accessory USB protocol.[3]
The IOIO motor control API can drive up to 9 motors and any number of binary actuators in synchronization and cycle-accurate precision.[12][13] Developers may send a sequence of high-level commands to the IOIO, which performs the low-level waveform generation on-chip.[12][13] The IOIO firmware supports 3 different kinds of motors; stepper motors, DC motors and servo motors.[12][13]
Device firmware may be updated on-site by the user.[2] For first-generation devices updating is performed using an Android device and the IOIO Manager application available on Google Play.[2][14] Second-generation IOIO-OTG devices must be updated using a desktop computer running the IOIODude application.[15]
The IOIO supports both computers and Android devices as first-class hosts, and provides the exact API on both types of devices.[2] First-generation devices can only communicate with PCs over Bluetooth, while IOIO-OTG devices can use either Bluetooth or USB.[2] PC applications may use APIs for Java or C# to communicate with the board; Java being the official API.[11][16]
Applications
The IOIO hardware and software is entirely open source,[17] and enabled the creation of hundreds of DIY robotic projects around the world.[18][19][20][21][22]
The board has been featured in various learning kits, which aim to help students write Android applications that can interact with the external world.[2][23][24][25]
The Qualcomm Snapdragon Micro Rover is a 3D printed robot that leverages an Android smartphone and the IOIO to control the robot's motors and sensors.[26][27] A team led by Israeli inventor Dr. Guy Hoffman created an emotionally-sensitive robot, that relies on the IOIO to control the robot's hardware.[28]
Reviews
The IOIO has been variously described as a "geek's paradise", "an easy way to get I/O from an Android device’s USB connection" and "a USB I/O breakout board for Android smartphones which turns your handset into a super-Arduino of sorts".[18][29][30][31] It featured as a recommended "gift for geeks" in a Scientific Computing article.[25]
According to SlashGear, an online electronics magazine: Шаблон:Cquote
According to SparkFun, the first manufacturer of the device: Шаблон:Cquote
According to Ytai Ben-Tsvi, the inventor of the device: Шаблон:Cquote
Technical details
IOIO V1
The first-generation IOIO boards (known as IOIO V1) contain the following on-board features:[32][33] This generation only supports USB slave mode, and requires a USB master as the host (PC or newer Android phones).[1][6]
The IOIO V1 is a 3.3 V logic level device, and features a 5 V DC/DC switching regulator and a 3.3V linear regulator.[34] The 5 V regulator supports a 5–15 V input range and up to 1.5 A load.[6] This facilitates charging a connected Android device as well as driving several small motors or similar loads.
Feature | Details | Description |
---|---|---|
USB connector | type A, female | Used to connect to the Android device. |
GND pins | 9 pins | Ground connection. |
VIN pins | 3 pins | Used for power supply to the board. Voltage between 5 and 15 V should be supplied. |
5 V pins | 3 pins | Normally used as 5 V output to user electronics, when the board is powered from VIN. Can be used as 5V input in case VIN is not connected. |
3.3 V pins | 3 pins | 3.3 V output to user electronics. |
I/O pins | 48 pins | General purpose I/O pins. Some have special functions, such as ADC, Input Capture, UART, PWM, Comparator or for programming the PIC MCU (ICSP). |
Power LED | Lights when the IOIO is getting power. | |
Stat LED | Lights briefly during power-up and then becomes under application control. | |
MCLR pin | Not normally used. Its purpose is for programming new bootloader firmware on the IOIO board. | |
Charge current trimmer (CHG) | Adjusts the amount of charge current supplied on the VBUS line of the USB to the Android device. Turning in the (+) direction increases charge current. |
IOIO OTG
The second-generation IOIO boards (known as IOIO-OTG) contain the following on-board features:[35][36][37] As the name suggests, a key feature of this generation is the introduction of USB-OTG, supporting USB master or slave mode. This enables the IOIO to connect to older Android phones that only support USB slave mode, in addition.[8][9]
The IOIO-OTG is a 3.3 V logic level device, with some of the pins being 5 V tolerant. It features a 5 V DC/DC switching regulator and a 3.3 V linear regulator. The 5 V regulator supports a 5–15 V input range and up to 3 A load.[8] This facilitates charging a connected Android device as well as driving several small motors or similar loads.
Feature | Details | Description |
---|---|---|
USB connector | micro-AB, female | Used to connect to host computer, an Android device or a Bluetooth dongle. |
Power jack | 2-pin JST, female | Used for power supply to the board. Voltage between 5–15 V should be supplied. |
GND pins | 10 pins | Ground connection. |
VIN pins | 3 pins | Used for outputting the supply voltage to your circuit, or as an alternative input to the power jack. |
5V pins | 3 pins | 5V output from the on-board regulator, which can be used in your circuit. |
3.3 V pins | 3 pins | 3.3 V from the on-board regulator, which can be used in your circuit. |
I/O pins | 46 pins | General purpose I/O pins. Some have special functions, such as ADC, Input Capture, UART, PWM, Comparator or for programming the PIC MCU (ICSP). |
PWR LED | red | Lights when the IOIO is getting power. |
STAT LED | yellow | General purpose on-board LED, under application control. |
MCLR pin | Not normally used. Its purpose is for programming new bootloader firmware on the IOIO board. | |
BOOT pin | Special pin used for getting the IOIO into bootloader mode on power-up. Note that this pin is shared with the stat LED. | |
Charge current trimmer (CHG) | Adjusts the amount of current supplied on the VBUS line of the USB when acting as a USB host. Typically used in battery-powered application with Android to prevent the Android from draining the battery quickly. Turning in the (+) direction increases charge current. | |
Host switch | In "A" mode, the IOIO-OTG will detect whether it should act as host or as device automatically, according to whichever USB connector is plugged in (micro-A or micro-B). To support non-standard USB cables or adapters that use micro-B type, move the switch to the "H" position to force host mode. |
See also
References
- ↑ 1,0 1,1 1,2 Шаблон:Cite web
- ↑ 2,0 2,1 2,2 2,3 2,4 2,5 2,6 IOIO Mint - Portable Android Development Kit, AdaFruit
- ↑ 3,0 3,1 3,2 3,3 SparkFun Hosts Android Development Class with IOIO, PRNewsWire, BOULDER, Colo., June 27, 2012
- ↑ IOIO Wiki, GitHub, "And this is the blog of Ytai, the inventor of IOIO"
- ↑ Ytai Ben-Tsvi's Blog, Blogspot
- ↑ 6,0 6,1 6,2 IOIO for Android, DEV-10585, SparkFun
- ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокspark1
не указан текст - ↑ 8,0 8,1 8,2 8,3 IOIO-OTG, DEV-12633, SparkFun
- ↑ 9,0 9,1 Шаблон:Cite web
- ↑ IOIO-OTG Beginners Guide, SparkFun
- ↑ 11,0 11,1 IOIO Java Library Basics, GitHub
- ↑ 12,0 12,1 12,2 Motor control, IOIO Wiki
- ↑ 13,0 13,1 13,2 IOIO Plotter and the Motor Control Library, MAY 14, 2013, Ytai Ben-Tsvi Blog
- ↑ IOIO Manager, Google Play Store
- ↑ IOIO-OTG Bootloader and IOIODude, IOIO Wiki
- ↑ IOIODotNet, GitHub
- ↑ IOIO, GitHub
- ↑ 18,0 18,1 Шаблон:Cite web
- ↑ Projects built with IOIO, Pinterest
- ↑ DIY Android-powered tank, Edwin Kee, 08/10/2011, Ubergeek
- ↑ DIY smartphone thermostat has us wondering what happened to Android@Home, 15 Oct 2012, Kevin Krause, Phandroid
- ↑ Breathing on the IOIO board for an Android Breathalyser, GadgetMaster, Electronics Weekly, 11 May 2012
- ↑ IOIO Inventor's Kit, RB-Spa-934 Шаблон:Webarchive, RobotShop
- ↑ SparkFun Inventor's Kit for IOIO, SparkFun
- ↑ 25,0 25,1 Шаблон:Cite web
- ↑ Snapdragon Micro Rover, Qualcomm
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ SparkFun IOIO for Android makes Arduino-style hacks simple, Android Community, April 7, 2011, Chris Davies
- ↑ IOIO for Android detailed: Project samples from USB breakout board, Android Community, April 8, 2011, Chris Davies
- ↑ Шаблон:Cite web
- ↑ Getting To Know The IOIO-V1 Board, IOIO Wiki
- ↑ IOIO V1, SparkFun USA
- ↑ Шаблон:Cite web
- ↑ Getting To Know The IOIO-OTG Board, IOIO Wiki
- ↑ IOIO OTG, SparkFun USA
- ↑ IOIO OTG, SparkFun USA
- Английская Википедия
- Страницы с неработающими файловыми ссылками
- Single-board computers
- Robotics
- Microchip Technology hardware
- Do it yourself
- Open-source robots
- Open-source hardware
- Страницы, где используется шаблон "Навигационная таблица/Телепорт"
- Страницы с телепортом
- Википедия
- Статья из Википедии
- Статья из Английской Википедии
- Страницы с ошибками в примечаниях