Mac で ESPr Developer: ESP-WROOM-02開発キットのシリアルポートが表示されないとき

Qiitaにも書いた記事ですが、備忘録としてこちらにも

ESPr Developer

スイッチサイエンスで販売しているESPr Developerは、ESP-WROOM-02の開発キット。
シリアルモジュールも実装されているから、USBでPCと接続するだけで、IoT開発を始められる…!

接続してもシリアルポートに出てこない

Arduinoを接続しているときは、シリアルポートのメニューにちゃんと、/dev/cu.usbmodem1411のようなポート名が表示されます。 
しかしながら、ESPr Developerを接続したときには、それらしいポートは見当たりません。ましてや、Bluetoothのはずがない…!

FT231X のVCPドライバをインストール

VCP(仮想COMポート)が必要でした!
FTDIのサイトから、Mac OS X 10.9 and aboveの64bit用ドライバをダウンロードしました。

ダウンロードしたdmgを開き、インストールします。
インストールしたあとは、再起動が必要です(そうしないとArduino IDEのポートに表示されなかった)。

シリアルポートが表示された!

無事に表示されました!
(よくわかんないけど、きっとこれがポートなんだろう!とりあえず選択しておきます)

シリアルモニタを開いて、ボーレートを115200 bpsにし、改行コードをCRおよびLFで設定します。
ESPr Developerのリセットボタンを押すと……ESP-WROOM-02からreadyのレスポンスが届きました!

readyが表示されている!

これで、ESPr Developerで開発を始められます!


なぜFTDIのVCPドライバをインストールしたか

USBに刺さっているものが、FT231Xだとわかったからですね。
(このMacについて > システムレポート… から行ける画面ですね)

システムレポートのUSBの項目

この画面を開くきっかけになったのは、「Mac USB serial port not showing」のクエリでググっている時に見た、Appleのサポートコミュニティのサイトで、「設定のところから、USBに刺さってるものが何なのか見てごらんよ」って書いてあったので、「システムレポート」にたどり着きました。

とはいえ、それよりも前に、Arduinoのフォーラムのスレッド中に解決策が書いてあったのですが、気づかず読み過ごしていました……。なぜなら最後の投稿に、「ケーブル変えたら直ったよ!やいやらw」って書いてあったので……。

ひとまず、これで開発を始められます!

iOSDC 2018 初参加の感想 – すごく良かった!

iOSDCに来たよ。iOSのエンジニアのイベントだよ #iOSDC

A post shared by Takahiro Suzuki (@sussan_0416) on

3ヶ月前から再びiOSエンジニアとして働いているので勉強会など探していたところ、前職の同僚から「iOSDC良いですよ」とおすすめがあった。早速申し込んで、参加してみた。

率直に、すごく良かった!また参加したい!
眠くていまいちまとまらないが、備忘録しとく。

iOSDCに参加した目的

iOSDCに参加した目的は2つ。

  • iOS開発の知識を得る
    • 春頃まで機械学習の担当をしていて、iOSの新しい情報に疎かった
    • 開発やデバッグのノウハウとか知りたかった
  • iOS開発者のネットワークを広げる
    • Androidのほうが好きで、そっちの勉強会ばかり行っていた
    • 業務でiOSアプリをほぼ1人で担当するようになり、不安があった

結果、上記ツイートの通り、どちらの目的も達成することができた。

コミュニケーションを大切にするカンファレンスで良かった

イベント全体的に、コミュニケーションを大切にする雰囲気があった。登壇者へのツッコミや質疑応答が活発だし、セッション後に発表者と議論できる場が設けられているのがすごく良かった。コミュニケーションを取ることに積極的な雰囲気があったのと、なんとかしてiOS開発をしている知り合いを増やしたいという思いから、いろんな人に声をかけることができた。

  • 出展ブースの人
  • 壁にもたれかかったり椅子で休憩していた登壇者
  • すれ違った人、目が合った人
  • ランチでたまたま席で隣だった人

iOS開発している人とのつながりを増やすことができてよかった。今後の開発で困っても頼れるから安心……!

どのセッションも有益な情報が多くて、明日から使えるものばかりだった

iOS開発で日々感じている課題やイケてない感じがするところは、案外共通しているんだなと感じた。

  • Storyboardのコンフリクト
  • ViewControllerやAppDelegate大きくなりがち
  • ビルド遅い問題
  • デバッグしにくい問題
  • テストやらなきゃ

自分でも実践できる内容が多かったので、早速明日から試してみよう!

最近は、アーキテクチャとかテストのことで困っていたから、そのあたりも、登壇してた人と議論できて勉強になったし、小さな座談会みたいなところでも情報交流できてすごく勉強になった。

ぜひ来年も参加したい

眠いから全然まとまり無いな。明日以降は聴講した内容を復習しつつ、アプリのリファクタリングしつつ、新規開発しつつ。

むしろ来年は登壇者になっていろんな開発者の人に貢献できたらいいなとか、スタッフとしてお手伝いできるといいかなとか、自分なりにできる関わり方があるのかなーと漠然と思ったりした。

ArduinoとESP-WROOM-02(ESP8266)の接続

Arduinoを使って娘の覚醒状態をLINE通知しようとして早1ヶ月半が経ちましたが、3月後半〜4月は忙しく、全然制作が進んでいませんでした。その間に娘はすっかり成長し、寝返りも良くするようになったし、いよいよハイハイもし始めるんじゃないかという状況。別の課題が出てくる前に、泣いたら通知するところまでは作りたい。

ESP-WROOM-02(ESP8266)

とりあえずESP-WROOM-02が全然うんともすんとも言わなくて(「ready」って表示してくれなくて)しんどかった。

とりあえず、以下のような接続をしたらArduinoとシリアル通信ができた。

  • 3v3とEVに3.3Vつなぐ(EVには適当な抵抗を付けとく)
  • GNDは接地。2つあったけど片方でも良さそう。
  • RSTには3.3Vかけておく。ボタンがあれば、ボタンを押したときに接地するようにしておけばリセット機能が使える
  • GPIO15は接地(これを知らなくて1日ハマった)。なぜこれをしなきゃならないのかさっぱりわからん。

不要だった部品

  • レギュレータのモジュール(どこのメーカーかわからない3.3V、800mAのレギュレータ。Amazonで買った。Arduinoから出る3.3Vでは足りないという記事もあったが、問題なかった)
  • レベルシフタ(有るとシリアル通信が良くなるのだと思うけれど、無くても動いた)

ノイズ

ESP-WROOM-02のすぐそばで、秋月で買ったアンプ付きマイクモジュールを使っているのだけれど、かなりノイズが乗っていて使い勝手が悪い。そもそものモジュールにマイクを付けるときに温め過ぎちゃったのか、アンプ回路にWifiの電波が干渉しているのか、さっぱりわからない。

引き続きがんばる…。

Arduinoを使って娘の覚醒状態をLINE通知する(まだ途中)

制作動機と課題感

娘は家の2階で寝ているのですが、1階で食器洗いや洗濯をしていると、娘が泣いている声が聞こえず、しばらく泣いたまま放置してしまうことがありました。そこで、娘が泣き始めたらLINEに通知が行くような道具を作ろうと考えました。

関連ツール

知人や最近あった人に聞いたところによると、

  • SONYが出しているIoTデバイス「MESH」でできるよ
  • 余っているスマホがあれば「Alfred」があるよ

という有力情報をいただきました。

しかし、やはり自分で作ってみたい気持ちの方が大きかった……。

システム案

  • Arduinoで、泣いたかどうかを判定する
  • 泣いたら、独自実装したAPIにPOSTリクエストを送る(Google CloudFunctionsや、Herokuで良いと思ってる、Node.jsかGoでサクッと作るつもり)
  • APIにリクエストが来たら、LINE Messaging APIのWebHook URLを叩き、娘が泣いたことを夫と妻のスマホにPushする(あれ、Pushってできるんだっけ…?)

資材調達

そもそも家には、電子工作の道具がまったくなかったので、全て秋月電子のお店で、店員さんに聞きながら集めました。結局、抵抗とかトランジスタはいまいちわからなかったので、全てモジュールを購入しました。モジュール内に抵抗とかは実装されているので、入力する電圧や端子さえ間違えなければ大丈夫(モジュールを使う点は、なんかオブジェクト指向というか、メソッドっぽい。カプセル化されている)。

はんだ付け

電子工作自体は中学の技術の授業以来。はんだこてを使うのは、高校の放送部でケーブル補修して以来。ケーブル補修が週末の日課だったので、なんとなく自信はあったけど、あっけなく崩れた。はんだを乗せる場所(ランドっていうらしい)が小さすぎてすごく難しかった。

なんとか無事、すべてのモジュールのはんだ付けが終わって、液晶もうまく表示ができました。

次の週末は、API側の実装とArduino側の実装、どちらもできるといいなぁ。

Coursera Machine Learning

Courseraというオンライン学習サービスで、機械学習を勉強している。とりあえず3週目までやってみたので感想。(3週目までで、機械学習の基礎知識はつく)

  • 内容はわかりやすい
  • 動画の途中で確認問題が表示されるから、自分の理解をチェックしながら進められる
  • 動画は日本語の字幕があるから、安心して見られる
  • けど、動画によっては、日本語の表示がどんどん遅れていくものがある
  • 英語が読める人であれば、動画の字幕を英語にしたら問題ない
  • 英語のリスニングもできると、なお安心
  • CLIに慣れているとなお良い(Octave/MATLABを使った実装課題がある)

実装課題は、提出スクリプトを実行して提出する。課題はPDFで示され、日本語訳は無い。Google 翻訳があればある程度大丈夫。課題は難しく感じるけど、実際に手を動かすことの大切さを実感する。