週末だったので、休日を挟んで翌週入院生活がスタートしました。一泊して、翌日から手術だといいます。手術が終わったあとは安静とリハビリのための入院。この入院に救われました。入院前は期末試験のことしか頭になくて、一刻も早く退院しなければ!と思って、術後何日で退院できますか?というのが主治医に聞いた最初の質問でした。入院してみると、看護師さんが天使のよう。怪我人なのでやたらに優しくしてくれます。アルバイト先の同僚や学校の先生とは大違い。痛みはどうですか?困ったことはありませんか?と気遣ってくれるし(当たり前かもだけど)試験のために参考書を読んでいると、難しい本読んでてすごいですねーとか褒めてくれる。大学に行ったらみんなやってる当たり前のことなのに!褒めてくれる!結局2週間くらい入院しましたが、その中で本当に救われました。人にやさしくしてもらうことでメンタルがとても回復しました。そのまま2ヶ月程度は杖を欠かせない生活で、アルバイトに戻ることはできないと告げてそのまま退職。期末試験にも間に合い、松葉杖をつきながら大学に行って、なんとか単位も取りました。この1,2年間は、感情の起伏が大変でしたが自分と向き合うことができた期間でした。友達がいなくても心療内科ならお金払えば相談できる(解決するとは言ってない)否定され続けるとメンタルを病むメンタルを病むと何をやってもうまくいかない荒療治的に不向きなことをやり続けるのは危険つらいときは全部ブッチして優しい世界へ逃げるのが最強みたいなところだと思います。たしかに僕はADDなんじゃないかと思いますが、どちらかというとそれよりも、あの頃はうつとか適応障害みたいな感じだったと思っています。僕は実はポンコツじゃなかった!という話ではなく、実際ポンコツです不向きなことをやればよりポンコツになりますし、怒られると本当に萎縮してポンコツになります。人間程度の差はあれど少しはそういうものだと思います。人に対してはなるべく優しく接したいと思いますし、自分もそうされたいです。AP/イーサネットコンバーターにする(LAN8720使用)最近になって、昨年公式githubに”eth2wifi”というサンプルが上がっているのに気づきました。これを使うと、有線LANをつないでWi-Fiアクセスポイントを立ち上げるあるいはESP32がWi-Fiアクセスポイントに接続して、ESP32を介して有線LANの機器をLANに接続するということができるようです。1000円そこらでAPが作れるのは画期的です。ESP32は、Wi-Fiの他に、物理層の部分以外Ethernetにも対応しています。PHY(フィジカル=物理層)の回路が必要です。信号レベルなどを有線LANの規格にあわせたりしてくれる回路なのだと思います。これらの回路をESP32内部に入れるのはあまり使う人いないのに不毛ということで物理層がはじめからは載っていないのだと思います。僕もそれでいいと思います。PHYのICというものがいろいろ出ていて、簡単にブレークアウトボードに乗っているものが手に入るICとして、LAN8720がESP32ではよく使われているようです。いうわけで、LAN8720の載った基板をAliexpressで注文しました。200円くらいで売っています。冒頭のリンクのURLに書いてあるとおり配線しました。配線しないといけなくて、めんどくさいですがジャンパ線で直接接続のバラックです。リンク先に注意書きが書いてあるのですが、LAN8720ボードからのクロック出力をGPIO0に入力していますが、ESP32の起動時にGPIO0がローに落ちていると、ファーム書き込みモードに入ってしまいます。そこで、調べたら出てきた対策をします。発振子の足をNCのピンに引き出して、GPIO17につなぎます。GPIO17はコードの中でクロック出力の有効化・無効化をしてくれています。こんなやり方でいいのか?という感じがしますがこれでうまくいきました。基板を立ち上げるなら、トランジスタで電源ごと切ったりするほうが健全な気もします。menuconfigで動作の設定ができます。Addressは1でした。GPIOで制御ができます。modeにチェックが入っていると、イーサネットコンバーターチェックを外すとAPになります。実際通信してみましたが、CATV12Mではほぼ上限の値が出ていたので、実際にはもっと早いスピードで通信できると思います。ツイッターを見ながらプライムビデオを流すくらいの使い方は余裕でできました。本当に1000円そこらでAPを自作できるのはすごいですね。2つ数珠つなぎにしてAP-イーサネットコンバーターとやれば中継機とかも組めそうです。(それはもっとうまいやり方がありそうですが)どうやってこれを実現しているのか?コードを見るととてもシンプルで驚きます。ESP_OK;}Wi-Fiに受信バッファがあったらEthernetに送るEthernetに受信バッファがあったらWi-Fiに送るというような関数がありますシリアル通信のようなノリでこんなことができているのですね。パケットをそのまま処理しているので、ESP32自身に宛てられたパケットを判別して処理するようなコードを書かないとESP32自身は通信ができないような気がします。市販のAPのようにWebUIを実装したりするのは結構たいへんそうです。ボタンを押しながら起動で別モードとして設定モードが立ち上がるような実装だと特に問題なく作れそうです。RAM付きモデルが出て、大容量のRAMを使えるようになりました。OV2640が載ったESP32ボードが続々登場しています。購入してすぐ、本体がSoftAPモードで立ち上がり、本体のWebサーバーにブラウザでつなぐとカメラの映像がストリーミングできるなどアツい展開になっています。映像オタク的にはそれをやるなら別にネットワークカメラやWi-Fi付きデジカメのほうが画質もいいしいいじゃんということで、マイコンにやらせるなら、実際にはなにかのトリガーで写真を撮ってどこかにアップロードさせたいみたいな用途のほうが強みが発揮できそうです。Driveに写真をアップロードしてみました。APIというものが用意されており、これを使うとRESTでファイル操作が可能になります。Driveにアップロードする方法をご覧いただくとわかるように、認証がやや面倒です。・ブラウザでクライアントID付きの登録URLを開いて認証コードを取得(OAuth認証)・認証コードとクライアントIDとシークレットキーをPOSTしてリフレッシュトークンを取得※ここまでが初期設定です。次からがファイルをPOSTするたびに行う操作です。・アクセストークンとファイル、ファイル情報をPOSTしてファイルをアップロード※アクセストークンには有効期限があり、アクセストークンを取得するためのトークンがリフレッシュトークンです。そのため、毎回リフレッシュトークンから有効なアクセストークンを取得する必要があります。これらの操作をすべて行い、実際にM5Cameraで画像をアップロードするサンプルをArduinoで作ってみました。Driveにファイルをアップロードできます。DriveのAPIキーを取得する必要があります。この操作がしょっちゅう画面構成が変わって、探してもやり方が見つからない場合があるので自分用にもメモしておきます。名前適当で作成クライアントIDとクライアントシークレットが取得できた。Driveに写真を撮ってアップロードしてくれます。電子ピアノを買ったらなんでピアノが身につかなかったのかわかったhttp://blog.nyancotech.online/2018/11/blog-post.htmlの続きのような記事です。結局、集中力がなすぎて楽器もロクに身につかなかったという内容の記事です。恥の上塗りなので別に見なくてもいいです。この記事も読まなくていいです(え小学生で早々に運動神経のなさはわかっていたので、中学校はなるべくゆるいインドア派な部活をやりたいなと思って、将棋クラブに入りました。部室はぞんざいなもので、半分以上倉庫のような部屋に押し込まれていました。先輩はPSPでモンハンやったりしてましたね。自分も特にまじめにやろうと思っていなかったので、将棋ソフトが入った誰かが置いていったパソコンで遊んだりしていました。将棋を指すこともありました。何度やっても毎回負けていました。囲いとかそんなのを覚えるのが煩わしくて適当に指しているから負けているのだとその頃は思っていました。10年近く経った大学生のころ、インドア派な同級生がみんなでスマートフォン用の将棋アプリで遊んでいるのを見ました。タッチパネルだしたしかにやりやすそうだなぁ。最近はメディアにもよく将棋が取り上げられるしやっぱ流行ってるんだなぁと思いつつ自分も入れてみました。将棋ウォーズってやつなのですが、Android/iOSアプリとどちらもあるようです。https://play.google.com/store/apps/details?id=jp.heroz.android.shogiwars&hl=jahttps://itunes.apple.com/jp/app/%E5%B0%86%E6%A3%8B%E3%82%A6%E3%82%A9%E3%83%BC%E3%82%BA/id496801169?mt=8まあ相変わらず負けっぱなしで、対人戦では相手が切断で投了して勝つくらいしか勝つことがないという状態でした。囲っている間に駒がとられていってどんどん不利な局面に...そこで当然のことに気が付きました。対戦は相手がいるのだから、相手も自分を陥れようと駒を指してくるのですね。超性善説の頭お花畑ハッピーさんなので、そんなこと微塵も思っていませんでした。自分の進めたい局面だけではなく、相手がどう動いてくるのかまで見て、それにどう反応していきながら攻めていくかまで考えなければならない。そんなことが人間にできるはずがないと思いましたね。考えてみると多くのゲームやスポーツってそうなっているんですよね。運動神経だけではなく、相手が自分を攻撃してくるのだという背景もその一因だったのです。余談ですが、卓球はまずボールが見えなくて、やっている人たちはどうやって球を打ち返しているのかいまだ不明です。別に運動が嫌いなわけではなく、長距離走や水泳なんかは昔から好きでした。球を使わないからではなく、誰からも攻撃されないからなのですね。陸上競技も、並走している同士でペースの駆け引きがあるといいますが...そんな世界は知らないので...。それを考えると、たとえルールの中でも明らかな悪意をもって相手を陥れるようなことをしている球技をはじめとしたスポーツはやっぱり嫌いですし、将棋のようなゲームも結局はそんなことをしているんだと思って失意しました。Japan他人の失敗や不幸は蜜の味っていうのがネットじゃないですか。これからは失敗談をたくさん書いてバズりまくってみたいものです。