akasaka が 2024年04月13日13時05分15秒 に編集
初版
タイトルの変更
iPhoneの触覚フィードバックユニット(Taptic Engine)のDIP化方法
タグの変更
振動モータ
スマホパーツ
触覚フィードバック
メイン画像の変更
記事種類の変更
セットアップや使用方法
ライセンスの変更
(CC BY 4+) Creative Commons Attribution CC BY version 4.0 or later
本文の変更
# はじめに [前回の記事](https://elchika.com/article/b9f39c29-64aa-42ab-8f73-e6e27a72bd0e/)に紹介した天気予報ディスプレイの小型バージョンを設計していた間に、ブザーの代わりに触覚(ハプティック)フィードバックを採用したら面白いんじゃない!だと思いましたので、今回の実験で古いスマホから取り外したフィードバックユニットを動かしてみます。 # 実験体 今回の実験体としては、iPhone 7 PlusのTaptic Engineを使用しています。  普通はリボンケーブルが付いていますけど、取り切った前に写真を撮り忘れた… 入手方法としては、壊れているスマホをばらして抜け出すか、色々のスマホパーツ通販サイトに取り扱ってるようです。(アリエクとかでも安く買えます) # 接続方法 リボンケーブルが出ている下面の所の横に黒いテープが貼り付けています。イソプロパノールなどで接着剤を溶かして外すと6個のテストポイントを見えます。  他のテストポイントの使い方がわかりませんけど、外側の2個は内蔵コイルに繋がってるようです。 要らないポイントにカプトンテープをかけると半田付けがやりやすくなります。  ※ ちなみにテストポイントの列全体に7mmしかないのでルーペとかがあると便利かもしれません。 半田付け終わってからパターンを取れないようにカプトンなどに巻き込む方がおすすめです。  # 使用方法 これからの制御は基本的にブザーやスピーカーより変わらないです。試しに3.5mmジャックを接続してみました。  サウンドカードのヘッドホン端子に挿してAudacityからテスト信号を再生します。 先ずは Generate→Tone を選択します。  Tone画面が開いたら設定は以下のように変更します: ・Waveform(波形): Square (方形波) ・Frequency(周波数):10 Hz (サウンドカードにはローパスフィルタが入ってるから10Hz以下はあまり出力できない) ・Amplitude: 1  音量を100%に設定してPreviewを押すと…ちゃんと振動しますね! 周波数をいじってみたら、共振周波数は 175㎐ 前後のようです。175Hzの方形波を再生すると着信のときの「ブー」みたいな強い振動を感じます。 # Arduinoなどと使用 Arduino Pro Microのpin 2にTaptic Engineを接続して以下のソースコードで正常に動きました。 ```arduino // 回路: // [Arduino]TAPTIC_PIN -> [Taptic Engine] -> GND[Arduino] #define TAPTIC_PIN 2 void buzz() { tone(TAPTIC_PIN, 175); delay(1000); noTone(2); } void setup() { pinMode(TAPTIC_PIN, OUTPUT); for(int i = 0; i < 3; i++) { buzz(); delay(500); } } void loop() { digitalWrite(TAPTIC_PIN, HIGH); delay(10); digitalWrite(TAPTIC_PIN, LOW); delay(990); } ``` 起動する時点で3回「ブー」のバイブレーションをして、1秒間隔で少しだけ叩くようになります。 ※ 3V3や1V8のマイコンから直接動かすと振動は弱くなるかもしれません。簡単のアンプ回路を作れば解決できるだと思います。