電子回路でiPhoneのタップ連射機を作った話

この記事は 学生エンジニア Advent Calendar 4日目の記事です

 

妖怪ウォッチぷにぷににも飽きてきたので、かねてからやりたかったタッチパネルの操作の自動化をやってみた。

 

自動タップをやろうとしたきっかけ

この動画に深く感銘を受けました。

https://vimeo.com/101663279

https://github.com/vheun/ArduinoPlaysTimberman

モータを使ったメカ的なアプローチで自動化してみたものは多くあるようですが、このように回路のみで自動化しているものは初めて見ました。

 

出来たもの

このようにタップ連射機を作りました

 

自動タップ装置の作り方

用意するもの

  • iPhone
  • Raspberry Pi
  • ブレッドボード、ジャンパ
  • 抵抗 (10k)
  • トランジスタ (2SC1815Y)
  • 銅テープ(はんだで代用可)

 

全体の設計

基本的なトランジスタのスイッチング回路を使います。

エミッタ接地で下記の回路図を用いました。

kairo

 

タッチパネルの仕組み

iOSなどのタッチパネルの詳しい仕組みはわからないので省略しますが、タッチパネルのセンサーが静電容量を読み取っています。

なので、タッチパネルに電極を配置してセンサーの静電容量を変化させることができれば、タップ動作を自動化することが出来ます。

 

タッチパネルに貼る電極の作成

ここが一番苦労します。

上記の通り、静電容量の変化を読み取るのでタッチパネルに貼った状態で容量の変化があってはいけません。

そのため、細くて短い線を使って電極を作成します

DSC01098

すでにタッチパネルにくっつけてありますが、銅テープに短い銅線をはんだづけしています。

繰り返しますが、貼った状態ではタップを検知しない状態にしておきます。

試しに、この銅線に触れることでタップとなることが確認できます。

 

自動タップ装置の仕組み

動画でもわかるようにタッチパネルに貼り付けた電極に触れるとタップとして認識します。

これをスイッチング回路を使って自動化します。

具体的には設置した電極をRaspberry Piのグラウンドに接地して静電容量を変化させます。

Raspberry PiのGPIO 7 pinを使って、トランジスタのスイッチングを制御しました。

これはArduinoなどでも代用出来ると思います。

 

最後に

センサーを用いると色んなゲームなどの自動化がこれで可能になります。

使ったソースコードはGitHubで公開しています

https://github.com/sotozaraki/AutomaticiPhoneTap

 

 

 

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

コメント

  1. D より:

    はじめまして。
    このページをみて自分でも作りたく、生まれて初めてトランジスタやはんだこてを購入して、見よう見まねで作ってみました。
    しかしながら、銅テープ部分の反応がうまくいかないようです。代わりのLEDはちゃんと好きな様に点滅させることができました。
    最終的には五ヶ所のタップを時間差で繰り返し行うものを作成する予定であり、代替のLEDではすでにできています。
    銅テープ部分のご教授を願えませんか?もしくは発注して製作していただくことは可能ですか?
    ご検討よろしくお願いします。

  2. D より:

    下にアルミホイルか銅板を引くのですね。
    うまくいきそうです。

  3. chorogi より:

    通りすがりで失礼いたします。こちらの記事のお陰で、iPhoneの自動タップ化をすることができました。とても助かりました!
    始め、モーターを使用する方法でやっていたのですが、振動が強すぎたのかiPhoneがバグって復元する羽目になり、もっとソフトな方法がないかと探していたところ、こちらに辿り着きました。
    お陰様でアプリがはかどりそうです。ありがとうございました!

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">