IOIO

IOIO
トレードマークの「オールホワイト」PCBを備えたIOIO-OTGボード
発売日2011年4月 (2011年4月
導入価格39.95ドル(IOIO-OTG)[ 1 ]
CPUマイクロチップPIC24FJ256 [ 1 ]
接続性ホスト : USB / USB-OTGBluetooth I/O  : GPIOPWMI2CSPIUART、入力キャプチャ、静電容量センシング
Webサイトgithub .com /ytai /ioio /

IOIOヨーヨーと発音)は、 Androidモバイルアプリケーションが外部電子機器と対話できるようにするオープンソースのPICマイクロコントローラベースのボードシリーズです。 [ 2 ] [ 3 ] [ 4 ]このデバイスは2011年にYtai Ben-Tsviによって発明され、SparkFun Electronicsによって最初に製造されました。[ 2 ] [ 5 ] [ 6 ] [ 7 ]「IOIO」という名前は、アプリケーションが外部入力(「I」)を受信し、外部出力(「O」)を生成することを可能にするデバイスの機能に由来しています。[ 4 ]

特徴

IOIOボードには、USBホスト/ USBスレーブとして機能し、接続されたAndroidデバイス上で実行されているAndroidアプリと通信する単一のPIC MCUが搭載されています。 [ 8 ]ボードはUSBUSB-OTG 、またはBluetooth経由で接続を提供し、Java APIを使用してAndroidアプリケーション内から制御できます。[ 1 ] [ 4 ] [ 9 ] [ 10 ] [ 11 ]

IOIOライブラリは、基本的なデジタル入出力アナログ入力に加えて、 PWMI2CSPIUART、入力キャプチャ、静電容量センシング、高度なモーター制御も処理します。[ 3 ] USB 2.0をスレーブモードで使用する古いAndroidデバイスに接続するために、新しいIOIOモデルはUSB On-The-Goを使用してそのようなデバイスのホストとして機能します。[ 1 ]一部のモデルはGoogle Open Accessory USBプロトコルもサポートしています。[ 4 ]

IOIOモーター制御APIは、最大9個のモーターと任意の数のバイナリアクチュエータを同期してサイクル精度で駆動できます。[ 12 ] [ 13 ]開発者は、一連の高レベルコマンドをIOIOに送信し、IOIOはオンチップで低レベルの波形生成を実行します。[ 12 ] [ 13 ] IOIOファームウェアは、ステッピングモーターDCモーターサーボモーターの3種類のモーターをサポートしています。[ 12 ] [ 13 ]

デバイスのファームウェアは、ユーザーが現場で更新することができます。[ 3 ]第一世代のデバイスの場合、更新はAndroidデバイスとGoogle Playで入手可能なIOIOマネージャーアプリケーションを使用して実行されます。[ 3 ] [ 14 ]第二世代のIOIO-OTGデバイスは、 IOIODudeアプリケーションを実行しているデスクトップコンピューターを使用して更新する必要があります。[ 15 ]

IOIOは、コンピューターとAndroidデバイスの両方をファーストクラスのホストとしてサポートし、両方のタイプのデバイスに正確なAPIを提供します。[ 3 ]第一世代のデバイスはBluetooth経由でのみPCと通信できますが、IOIO-OTGデバイスはBluetoothまたはUSBのいずれかを使用できます。[ 3 ] PCアプリケーションは、 JavaまたはC#のAPIを使用してボードと通信できます。Javaが公式APIです。[ 11 ] [ 16 ]

アプリケーション

IOIOのハードウェアとソフトウェアは完全にオープンソースであり、[ 17 ]世界中で何百ものDIYロボットプロジェクトの作成を可能にしました。[ 18 ] [ 19 ] [ 20 ] [ 21 ] [ 22 ]

このボードは、学生が外部世界と対話できるAndroidアプリケーションを作成できるようにするためのさまざまな学習キットに採用されています。[ 3 ] [ 23 ] [ 24 ] [ 25 ]

Qualcomm Snapdragon Micro Roverは、AndroidスマートフォンとIOIOを活用してロボットのモーターとセンサーを制御する3Dプリントロボットです。 [ 26 ] [ 27 ]イスラエルの発明家Guy Hoffman博士が率いるチームは、IOIOを利用してロボットのハードウェアを制御する、感情に敏感なロボットを開発しました。[ 28 ]

レビュー

IOIOは「オタクの楽園」「AndroidデバイスのUSB接続からI/Oを簡単に取得する方法」「AndroidスマートフォンをスーパーArduinoのようなものに変えるUSB I/Oブレークアウトボード」など、様々な形で評価されています。[ 18 ] [ 29 ] [ 30 ] [ 31 ] Scientific Computingの記事では「オタクへの贈り物」として推奨されています。[ 25 ]

オンラインエレクトロニクス雑誌SlashGearによると:

Android用のIOIOと熱センサーをいくつか接続すれば、室温を測定し、熱くなりすぎたらメールで知らせてくれるアプリを簡単に作ることができます。デジタル入出力、PWM、アナログ入力、I2C、SPI、UART制御など、豊富なI/Oオプションが用意されているので、家庭用サーモスタットを接続して、温度に応じて暖房を自動調整することも可能です。

— クリス・デイヴィス、「Android版IOIOにビデオデモが登場:オタクの楽園!」SlashGear [ 18 ] [ 32 ]

このデバイスの最初の製造元 であるSparkFunによると、次の通りです。

Androidデバイスの優れたコンピューティングパワー、インターネット/Bluetooth接続、タッチスクリーン、そして様々なセンサーに加え、周辺機器を簡単に追加して外部とやり取りできる機能も備えています。また、IOIOを使用するにはAndroidデバイスのハードウェアやソフトウェアを変更する必要がないため、保証期間が維持されるだけでなく、ハッカー以外のユーザーにも機能を利用できます。

— 出版チーム、「IOIO Androidインターフェースボード小売」、SparkFun [ 8 ] [ 32 ]

この装置の発明者であるYtai Ben-Tsvi氏によると:

Androidスマートフォンは、インターネット接続と豊富な内​​蔵センサー(カメラ、GPS、IMU、タッチスクリーン)を備えた強力なモバイルコンピューターです。Android SDK開発者の素晴らしい取り組みのおかげで、Androidスマートフォン向けのアプリケーション開発も非常に容易です。多くのアプリケーションにとって、本当に不足しているのは外部周辺機器との接続性です。IOIOはまさにこの点で役立ちます。IOIOは、Androidデバイスの本来の機能を外部回路との通信機能によって強化します。

— Ytai Ben-Tsvi、「IOIO の紹介 - Android 用 I/O」[ 33 ]

技術的な詳細

IOIO V1

第一世代のIOIOピン配置/接続図

第一世代のIOIOボード(IOIO V1として知られる)には、以下のオンボード機能が搭載されている。[ 34 ] [ 35 ]この世代はUSBスレーブモードのみをサポートしており、ホストとしてUSBマスター(PCまたは新しいAndroidスマートフォン)が必要である。[ 2 ] [ 7 ]

IOIO V1は3.3Vロジックレベルデバイスで、5V DC/DCスイッチングレギュレータと3.3Vリニアレギュレータを備えています。[ 36 ] 5Vレギュレータは5~15Vの入力範囲と最大1.5Aの負荷をサポートします。[ 7 ]これにより、接続されたAndroidデバイスの充電や、複数の小型モータなどの負荷の駆動が可能になります。

特徴 詳細 説明
USBコネクタ A型、女性 Android デバイスに接続するために使用されます。
GNDピン 9ピン アース接続。
VINピン 3ピン ボードへの電源供給に使用します。5~15Vの電圧を供給してください。
5Vピン 3ピン 通常、ボードがVINから電源供給されている場合、ユーザー電子機器への5V出力として使用されます。VINが接続されていない場合は、5V入力として使用できます。
3.3 Vピン 3ピン ユーザーの電子機器への 3.3 V 出力。
I/Oピン 48ピン 汎用I/Oピン。ADC、入力キャプチャ、UART、PWM、コンパレータ、PIC MCU(ICSP)のプログラミングなど、特殊な機能を持つものもあります。
電源LED IOIO に電源が供給されているときに点灯します。
ステータスLED 電源投入時に短時間点灯し、その後アプリケーションの制御下になります。
MCLRピン 通常は使用されません。IOIOボードに新しいブートローダーファームウェアをプログラミングするために使用されます。
充電電流トリマー(CHG) AndroidデバイスへのUSB VBUSラインに供給される充電電流の量を調整します。(+)方向に回すと充電電流が増加します。

IOIO OTG

IOIO-OTG ピン配置/接続図

第2世代IOIOボード(IOIO-OTGとして知られる)には、以下のオンボード機能が搭載されています。[ 37 ] [ 38 ] [ 39 ]その名の通り、この世代の重要な特徴はUSB-OTGの導入であり、USBマスターモードとスレーブモードをサポートしています。これにより、IOIOはUSBスレーブモードのみをサポートする古いAndroidスマートフォンにも接続できるようになりました。[ 1 ] [ 9 ]

IOIO-OTGは3.3Vロジックレベルデバイスで、一部のピンは5Vトレラントです。5V DC/DCスイッチングレギュレータと3.3Vリニアレギュレータを搭載しています。5Vレギュレータは5~15Vの入力範囲と最大3Aの負荷をサポートします。[ 1 ]これにより、接続されたAndroidデバイスの充電や、複数の小型モーターなどの負荷の駆動 が可能になります。

特徴 詳細 説明
USBコネクタ マイクロAB型、女性 ホスト コンピュータ、Android デバイス、または Bluetooth ドングルに接続するために使用されます。
電源ジャック 2ピンJST、メス ボードへの電源供給に使用します。5~15Vの電圧を供給してください。
GNDピン 10ピン アース接続。
VINピン 3ピン 回路への供給電圧を出力するため、または電源ジャックへの代替入力として使用されます。
5Vピン 3ピン オンボード レギュレータからの 5V 出力。回路で使用できます。
3.3 Vピン 3ピン オンボード レギュレータからの 3.3 V を回路で使用できます。
I/Oピン 46ピン 汎用I/Oピン。ADC、入力キャプチャ、UART、PWM、コンパレータ、PIC MCU(ICSP)のプログラミングなど、特殊な機能を持つものもあります。
電源LED IOIO に電源が供給されているときに点灯します。
ステータスLED 黄色 アプリケーション制御による汎用オンボード LED。
MCLRピン 通常は使用されません。IOIOボードに新しいブートローダーファームウェアをプログラミングするために使用されます。
BOOTピン 電源投入時にIOIOをブートローダモードにするために使用される特別なピンです。このピンはステータスLEDと共有されていることに注意してください。
充電電流トリマー(CHG) USBホストとして動作している際に、USBのVBUSラインに供給される電流量を調整します。通常、Androidを搭載したバッテリー駆動のアプリケーションで、Androidのバッテリーの急激な消耗を防ぐために使用されます。(+)方向に回すと充電電流が増加します。
ホストスイッチ 「A」モードでは、IOIO-OTGは接続されているUSBコネクタ(micro-Aまたはmicro-B)に応じて、ホストとして動作するかデバイスとして動作するかを自動的に検出します。micro-Bタイプの非標準USBケーブルやアダプタをサポートするには、スイッチを「H」の位置に切り替えてホストモードを強制します。

参照

参考文献

  1. ^ a b c d e f IOIO-OTG、DEV-12633、SparkFun
  2. ^ a b c Lutz, Zachary (2011年4月10日). 「SparkFunがAndroid向けIOIOを発表。ハック不要で頭を悩ませるブレイクアウトボックスEngadget .
  3. ^ a b c d e f g IOIO Mint - ポータブル Android 開発キット、AdaFruit
  4. ^ a b c d SparkFunがIOIOと共同でAndroid開発クラスを開催、PRNewsWire、コロラド州ボルダー、2012年6月27日
  5. ^ IOIO Wiki、GitHub、「これはIOIOの発明者Ytaiのブログです」
  6. ^ Ytai Ben-Tsvi のブログ、Blogspot
  7. ^ a b c Android用IOIO、DEV-10585、SparkFun
  8. ^ a b IOIO Androidインターフェースボード小売、SparkFun USA
  9. ^ a b O'Brien, Terrence (2012年5月30日). 「第2世代IOIO開発中:ワイヤレス革命に対応し、コストを削減Engadget .
  10. ^ IOIO-OTG初心者ガイド、SparkFun
  11. ^ a b IOIO Javaライブラリの基礎、GitHub
  12. ^ a b cモーター制御、IOIO Wiki
  13. ^ a b c IOIOプロッターとモーター制御ライブラリ、2013年5月14日、Ytai Ben-Tsviブログ
  14. ^ IOIO マネージャー Google Play ストア
  15. ^ IOIO-OTG ブートローダーと IOIODude、IOIO Wiki
  16. ^ IOIODotNet GitHub
  17. ^ IOIO GitHub
  18. ^ a b c Davies, Chris (2011年4月8日). 「Android版IOIOのビデオデモが公開:ギークの楽園!」 Slashgear.
  19. ^ IOIO Pinterestで構築されたプロジェクト
  20. ^ DIY Android搭載戦車、Edwin Kee、2011年8月10日、Ubergeek
  21. ^ DIYスマートフォンサーモスタットはAndroid@Homeに何が起こったのか疑問に思わせる、2012年10月15日、Kevin Krause、Phandroid
  22. ^ Android 用飲酒検知器の IOIO ボードでの呼吸、GadgetMaster、 Electronics Weekly、2012 年 5 月 11 日
  23. ^ IOIO Inventor's Kit, RB-Spa-934 Archived 2015-07-12 at the Wayback Machine , RobotShop
  24. ^ SparkFun IOIO用Inventor's Kit、SparkFun
  25. ^ a bジョイス、ジョン・R. (2014年11月13日). 「ホリデーショッピング?シェルドンと仲間たちが喜ぶギフト25選」 . Scientific Computing .
  26. ^ Snapdragon Micro Rover、クアルコム
  27. ^ MENDOZA, HANNAH ROSE (2014年9月21日). 「Qualcommの3Dプリント製マイクロローバー、スマートフォンで操作可能」 . 3DPrint.
  28. ^ Meyrav, Avner (2014年4月9日). 「イスラエルのロボットがあなたの話し方に『感情的に』反応」 . ShalomLife. 2015年7月12日時点のオリジナルよりアーカイブ。 2015年7月11日閲覧
  29. ^ Android用SparkFun IOIOでArduino風のハックが簡単に、Androidコミュニティ、2011年4月7日、Chris Davies
  30. ^ Android用IOIOの詳細:USBブレイクアウトボードのプロジェクトサンプル、Androidコミュニティ、2011年4月8日、Chris Davies
  31. ^ 「IOIOボードはAndroidデバイスのUSB接続からI/Oを取得します」。Electronics Weekly、2011年8月19日。
  32. ^ a b「IOIOブレイクアウトボードでAndroidフォンをハック」 Electronics Weekly、Gadget Master、2011年7月26日。
  33. ^ Meet IOIO - I/O for Android、Ytai Ben-Tsvi のブログ
  34. ^ IOIO-V1ボードについて知る、IOIO Wiki
  35. ^ IOIO V1、SparkFun USA
  36. ^ 「Reliance Electric FlexPak 3000 0-58770-420 | Automation Industrial」 . 0-58770-420.com . 2023年12月13日閲覧
  37. ^ IOIO-OTG ボードについて知る、IOIO Wiki
  38. ^ IOIO OTG、SparkFun USA
  39. ^ IOIO OTG、SparkFun USA