Archive for マイコン

AIスピーカーと家電の連携ネタ

 Google Home MiniやAmazon Echo Dotでのホームオートメーション。既製品は結構高価な上、値下がりしてたものも高騰してる感じ。じゃあ自分で作るかと。
 うちの寝室はエアコンとシーリングライトが赤外線リモコン対応。シーリングライトのリモコンは点灯ボタンと消灯ボタンが独立してるタイプ。以前ラズベリーパイのi2sDAC音楽プレイヤーを作った時に、ミニコンポを操作出来るように赤外線リモコンを作っていたからこれの応用で行けるだろうと。部品点数も少ないから、ブレッドボード、できればハンダゴテ握りたいかな。あ、照明リモコンはオンオフが共通ボタンタイプだったとしても、照度センサー付けとけば、今点いてるか消えてるかは判断できるなぁ。このあたりが自作だと出来合いの赤外線リモコンより柔軟性はある。ソフト的にはRESTでオンオフできるインターフェイスを宅内LANに公開しときゃ良いのかな?
 ちっとぐぐったらRaspbery Piなんざ使うまでもなくESP-WROOM-32でやってる例があった。ESP32は2つくらい持ってるからこっちのほうが良さそう。単独でADC使えるし。

雨センサー復帰

 入院中にあったマンションの外壁塗装の所為で取り外して部屋の中に回収してあったXBee雨センサー。電池電圧(単2が二本)も2V切るか切らないかくらいまで落ちてきてたのでメンテナンス。ケースを外して、電池交換。雨が当たるプリント基板部分も取れてたのでビニールテープ等で付け直す。親機との通信が確認できたところでベランダの雨があたる位置へ付け直した。週末の雨で動作確認。

raspberry pi設定

pi zero wを手に入れて居たが設定してないので設定した。「w」なのでネットワークは無線LANで。PCからsshできるとこまでは済んだ。
ついでに、遊んでるpi 3も再インストール。最新のrsapbianのGUI付き。無線LANも設定しPCからSSH,VNCできるとこまでやった。

しばらくviなど使ってなかったけど、いじってると思い出してくる。が、キーストロークはそのまま打てないんだよなぁ。左手しか動かんから。

さて、設定は済んだので。ちっとi2c,spi,uartあたりをいじってみます。言語はやっぱpythonかな。

volumio復帰

朝、カーテンを開けるときに和室のTVの後ろにおいてあるRaspberry Piをみると赤いLEDが点滅してる。ブラウザからvolumioにアクセスしてもつながらない。sdが逝かれたかなと思いつつ放おって出勤。

帰宅後確認。
SDを抜いてLinuxでマウントしたら無事。Raspberry Piをマイデスクの方に取り出してSD戻して起動してみたら無事に起動。その状態のPiをもとの環境に戻したらまた赤LEDの点滅。
どうも電源が怪しいと思ってUSB電源を取り替えたら正常起動。
一応バックアップイメージをDDで戻そうかと思ってたので助かった。イメージは16Gあるから時間かかるのよ。volumioも新しくなってるだろうから、そろそろバージョンアップも検討するかな。カスタマイズして、volumioのWeb画面から赤外線リモコンでコンポの電源オンオフやらボリューム調整できるようにしてるので一筋縄ではいかないけどね。

hems基板とりあえず完成

(以下は 2016/10/10の月曜のことですが・・・)

PCA9956BのRGBバーグラフを入れてまずはブレッドボードでテスト。

20161012_01

普通に動作したので、Adafruitのブレッドボードタイプ基板Perma-Protに載せ替えた。

20161012_02

通常のブレッドボードと違ってPerma-Protはセンターの部分が1ピン分短いのだった。左右も63ピンではなく60ピンだけども。

ブレッドボードからブレッドボードタイプの基板への移植なので作業は超楽ちんでした。

次はこいつのケースを3Dプリントするか、プラバンで作るかだな。あと、PCA9956BのRGBバーは少し光り方を変更する予定。今は8個使って250w単位だけど、100w単位にして色で表現したい。0-800は緑系で、801-1600は黄色系で、1601-2400はオレンジ系で、それより上は赤で。うーんやはりBlueのLEDの出番がない(笑)。

PCA9956Bに変更

20161004_01

hemsテストのブレッドボードを先日掲載のロング1列のブレッドボードに変換するのはできた。
ただ、その際にNEOPIXELのRINGを壊してしまったようで、1番目のledがつかなくなった。
速攻で代替品としてスイッチサイエンスさんオリジナルのPCA9956BTW I2C 24ch 電流源型LEDドライバ基板を発注。夜勤明けの今朝届いたのでテストした。独自仕様通信から普通のi2cになるので接続も楽になる。

ハマりポイント1点。mbed1768でテストしたのですが、i2cのプルアップ抵抗必須みたい。うんともすんとも光らなくて、ピンヘッダをハンダ付けしたときにまかりまちがって壊したかと思ったよ。pwmドライバなのでそう簡単に壊れないとはおもいつつ、1kΩの抵抗でSDA,SCLをプルアップしたら無事点灯。
最終実装時は同じi2cバスにつなぐ7セグLED4桁モジュールにプルアップ抵抗がついてるから、こっちはプルアップ抵抗は付けない予定。

あと、微妙な点1点。LEDに書いてるのが見えてしまう。このモジュールはデフォルトでOE#がGND接続でいつでも表示状態。GNDとのジャンパーがあるのでカッターでカットしてMBEDから出力をコントロールしようと思う。

ブレッドボードでの配線(HEMS)

20161002_00

こんな感じかな。中央上にNeoPixel Ring。中央下がi2cな4桁7セグLED。
コレを一旦ブレッドボードに作って動作確認の上、ブレッドボードタイプの基板に落として、上はスモークのプラバンで押さえる予定。
下側に4桁7セグとイーサネットの口がつくので、置くのではなく吊るす感じで設置予定。まぁ、3Dプリンタで脚作れば置けますけどね。

追記
上の画像で作ろうという人はいないと思うけど(mbed以外のモジュールがわからんし)、ブレッドボードの左上のほうで黒い線が間違ってVCCラインに入ってますが、GNDに入れます。画像は差し替えました。

さらに追記
ブレッドボートにテスト実装しました。(ジャンプワイヤの長さの関係で多少アレンジしてますが)
20161004_02

Adafruitのneopixel ringをテスト

20160927_01

電力メータの針としてアナログ電圧計を試してたけど、微妙なので半ばデジタル半ばアナログなRGB LEDのリングをゲット。
mbedのライブラリを幾つか試したけど、動かないやつは動かない。このLEDはタイミングが結構シビアみたい。
とりあえず表示のめどはたったのでいい加減にはんだ付けしますかね。

表示の方は色々検討しつつ。せっかく各色256段階のRGB LEDなのでGREENからREDへグラデーション(っても12個だけど)をかませるか。1個あたり100W/hとして2400w/h超えたら全部赤くするとか。 BLUEの出番がなくなってしまうな。

DACのテスト

20160922_11

hemsで取得した自宅の電気使用量の表示。デジタル以外にアナログもほしいなと、mbed1768のDACを使ってみた。
3Vフルスケールの電圧計で、1Vで1000W相当にして表示する。試した見たけど中華電圧計だと誤差が大きいなぁ。テスターに繋いでみたら、1桁目は確実にあっているのだけど、中華電圧計だとそれも微妙。正しい表示になるように変換関数作って合わせるか、サーボ使った針を作成するか。それとも10連のレベルメータ用のLEDにするか。

HEMS関連ネットへのアップロードもなんとか

 mbedのネット関連のクラスが昔とだいぶ変わってしまっていてコードの修正に時間がかかってしまった。HTTPClientのメンバー関数は減ってるし、TinyHTTP_bはコンパイルできない。
 とりあえずNTPでRTCの時刻をあわせて、ネットにRESTで投稿までできたので先が見えてきた。
 次はブレッドボードから固定基板に移します。温度センサーもつけようかね。
 楽できるように昨夜Adafruitにロングのブレッドボードパターンの基板とか、英字も表示できるLEDとかいくつか発注しておいた。時差があるので、向こうは金曜の朝だったから、即発送されてます。