1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

電子工作でiPadを操作してみる1 - タップ

Last updated at Posted at 2020-07-25

はじめに

最近は、iPadでkindle本を読むことが多くなったのですが、
ページめくりを手元でできないかと思っていました。
リレータッチボードとESP32を使って実現できましたので、
紹介させていただきます。
本記事では、タップ動作のみ扱います。

output.gif

電子工作でiPadを操作してみる関連の記事

最終的にやりたいこと

zentai_kiji1.png

  1. ユーザがスイッチを押す
  2. ESP32(Periferal)がスイッチを検出し、Bluetooth経由で通知する
  3. ESP32(Central)が通知を検出し、リレータッチボードをON/OFFする
  4. iPadがタップを検出する

リレータッチボード

スイッチサイエンスさんで取り扱っている製品となります。

touch.png

以下製品紹介を引用

スマートフォンなどの画面をタッチすることができるボードです。スマートフォンの画面にボードを置いた状態でリレーをONにするとボードを置いた位置を指でタッチした状態として認識されます。この製品はリレー駆動用のドライバが搭載されていますので1.6mA程の電流でリレーをONにできます。

作業環境

  • ホストPC
    • windows10 64bit Home
    • VSCode - 1.47.2
    • NodeJS - 12.14.1 LTS
  • ターゲットボード
    • ESP32-WROOM-32 開発ボード
      • MicroPython 1.12(esp32-idf4-20191220-v1.12.bin)

ESP32におけるMicroPythonの環境構築は、以前記載した

作業手順

リレータッチボードの動作の準備

まず、リレータッチボードと接続するためにはんだ付けが必要です。以下がはんだ付けした写真です。

IMG_8485.jpg

次に、ESP32との接続とします。
※最終的に2つ使うので、2つの接続例を載せます。

ESP32 リレータッチボード 備考
5V 5V
GND GND
26 EN
27 EN
  • 接続図(ESP32 - Central)

esp_cen.png

動作確認用のプログラム

次に、動作を確認するプログラムとなります。

import time
from machine import Pin

PIN_RELAY_1 = 26
PIN_RELAY_2 = 27

relays = {}

relays[1] = Pin(PIN_RELAY_1, Pin.OUT)
relays[2] = Pin(PIN_RELAY_2, Pin.OUT)

def tap(no, count=1, ht=50):
    for _ in range(count):
        relays[no].value(True)
        time.sleep_ms(ht)
        relays[no].value(False)
        time.sleep_ms(ht)
    return

ポイントは以下となります。

  • iPadがタップを認識するのは、value(False)のタイミング
  • 待ち時間(ht)を小さくしすぎるとダメ
    • リレースイッチの応答性の問題と思われます
    • 20msec未満だと、失敗することが多い

実行方法

  • 上記のプログラムをdemo.pyとして、ESP32にアップロード
  • 以下を実施する(本記事のトップのgifとなります)
>>> import demo
>>> demo.tap(1, 1, 50)
==> 1回タップされる
>>> demo.tap(1, 100, 20)
==> 100回タップされる
  • 動作確認には、"Vivid Counter"を使用しています

さいごに

  • 今回は、ESP32を使用していますが、ラズベリーパイでもできます
  • 複数のタッチボードを使うとスワイプも実現できます
    • 精度よくスワップをやろうとすると、3つはいるようです(2つだと安定したスワップが難しい)

参考

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?