2016年10月26日水曜日

Raspberry Pi + LPC1114FN28

Raspberry Pi 2 Model BとLPC1114FN28をつないでみました。

存在感を放つLPC1114FN28 :-)

■追記 11月13日■

デスクトップで使っている場合には問題なかったのですが、ssh経由でターミナルからログインしてつかっているとシリアルターミナルが /dev/ttyAM0 が有効になってしまうためlpc21ispが動いてくれません。そのための手順を加筆しました。

■追記ここまで■


ユニバーサル基板だと面倒なのでElecrowに基板発注したんですが、いやー、スルーホール部品多いとめんどくさいです。ほんの1-2年前まで「表面実装ばかりになってこれからどうすれば良いのかorz」なんて言ってたのにね。

…今、これを書いていて、「ブレッドボードでいいじゃん」と気が付きましたがorz

でも、このぐらいの基板なら一発で動いちゃいますから、今時のCADとかPCB業者って凄いですね。ああ塩化第二鉄のニオイが懐かしい。インスタントレタリングとかレトラテープでパターンを書いたもんさ(遠い目

さて。

RPi + LPC1114でググってみるとRPiにつないだUSBシリアルなどから書き込みをしたり、shellでRESET/ISPを操作している例が多いのですが、最新版のlpc21ispにはgpioでRESET/ISPを制御する機能があるので、これを使わない手はありません。

LPC1114FN28のDP23とRPiのDP24, DP24とGPIO23, DP16とRxD, DP15とTxDを接続します。あとは電源VccとGnd、何もないと寂しいのでDP14に赤色LEDと抵抗(とりあえず1kΩ)をつなぎます。

書き込みには前述の通りlpc21ispを使います。ただ、apt-getで入れるとgpiorst / gpioispのコントロール機能が有効にならないのでgithubから落としてビルドします。

と言っても、
cd
git clone https://github.com/capiman/lpc21isp.git
cd lpc21isp
make
sudo cp lpc21isp /usr/local/bin
sudo chown root:root /usr/local/bin/lpc21isp
だけです。

なお、sshからログインしてターミナルで使っている場合には、以下の手順でシリアルコンソールを無効にする必要があります。

  1. /boot/cmdline.txtを開いて console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 を削除
  2. rebootし、再度sshでログインした後、
    sudo systemctl stop serial-getty@ttyAMA0.service
    で、コンソールを停止にする

2.については再起動するたびに実行する必要があります。serviceをdisableすれば毎回実行しなくて良いのですが、sshもVNCも接続できなくなってしまいました(キーボード/マウス/ディスプレイを接続して再度enableして復活)。シリアルコンソールを停止する手順は以上です。

GPIO23とGPIO24を出力として有効にします。
sudo echo 23 > /sys/class/gpio/export
sudo echo 24 > /sys/class/gpio/export
sudo echo out > /sys/class/gpio/gpio23/direction
sudo echo out > /sys/class/gpio/gpio24/direction
書き込むプログラムはmbedのオンラインコンパイラで用意します。mbed_blinkyで、

DigitalOut myled(dp14);

のところをLEDをつないだIOに変更します。targetをLPC1114FN28にしてコンパイルするとmbed_blinky_LPC1114.binが~Downloadsディレクトリ下に落ちます。

お待たせしました。

pi@raspberrypi:~/Downloads $ sudo lpc21isp -gpiorst24 -gpioisp23 -controlinv -bin mbed_blinky_LPC1114.bin /dev/ttyAMA0 115200 48000
であとは勝手にRESETとISPが操作されて
lpc21isp version 1.97
File mbed_blinky_LPC1114.bin:
loaded...
image size : 10540
Image size : 10540
Synchronizing (ESC to abort). OK
Read bootcode version: 1
7
Read part ID: LPC1114.../102, 32 kiB FLASH / 4 kiB SRAM (0x1A40902B)
Will start programming at Sector 1 if possible, and conclude with Sector 0 to ensure that checksum is written last.
Erasing sector 0 first, to invalidate checksum. OK
Sector 1: ...........................|.........................|.........................|.........................
Sector 2: ...........................|.........................|.........
Sector 0: ..........................|.........................|.........................|.........................
Download Finished... taking 2 seconds
Now launching the brand new code
pi@raspberrypi:~/Downloads $ 

これでめでたくLPC1114FN28のDP14につないだLEDが点滅します。

やったね♡

lpc21ispの作者およびgpiorst/gpioispの機能を提供してくださった方々に感謝申し上げます。ああ、今晩はぐっすり眠れそうだw

■追記 2017年1月10日■

Raspberry Pi 3Bだとlpc21isp(シリアルポート)が動作しないことがあります。OSのバージョンなどによって異なるようですが、上記の手順で動作しない場合には/boot/config.txtの末尾に以下の行を追加してみてください
dtoverlay=pi3-miniuart-bt

2016年10月25日火曜日

ESP+Tilt & Panステージ+放射温度計


新しいESP基板が出来たので、以前作ったものを作り直してみました。上の写真は新しいモジュール、下が旧バージョンです。

旧バージョン
旧バージョンはTilt & Panステージの上にセンサーだけ載せていたのでESPとの間に配線が10本走っていたのですが、今度はESP基板もステージ上に置けるので外部からの配線は電池ボックスからの電源2本だけです。

なお、このPan&TiltはElecrowで$12で売ってます。同じお店の$11のものとどこが違うのかわかりません(笑)。

サーボの線をもっと短くすればよかった…

ステージとESP+センサーの固定、前作ではテグスでグラグラと縛っていただけでしたが、今度は3Mの「ツマミを引っ張ると簡単に剥がれる両面テープ」を使いました。コンクリートの壁などにも貼れる強力なテープですが、基板の下からハミ出ている白いベロを引っ張ると簡単に剥がれます。

iOSアプリは前回と同じ。iOSテザリングでESPと接続しています。データ転送はUDPです。


センサーはMXL90614、赤外線放射温度センサーです。今回使った基板はVin, Gnd, SCL, SDAの順で並んでいてESP基板の並びと合わないので、隣接するIO12とIO13から digitalWrite(12, Low); digitalWrite(13, HIGH); で電源供給しています。サーボはIO15, IO16です。



■CM■

ここで使用した新ESP-WROOM-02基板Board4、スイッチサイエンス社から発売中です。

なお、Board2とBoard3はお星様になりました(違

2016年10月23日日曜日

地味に便利な電池ボックス(改)


スイッチ付き電池ボックスにメスのジャンパワイヤを取り付けました。

地味に便利っす。

オスの方がブレッドボードに直接させて更に手軽なんですが、安全性を考えてメスにしました。まぁ電池ボックスにスイッチついてますけども…予防安全的なアレで。

ついでに、もう一つ。


こっちも電池ボックスのミニ改造、中間点からもう一本線を引っ張り出しました。アンプなどで正負電源が必要なときに便利に使えます。

2016年10月22日土曜日

経筋+関節技(?)

膝と肘がとても痛いです。

まぁ原因は肥満と自転車なんすけど。診断名は変形性膝関節症。肘は診てもらってないので不明ですが、いわゆるテニス肘です。テニスしてないけど。

膝は通院して10回以上ヒアルロン酸を注射してもらい、左側に関してはかなり効果があったと思うんですが、右がダメです。

ということで、昔、巨デブだったころ、when I was fat, so much fatter than todayなあの頃に痛めた膝から回復した「経筋療法」を再開することにしました。トレーニング雑誌(そんなのを読んでいた時代もあった)に出ていて、これは効きそうだ!と思い専門書を買って試してみたら見事に効いたとです。

ちなみに経筋というのは東洋医学でおなじみの経絡のオリジナル・バージョンらしいです。経絡が全身的な体調をコントロールするのに対して、経筋は骨や筋肉に作用する、とされています。理系というか科学信者のワタクシがそんなことを言ってて良いのか?という気もしますが、有効なプラセボは無効な痛み止めより科学的なのだ(笑)。

…なんで、今回もすぐにそれをやらなかったのか?といえば、夏だったからです。素人にできる経筋療法はキネシオテープを使うのですが…これが見事に汗疹になるからです。

数年ぶりに引っ張り出したら糊が変色してたw

テキストを引っ張り出して、念のためツボなどの位置を確認。というか、足の指から甲までをキネシオ貼るだけなんですけどね。キネシオの貼り方については、Webなどで検索してください。

切れ目を入れてペタペタ貼るだけ。

肘に関しては、やはり自転車乗り始めた頃に痛めてしまい、いろいろ病院にも通ったのですがどうにもならず。整体とか何万円使ったかわからないです。でも、ある日行きつけのトレーニンググッズの店(そんなところに通っていた時代もあった)で、レジのボクサーのおにいさんから「それ、手首をサポーターで締めると効きますよ。自分らも拳が緩んじゃうと肘が痛くなったりするので、拳立て(拳で腕立て伏せ)やサポーターで拳を絞めるんです」と。で、おすすめされたサポーターをしてみたら、一発で直ってしまったという。たしか1000円ぐらいでした、サポータ。


効いてくれると良いなぁ。

■追記12月18日■

肘は、サポータがよく効いて、痛くてものを落とす、ということはなくなりました。

膝への経筋はあまり効きませんでした。右膝にはヒアルロン酸も効かなかったですし、前回とは原因が違うのかもしれません。以前左膝には本当に劇的に効いたのですが…。

ただその後「ためしてガッテン」で紹介されていた膝の皿のマッサージを試したところ、ロキソニンと同じぐらいの効果はありました。まだ30分以上歩くと翌日痛みが出るのですが、それが翌々日に持ち越されることはなくなりました。

皿が動きやすくなる程度に軽く膝をのばして(伸ばしすぎても曲げすぎても皿は動かなくなります)、ガッテンでは皿を各方向に5秒間ずつ押してズラす、という方法なのですが、いろいろ試してみて、左右方向には1秒周期で軽く動かす、下方向へは5秒間周期で痛くならない程度に押し下げる、(私の場合)上へは動かないので皿の下の凹んだところを念入りにマッサージする…これを寝る前に片膝3分程度やっています。


2016年10月10日月曜日

EAGLEで表面実装部品に太い線

今、モータドライバの基板を設計しています。最近のチップは表面実装でピン間隔20milしかないのに1A流せたりして凄いです。

が。プリント基板設計には「1A=1mm幅」という原則があります。EAGLE上で正直に「5VラインとGNDは40mil」なんてクラスを定義すると、自動配線は見事に無視してくれます。テーパーでつないでくれる機能とかあると良いんだけどねぇ。

試行錯誤の末、安易な方法を見つけたので、メモしておきます。

  1. ピンから10-12mil程度のラインを手動で引っ張り出す。隣と干渉しないように、適当に扇形に引っ張り出す。wire bend style 2などそのまま斜線を引けるようにするのがコツ。
  2. auto

こんだけです。

なお、「電源じゃなくてただのVcc直結プルアップなのに、クラスが同じなので極太配線が通ってしまって生きているのが辛い」という場合もこの手が使えますが、ゼロΩ抵抗を通して抵抗の前後を別クラスにしてしまうという方法も思い付きました。

さすがにそれはダメだろうと思って却下しましたが(笑)。

2016年10月8日土曜日

単純強力なヘッドホンアンプを作る


アンプ作るのも久しぶりです。DACの出力をD級アンプにつないでヘッドホンで聞く、なんてのはよくやっていますが、「アナログ入力▶増幅▶アナログ出力」という純アナログな装置としてのアンプを作るのはおそらく中学生以来。技術家庭の授業でプリント基板をエッチングしICなどをはんだ付けしてアンプを作ったですよ。ああ、その時だけスターだった私w

私は耳が遠いので居間でアニメなどを嗜む際にはヘッドホンを使っています。ソニーの赤外線ヘッドホンアダプタを使っていたのですが、落としたら片チャンネルから音がでないよパッキュラマー。でも、今は単体の赤外線アダプタって売ってないし、FMは安くて音質のいい受信機が見当たらず、Bluetoothは送信側も必要なのでコスト高い…ということで、もうワイヤ接続することに。が、ヘッドホンをつないでしまうとスピーカーから音が出なくなり、ヨメ(実在)と一緒に見られなくなってしまう。

…というわけで、ヘッドホンアンプを作るのです。

■構成、回路など■

ポタアンなどに使われている高音質オペアンプも試してみたいのですが、私の聴力だと音量不足になる懸念があったので、今回は実用性を優先して手持ちのLM4880を使います。2ch 250mW 8pin DIP。

当初は仕様書の推奨回路そのままで作ろうと思っていたのですが、「そういえばこのチップの評価ってどうなんだろう?」と思い、「LM4880 いい音」でググってみたら、下記のページを発見しました。

正負電源にして出入口のコンデンサを無くした回路で、とてもシンプルです。取扱を簡単にするためにはいろいろ細工が必要ですが、それは後にしてとにかく作ってみます。

マンガンを使い捨てにするのももったいないので、エネループ単4☓2☓2本で行きます。当初、2本入り電池ボックスを2つ使おうと思ったのですが、手持ちがなかったので4本のボックスを使い、中間からGNDを引っ張り出しました。

■調整■

最初入力/帰還抵抗ともに20kΩで試したのですが、私の聴力ではボリューム最大+114dB/mWのヘッドホンでもやや不足気味でした。入力抵抗を10kΩに変えてみたところ、だいたいボリューム中央付近でちょうどよく聞こえるようになりました。

音質は、今日は耳鳴りがひどくて音質評価以前なのですが…とりあえず赤外線ワイヤレスと比べて特に良くも悪くもないので、テレビを見るには十分かなと思います。低音はちょっとボンつきますが、ベースの音も伸びていて良い感じです。会話を聞くにはちょっと邪魔な特性ですけども。

さすがにジャンパワイヤのまま使うわけにはいかないのでユニバーサル基板に組み込まなければ。

そのうちNutubeをプリアンプとして使いたいです。12vぐらいで動かして、正負電源を用意して…結構面倒だなぁ。

たぶん、今頃世の中で100人ぐらいのヒトがこれを使った回路を設計していると思うので、手頃なキットや基板が出てくるのを待っているんですけどもww

nutube


2016年10月6日木曜日

ESP-WROOM-02でI2S DACを動か…せない

I2S WebStreamingのために買ったES9023ボードですが、今のところまだ成功しておりません。

せっかく(というほどの値段ではなかったですが)ES9023のDACを買ったのに使わないのはもったいないなぁと思いつつオクラにしてました。

が、こんなのを見つけました。ヒャッハー!

ともかく、esp-open-rtosごと落とします。なお、open-rtosのビルドについてはこの手順でどぞ。macの場合、case sensitive volumeなどが必要なのでちょっと一手間必要です。

ESPのFlashに入るような手頃なサイズの音源がなかったので、GarageBandとiTunesを使ってWAV作りました。もしかしてできるかな?と思ってググったら出てくるからインターネッツはすばらしい。ありがとうございます。

なお、iTunesの仕様が変わってしまって、記事の通り「曲」を右クリックをしてもWAVファイル作成のメニューは出てきません。ファイルメニューから、変換>WAVバージョンを作成 で作れます。

かくして、ピアノの鍵盤を3回押しただけのsample.wavが出来上がりましたw examples/i2s-audio/の下に files ディレクトリを作り、その中に入れます。

で、ビルド…しようと思ったら、久しぶりすぎてrtos sdkの想定しているesptool.pyとパラメータが異なりエラー。

ということでesptoolをアップデート
$pip install -I esptool
で、今度こそビルド&インストール!
make flash -j4 -C examples/i2s_audio ESPPORT=/dev/tty.usbserial-DN01J0KN 
通った! で、ES9023をつなぐまえにwktkしながらオシロをつないでみました。出力はGPIO2 = LRCK, GPIO03 = DATA, GPIO15 = BCLKとのこと。

結果。

GPIO2にクロックみたいなものは出ているのですが、不規則。DATAとBCLKは出てませんでした。

…はい、また失敗です。うーん。

2016年9月27日火曜日

帯に短し襷に長し

無調整で写真を出力。うーん難しい。

Laser加工機が欲しいです。

物欲の対象は現在以下の3機種。アクリル板をカットできることが最低条件。

Podea-01 6W版 159,800円(税別)
半導体レーザーを使い、比較的コンパクトな筐体に収まったタイプ。半導体なので取扱も比較的簡単でハニカムテーブルなども附属しており、完成度が高い。今のところ候補筆頭。アクリル板は3wでも黒なら切れるというレポート有り(非公式)。

Oh Laser HAJIME 30W 400,000円(?)
CO2レーザー、完成度が非常に高い。価格の情報は公開されておらず、上記は比較サイトに掲載されていた価格。

SmartLaser CO2 40W 280,584円(税込)
CO2レーザー、キット。コストパフォーマンスは圧倒的。facebookなどを見ると精度を出すのが大変っぽいし、位置決めキット、水冷キット、光軸調整など他のキットに含まれているものがオプションだけど、それでも安い。SmartLaserは上記三機種の中で唯一Webインタフェースなので、マカーの私にはありがたい。ただWebインタフェースは複雑な形状データを食わせるとハングする、らしい。

で。

予算という概念がなければ、HAJIME一択なのですが、さすがにホイホイ出せる金額ではない。

自転車で15分のところで30Wのプロ用レーザー加工機が45分2000円で使えるので、アクリル板などの切断加工はそっちでやることにしてPodeaの3w(119,800円)で良いかなとも思うけど、でも15分は微妙に遠いし利用料200回分でHAJIME買えるし(まて)。

…ということで一長一短三竦み状態で一歩も動けません。

2016年9月22日木曜日

今更ですがESP-WROOM-02で赤外線リモコン(174円也)

先日、会社でIoT勉強会を実施しました。

勤務先はガチのソフト開発なのですが、やっぱりIoTへの関心は高く、あっという間に定員に達しました。内容的にはESP-WROOM-02+BME280(気温湿度気圧センサー)+PIRセンサー(人感センサー)+空気質センサー+OLEDという有りがちな組み合わせですが、幸いにも好評のうちに勉強会を終えることができました。


勉強会を開催したい!!という方はLinkedIn経由でくらはしまでご連絡ください。材料費は1人前5000円ぐらいです。団地の集会場やコミュニティセンターでやってみたいです。

で、ここからが本題。勉強会参加者の方から、アフターフォローSNSで「エアコンを制御したい」というお題をいただきましたので、さくっと作ってみました。

■部品■

品名Name秋月PN価格購入数量参考バラ単価使用数
赤外線リモコン受信モジュールOSRB38C9AA(2個入)IR_RECEIVERI-046591001501
5mm赤外線LED OSI5FU5111C−40 (5個入)D1, D2I-032611001202
トランジスタ2SC1815GR 60V150mA (20個入)T1I-008812001101
カーボン抵抗(炭素皮膜抵抗) 1/6W 47Ω (100本入)R3, R4R-16470100112
カーボン抵抗(炭素皮膜抵抗) 1/6W 2.2kΩ (100本入)R1, R2R-16222100112
積層セラミックコンデンサ 47μF16V ±10% 5mmピッチ (10個入)C1P-049177001701

秋月で買うと大量に余りますが、特に抵抗とトランジスタは必ず使うので買ってしまってもいいと思います。コンデンサがわりと高いですが、これは無くてもあんまり変わりませんし、同容量の電解コンデンサなら1本10円ぐらいだと思います。

このうち、抵抗とセラミックコンデンサは極性がありません。つまり、どのピンをどっち側につないでもOKです。が、赤外線受信モジュール、LED、トランジスタ、電解コンデンサには極性があります。電解コンデンサは表面に書いてありますし、LEDは長い方の足がプラス電源側になります。トランジスタは仕様書にECBと書いてありますが、それぞれ、エミッター、コレクタ、ベースの略です。2SC1815の場合は、足を下に向け、平らな面(部品番号などが印字されている面)をこちらに向けて、左からECBの順番です。回路図ではトランジスタの左側がB(ベース)、上(矢印のついてないヤツ)はC(コレクタ)、下(矢印)はE(エミッタ)です。

赤外線受信モジュールIR RECEIVERはモノによって違いますが、今回使ったものは足を下に向け、受光窓をこちらに向けた左から1 OUT、2 GND、3 VCCです。違うモジュールを使った場合には仕様書で確認してみてください。

抵抗値は、2.2kΩ(回路図では2k2と表記)は赤赤赤金、47Ωは黄紫黒金です。最後の金は精度を表すもので金は±5%、銀は±10%です。今回のような用途では5%でも10%でも問題ありません。カラーコードについては、ここのページが見やすいかと思います(特に一番下の表)。

■回路■


会社のブログでは私のホワイトボードへろへろ回路図が晒されてしまったので、汚名返上を願ってEagleで書いてみた。

…ツール使ってもヘロヘロだったorz

あ、4u7じゃなくて47uだった。受信プログラムを走らせていると、リモコン操作していなくてもインバータやLEDランプのノイズを出鱈目な信号として誤認識してしまうので、ノイズ対策としてつけてみたんですが、あんまり違いありませんでした。誤読の場合はメーカー識別コードなどが出鱈目になるので対象となる製品のコードでフィルタリングすれば実用上は問題ないかと思います。

47μFの積層セラミックコンデンサは結構高いので、なしでもええんやで、H田さん。

受信機はIO15、LEDはIO16につないでいますが、これは空いていればどこでもOKですが、ソースのIOポート番号をそれに合わせて変更する必要があります。

同じ回路をArduinoで使う場合には、3v3ではなく5vにつなぎ、R3とR4を75Ωに取り替えてください。

■ライブラリ■

Arduinoの定番IRRemoteをESPで使うとAVR.hでひっかかってしまうので、IRRemoteESP8266を使います。原作者の方、ESP8266へポートしてくださった方に感謝致します。

githubからzip落としてArduino IDEに読み込ませます。

IRRemote/IRRemoteESP8266とも、そのままではバッファが小さくてエアコンのデータを扱うことができません。適当なエディタでIRRemoteESP8266.hを開き、RAWBUFの値を100から400に変更255に変更して保存します。

追記(2017年2月6日):400では動かない、ここは8bitなので255が最大値とのご指摘をいただきました。大変申し訳ありません。ご教示いただきありがとうございました。

…ところで何故私のところでは動いていたのでしょう・・・。

■受信プログラム■

コードを解析してバイナリコードで送るのがスマートなんですけど、面倒くさいのでrawコード(信号のon/off時間をそのままベタに記録したフォーマット。とても長い)を受信します。

なお、エアコンの場合、テレビと違ってリモコン信号が正常に送られているかどうか判断するのが難しいです。設定温度を本体に表示してくれるエアコンは別ですが。なので、私はタイマーのon / offで確認しました。タイマーをセットするとエアコン本体の予約ランプが点灯するので、セット / 解除の信号を送って、ランプの点滅で動作確認しようという寸法です。

何その巨大Lチカ。

他にはフィンの向きを使う(左右に切り替える)のも良いかと思います。なおエアコンの頻繁なon/offは電力消費にもエアコン本体の寿命にも悪影響を与えるので、ご注意を。

仕事部屋は古いFujitsuエアコン、IRRemoteのサンプルを改造して、以下のような出力を得ました。Panasonicとか48bitsとか出てますが気にしないように。

26度、風量自動、1時間タイマーON:
8083F
Decoded PANASONIC - Address: 28C6 Value: 8083F (48 bits)

Raw (244): 0xCE4,0x672,0x1C2,0x190,0x1C2,0x190,0x1C2,0x4E2,0x1C2,0x190,0x1C2,0x4E2,0x1C2,0x190,0x1C2,0x1C2,0x1C2,0x190,0x1C2,0x4E2,0x1C2,0x4E2,0x1C2,0x1C2,0x1C2,0x190,0x1C2,0x1C2,0x1C2,0x4E2,0x1C2,0x4E2,0x1C2,0x190,0x1C2,0x1C2,0x190,0x1C2,0x1C2,0x190,0x1C2,0x1C2,0x190,0x1C2,0x1C2,0x190,0x1C2,0x1C2,0x190,0x1F4,0x190,0x190,0x190,0x1C2,0x190,0x1C2,0x1C2,0x1C2,0x190,0x4E2,0x1C2,0x190,0x1C2,0x190,0x1C2,0x1C2,0x1C2,0x1C2,0x190,0x1C2,0x190,0x1C2,0x1C2,0x1C2,0x190,0x4E2,0x1C2,0x1C2,0x190,0x190,0x1C2,0x190,0x1C2,0x1C2,0x190,0x1C2,0x1C2,0x4E2,0x1C2,0x4E2,0x1C2,0x4E2,0x1C2,0x4E2,0x1C2,0x4E2,0x1C2,0x4E2,0x1C2,0x190,0x190,0x1F4,0x190,0x190,0x1C2,0x4E2,0x1C2,0x190,0x1C2,0x190,0x190,0x1C2,0x1C2,0x1C2,0x190,0x1C2,0x1C2,0x190,0x1C2,0x190,0x190,0x1C2,0x1C2,0x4E2,0x1C2,0x4E2,0x1C2,0x1C2,0x190,0x1C2,0x1C2,0x190,0x1C2,0x1C2,0x190,0x190,0x1C2,0x190,0x1C2,0x1C2,0x190,0x4E2,0x1C2,0x1C2,0x190,0x4E2,0x1C2,0x4E2,0x1C2,0x190,0x190,0x1F4,0x190,0x1C2,0x1C2,0x4E2,0x1C2,0x190,0x1C2,0x190,0x190,0x1C2,0x1C2,0x190,0x1C2,0x1C2,0x1C2,0x190,0x1C2,0x190,0x190,0x1C2,0x190,0x1C2,0x1C2,0x190,0x190,0x1C2,0x1C2,0x1C2,0x190,0x190,0x190,0x4E2,0x1C2,0x4E2,0x1C2,0x4E2,0x1C2,0x4E2,0x1C2,0x190,0x190,0x1C2,0x1C2,0x190,0x1C2,0x1C2,0x190,0x190,0x1C2,0x4E2,0x1C2,0x190,0x1C2,0x190,0x190,0x1C2,0x190,0x190,0x1C2,0x190,0x1C2,0x190,0x1C2,0x190,0x1C2,0x190,0x190,0x1C2,0x190,0x190,0x190,0x1C2,0x190,0x1C2,0x1C2,0x4E2,0x1C2,0x4E2,0x1C2,0x1C2,0x190,0x4E2,0x1C2,0x4E2,0x1C2,0x190,0x190,0x4E2,0x1C2,0x4E2,0x190,

26度、風量自動、タイマー解除:
8083F
Decoded PANASONIC - Address: 28C6 Value: 8083F (48 bits)
Raw (244): 0xCE4,0x672,0x1C2,0x190,0x1C2,0x1C2,0x1C2,0x4E2,0x1C2,0x1C2,0x1C2,0x4E2,0x1C2,0x1C2,0x1C2,0x190,0x1C2,0x1C2,0x190,0x4E2,0x1C2,0x4E2,0x1C2,0x190,0x1C2,0x190,0x1C2,0x1C2,0x1C2,0x4E2,0x1C2,0x4E2,0x1C2,0x1C2,0x190,0x190,0x1C2,0x190,0x1C2,0x1C2,0x190,0x190,0x1C2,0x190,0x1C2,0x1C2,0x190,0x190,0x1C2,0x190,0x1C2,0x1C2,0x1C2,0x190,0x1C2,0x190,0x1C2,0x1C2,0x190,0x4E2,0x1C2,0x1C2,0x190,0x190,0x1C2,0x190,0x190,0x1C2,0x1C2,0x190,0x1C2,0x1C2,0x1C2,0x190,0x1C2,0x4E2,0x1C2,0x1C2,0x190,0x190,0x1C2,0x1C2,0x1C2,0x190,0x1C2,0x190,0x1C2,0x4B0,0x1C2,0x4E2,0x1C2,0x4E2,0x1C2,0x4B0,0x1C2,0x4E2,0x1C2,0x4E2,0x1C2,0x190,0x1C2,0x190,0x1C2,0x1C2,0x190,0x4E2,0x1C2,0x1C2,0x190,0x190,0x1C2,0x190,0x1C2,0x190,0x1C2,0x190,0x1C2,0x1C2,0x190,0x1C2,0x1C2,0x190,0x1C2,0x4E2,0x1C2,0x4E2,0x1C2,0x1C2,0x1C2,0x190,0x1C2,0x190,0x190,0x1C2,0x1C2,0x1C2,0x190,0x1C2,0x190,0x1C2,0x1C2,0x4E2,0x1C2,0x190,0x1C2,0x4E2,0x1C2,0x4E2,0x1C2,0x1C2,0x1C2,0x190,0x1C2,0x1C2,0x190,0x190,0x1C2,0x190,0x1C2,0x1C2,0x190,0x190,0x1C2,0x190,0x1C2,0x1C2,0x190,0x1C2,0x1C2,0x190,0x1C2,0x190,0x190,0x1C2,0x1C2,0x190,0x190,0x1C2,0x190,0x1C2,0x190,0x190,0x190,0x1C2,0x1C2,0x190,0x1C2,0x190,0x1C2,0x190,0x1C2,0x190,0x190,0x1C2,0x190,0x1C2,0x1C2,0x190,0x190,0x1C2,0x1C2,0x190,0x1C2,0x190,0x190,0x1C2,0x1C2,0x190,0x1C2,0x190,0x1C2,0x190,0x190,0x1C2,0x1C2,0x190,0x190,0x1C2,0x1C2,0x190,0x1C2,0x190,0x1C2,0x1C2,0x1C2,0x190,0x1C2,0x4E2,0x1C2,0x4E2,0x1C2,0x4E2,0x1C2,0x4E2,0x1C2,0x190,0x190,0x4E2,0x1C2,0x190,0x1C2,0x1C2,0x190,

長いっすねー。ソースは短いっす。


■送信プログラム■

受信プログラムからシリアルに吐き出されたraw列をコピペして、5秒ごとに送信受信を繰り返すプログラムです。これも元は附属のサンプルを書き換えました。

動きます。動きますが、赤外線LEDの指向性がかなり強いので、向きをちゃんと合わせないと反応してくれません。気をつけてください。

こっちもソース短いです。

2016年9月5日月曜日

ブラウザからDCモータを制御

というわけで、せっかくのESP-WROOM-02なので、ブラウザから(というかhttpで)モータを制御するようにプログラム書き換えました。

配線は前回のままです。起動するとIPアドレスが表示されますので、そのIPアドレスにパラメータをつけると制御できます。

http://<ip-address>?brake=0 : ブレーキがかかります
http://<ip-address>?r=40:速度指令40でモータを正転させます
http://<ip-address>?r=-40:速度指令40でモータを逆転させます。

ま、rじゃなくてもbrake以外なら何でも良いんですが。

ソース乗っけておきます。