ESP32腕時計TTGO T-Watchが届いた


ESP32を搭載した腕時計風のTTGO T-Watchを約49ドルで購入しました。

約2週間で届いたので早速遊んでみました。

資料系

メーカページ(LILYGO)
公式英語マニュアル
公式中国語マニュアル
サンプルソフトウェア

開梱

かわいらしい感じの梱包ですね。

内容物はこちら

T-Watch本体と、予備のボード?、T-Watchの横にあるコネクタから拡張するためのケーブル、Type-Cケーブル、腕時計用バンド、裏蓋取り外し用ネジ回しと予備のネジ

説明書には中を開けた時にどういう感じになっているのか書かれています。

とりあえずこちらも開けてみました。

元に戻して電源ON

最初はタッチパネルの検査プログラムが起動しタッチした座標を報告します、Type-Cコネクタの隣のボタンを押すと、今度は衝撃検知プログラムが起動しstepCountとして振り回した回数を表示します。

とりあえず、パソコンにつなげるとドライバがあれば「Silicon Labs CP210x USB to UART Bridge (COM?)」として認識します。

ドライバがインストールされていない場合は下記の様に「CP2104 USB to UART Bridge Controller」として認識されます。ドライバのインストールについては後述します。

デモ用のプログラムがgithubで公開されていますのでArduio IDEをセットアップします。

ただし、普通にインストールしただけでは認識せず、追加手順が必要となります。

必要なもの

Arduino IDE
git for Windows

T-watch ソフトウェア書き込み手順

TTGO公式の設定手順を参照しながらやりました。

その1:git for Windowsをインストール

以前に別の件でインストールしていたのでそのまま使っています。

その2:Arduino IDEをインストール

今回はArduino IDE ver 1.8.9をインストールしました。

その3: Arduino IDEのインストール先のhardwareディレクトリ内にespressifディレクトリを作る

標準インストールだとC:\Program Files (x86)\Arduino\hardware ディレクトリ内にespressifディレクトリを作る。

その4:作成したespressifディレクトリ内でコマンドプロンプトを開く

作成したC:\Program Files (x86)\Arduino\hardware\espressifディレクトリででコマンドプロンプトを開きます。

その5:gitでespressifのarduino-esp32レポジトリを取得する

espressifディレクトリで「git clone –recursive https://github.com/espressif/arduino-esp32.git esp32」(wordpress編集画面だと「-」が2個なのに1個だけになる・・・)を実行します。

そうすると、 C:\Program Files (x86)\Arduino\hardware\espressif\esp32 ディレクトリが作成されファイルが置かれていきます。

その6:esp32\toolsディレクトリにあるgetコマンドを実行し追加ファイルを取得

C:\Program Files (x86)\Arduino\hardware\espressif\esp32\tools\ ディレクトリ内にある「get.exe」を実行し、追加ファイルを取得します。

その7:Silicon Labs CP210xをインストール/アップデート

手順には明記されていないのですが、古いドライバ Ver6.7.4.261で書き込もうとするとエラーになりました。「T-WatchマニュアルのGetting started」に掲載されているCP2104-Win10(Ver10.1.8.2466)だと正常に動きますので、アップデートします。
(CP2104の製造メーカ公式ドライバダウンロードページ)

なお、書き込み時のエラーは下記の「A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header」です。

その8:T-Watchをパソコンに接続

その9:Arduino IDEを起動し、TTGO T-Watchを選択

Arduino IDEを起動し、「ツール」-「ボード」の一覧から「TTGO T-Watch」を選択します。

その10:T-Watchサンプルソフトを取得

git for Windowsを使って、 https://github.com/Xinyuan-LilyGO/TTGO-T-Watch で公開されているサンプルソフトウェアを取得します。

「git clone –recursive https://github.com/Xinyuan-LilyGO/TTGO-T-Watch」

取得完了後、「library」にあるディレクトリを、マイドキュメントの中にある「Arduino\library」内にコピーします。

その11:書き込み

Arduino IDEからサンプルソフトウェアを書き込みます。


サンプルソフトウェアを書き込んだのですが、うまいこと自宅のWiFiに接続できず、時計合わせに失敗しています。

また、タッチパネルの動作が若干微妙な感じもあります・・・

ブラウザプログラミングができるESP8266モジュールのWebduinoを入手して動かしてみた!



WiFi接続が簡単にできるESP8266を使った製品で、Webブラウザを使ってプログラミングができる「Webduino」というものがある。

2016/11/06に「WebからプログラミングができるESP8266モジュールWebduinoが送料込み$5.88で発売開始」という記事を書いたが、発注から8日で製品が到着。

webdiuno-1
白い箱に袋に入った基板が入っているだけ、という簡易梱包。

基板の裏面はこんな感じで「3色LED」と「明度センサー」が付いています
webdiuno-2

設定手順は「Webduino Smart Wi-Fi Setup」にあるので開きながら実施していきます。

まずはmicroUSBケーブルをさして電源を入れます。
webdiuno-3
青LEDが点灯し、また裏面の3色LEDは赤点灯します。

この状態でスマホなどからWiFi APを検索すると「Smart」というAPがいますので、そこに接続します。
webdiuno-4
接続パスワードは「12345678」です。

接続したらブラウザから「http://192.168.4.1」にアクセスします。
webdiuno-5

WiFi SSID/WiFI PWDは、自宅などのWiFI APを指定します。
また、Device IDは識別できるようなものを指定します。
「SUBMIT」ボタンをクリックし、変更を反映したら、電源を抜きます。

電源を入れ直すと、裏面の3色LEDは、赤点灯したあと、一瞬緑点灯し、消灯します。
この状態で、自宅WiFI APに接続された状態となります。

Webdiunoに割り当てられたIPアドレスを確認するには、スマホなどでWiFi AP検索をします。
webdiuno-8
上記の様に「Smart_<IPアドレス>」という形でIPアドレスが表示されるので確認します。

まずは動作確認として、パソコンから「http://<IPアドレス>」にアクセスできることを確認します。

次にWebブラウザを使ったプログラミングを行います。

サンプルコード」を使いましょう。
webdiuno-10

IPアドレスを指定し、また、「Set color」の横をクリックすると点灯させたいLEDの色を指定できます。

指定が終わったら右上の再生ボタン▶をクリックすると、プログラムが転送され、WebdiunoのLEDが点灯するはずです。
うまく行かない場合は、一度Webdiunoの電源を入れ直してみましょう。

以上のような感じで結構お手軽にプログラミングができます。

なお、手順にはStep5としてfirmwareアップデートがあるのですが、ちゃんと動作しているのかどうかが判断できなかったので、記事には含めていません。
Ver3.0.07より新しいバージョンがあるんだろうか??

USB2.0-Serialのドライバ(esp8266の安ボードで使っていたシリアル)はCH341


esp8266搭載の安いボードを買って、Windows7パソコンにつなげるとドライバが標準認識せず「USB2.0-Serial」となる。

VID 1A86, PID 7523 (VID_1A86&PID_7523) のドライバは何であるのかを調べると、江苏沁恒股份有限公司(WCH)CH340らしい。

ドライバは下記のメーカページからダウンロードできる。
CH341SER.EXE(実行形式のドライバインストーラ)
CH341SER.ZIP(ZIP形式のドライバ)

どちらもバージョンは3.4(2015/10/30 or 2015/11/02)なので、好みに応じてどうぞ

インストールするとドライバのバージョンは 3.4.2014.8 (2014/08/08) でした。


2019/06/27追記

現在は、2019/01/30付けのバージョン3.5が配布されています。

ハードウェア版マウスふるふる(Arduino Leonardo互換のCJMCU beetleの工作例)


CJMCU Beetleという小型のUSB接続のマイコンボードに標準で書かれているプログラムは、USBキーボード/マウスとして認識し、マウスをランダムで動かすという機能となっているらしいので入手してみた。

ネタ元: Okiraku Programing「USB直結のスクリーンセーバーブロッカー

購入はAliexpressの「Beetle ard Leonardo USB ATMEGA32U4 mini development board」から行った。
送料込みで$7.78で、8/22発注、8/25発送、9/1到着、という感じで届きました。


とりあえずWindows10パソコンに接続してみる。

標準でfirmware書き換え用のUSBシリアルポートを認識するというのも驚いた。(Windows7ではドライバ認識はしなかった)

USBキーボードとマウスが認識されてはいるんだが、期待通りにマウスが小刻みに動いている場合と、全然動かない場合が・・・というか、動かないことの方が多い・・・

また、赤いLEDランプが点灯期間が長めの点滅でちょっとうざい。

もうちょっとなんとかならないかとカスタマイズを実施。

準備1:Arduino IDEをインストール

Arduino IDEをインストールする。

準備2:ボード「Arduino Leonardo」を選択

Arduino IDEでボートとして「Arduino Leonardo」を選択する。

準備3:CJMCU beetleをUSBポートにさす

CJMCU beetleをUSBポートにさして認識されるのを待つ(ドライバにより認識が変わる)

準備4:シリアルポートを選択

Arduino IDEで使用するシリアルポートを適切なものに設定する。具体的には「Arduino Leonardo (COM?)」と認識された番号のものを選択する。

準備5:IDE上のボード認識を確認

Arduio IDEの「Get Board Info」で「BN:Arduino Leonardo」と表示されることを確認

プログラミング実施

コードとして以下を入力する。

#include <Mouse.h>
#define LEDPIN 13

void setup() {
  pinMode(LEDPIN, OUTPUT);
  Mouse.begin();
}

int x=4;

void loop() {
  // put your main code here, to run repeatedly:
  Mouse.move(x, 0, 0);
  digitalWrite(LEDPIN, HIGH);   // turn the LED on
  delay(500);
  digitalWrite(LEDPIN, LOW);   // turn the LED off
  x = -x;
  delay(4500);
}

ボードへの書き込みを実施

スケッチ-マイコンボードに書き込むで書き込みを実施する。

なお、今回のこのコードは5秒間隔でマウスを動かし、動かす際にLEDを短時間点灯させる、というものになっています。

LEDの点灯をさせたくなければ「digitalWrite」の行を削除すればokです。