Repository files navigation
バ○スタはI2Cで制御できる。なので、HTCPCP対応にした。
本README.mdをしっかりさせた版は、C91 1日目 西み-20a SIGCOWW にて頒布
ネスカフェ ゴールドブレンド バリスタ PM9631
メイン基板がある
こいつがヒーターやポンプを制御する
STM8Sが使われている
操作パネルがある
こいつでメイン基板を操作する
こいつもSTM8S(メイン基板と異なる型番)
ちなみにSWIMは動かなかった
I2Cやんけ
マスターはメイン基板、スレーブが操作パネル
操作パネルがスレーブ?どうやってマスターにボタンが押されたことを伝える?
ポーリングでもするか?
実はIRQの線がある
これを使って、あたかもスレーブから通信を開始したように見える
全く関係ないけど、某NFC関連のICに似てる
でも、SPIやUARTで良いんじゃないですかね…
他にバスに繋がる機器があるのかな…
ロジアナでメッセージを解析した
電源ON/OFF、コーヒー抽出(全5種類)、水切れ、コーヒータンクカバー開状態、ドロワー開状態
IRQがこんなタイミングで出て、こんなメッセージが来て、またIRQを出すんだ
スレーブはメッセージを受け取ったらレジスタに格納して、状態を持っておくんだ
その他のエラーや、コーヒーの濃さ調整のメッセージは見ていないよ
電子的にボタンを「押す」
操作パネルのボタンです
トランジスタを用いて電極を短絡させる
過去にやったわ
おふざけが足りない
オレオレ操作パネル
操作パネルの挙動をまねる
メイン基板とI2Cで通信する
カッコイイ!
こっちにしよう
HTCPCPでコーヒー抽出命令を受ける
HTCPCPではRTCを用いるべきとされる
面倒そうなので却下
やるとしたら、NTPを使ってI2C/SPIのRTCモジュールに書き込んで…みたいな感じでしょう
元々の操作パネルも使えるようにしたほうが良いのでは
面倒そうなので却下
やるとしたらI2Cマスターにもなる「オレオレメイン基板」も作る必要がある
コーヒーカップがセットされていないときは抽出できなくしたほうが良いのでは
面倒そうなので却下
やるなら圧力センサとか、光センサでなんとかすることになるでしょう
TCP/IPが喋れる必要がある
Raspberry Piは豪華すぎる
ESP-WROOM-02で良い
ESP-WROOM-02はまぁ良い
I2Cスレーブになる必要がある
ESP-WROOM-02(ESP8266)のI2Cはソフトウェア実装らしい
I2Cスレーブも「GPIOをこうやって制御すれば動くよ」で非常に不安
なんか適当なマイコン繋いで、それをUARTで制御しよう
簡単のため1文字(ここでは8bitとする)だけでやりとり
人間に優しく、基本的には頭文字(エスプレッソ抽出命令 ならば E とか)
LPC1114を使う
LPC1114は素晴らしい
使うピンは5本(I2C + UART + IRQ)なのでLPC810でもISPピンやRESETピンを潰せば動きそう
マスターがクロックストレッチ非対応
これもしかしてソフトウェアで作ってある?
SCLも14.2kHzとか変な感じだし、微妙に変わる
クロックストレッチが発生しないように対策
強制的に…でなく、時間のかからない単純な処理とした
シリアルのドライバ
オレオレ操作パネルをいきなりメイン基板に繋ぐのは不安
簡単なI2CマスターをArduinoで作ろう
Arduinoはaliexpressで買った激安の互換品
当然、USB-シリアル変換器は専用チップ
オレオレ操作パネルとArduinoは、USB-シリアル変換器とか介してPCへ接続
同じPCに繋ぐとドライバが干渉したのか、どちらもリセットされる
もしかしてどこかで短絡したのかな…と時間溶かした先輩
対処法は「別のPCへ繋ぐ」
プルアップ抵抗
データシート「このマイコンのこのピンはプルアップ抵抗入っているので」
なるほど
でも、外部でプルアップしないと動かないピンがあった
プルアップが弱かったのかな…
まぁいいんじゃないか
バリスタをI2Cで制御できたので、HTCPCP対応にした
ところで、バリスタiが出ました
Bluetooth(BLEかな)とTCP/IPが話せる機器を近くに置いておけば、無改造でHTCPCP対応にできそう
至急、ESP-WROOM-32(ESP32)技適取ってくれや
Raspberry Pi 3でもいいぜ
You can’t perform that action at this time.