2016/04/12

Arduino USB IR Receiver RawHID

Arduino USB IR Receiver 前に作ったUSB接続の赤外線受光ユニット

 今回は、データの送受信を、USB HID の RAW データとして扱う。ソニーのUSBレシーバと同じように、リモコンのボタンを押した時と、離した時、2つのタイミングでデータを送る。なので、受け取り側のプログラムも、ほぼ同じように処理できる。

 そんなわけで、次Ver の rmx は、さんざん拡張してきた分をバッサリ省いて、別物の rmx2 としてリリースする。対応デバイスは、ソニーのと、Arduino 製の2つだけ。

 緑枠が、Arduino版だけの設定。リモコンで PC の電源と4ピン分のリレーの制御を出来るようにした。

 Arduino の赤外線ライブラリを見ると何処のメーカのリモコンでも使えそうな感じなのだが、どうも上手くいかない。時々データ化けを起こす。

 ボタンを押しているのに処理できないと、あれ?あれ?と2度押し3度押しとかストレスたまってよろしくない。ソニープロトコルは、比較的安定しているが、RC6 とか微妙すぎ。

 いや、プロトコルの話じゃなくて、単純にリモコンの出力の違いなのかも。VAIO のリモコンなんて、あさっての方向でも認識するしな。

2016/03/05

ADB キーボード


 20年以上前のマックのメカニカルキーボード。ALPS信者になってからは、他のキーボードには目もくれなくなったので、散財する必要もなくなった。これは、予備にとって有る分で、切ったり貼ったりする改造キーボードの素材。だが、現在、使用中のも全く壊れない(笑)。後、20年ぐらい持っておけばプレミア付きそうな気もする。僕は、アップルというブランドには、何の思い入れも無いし、むしろ嫌いだが、メカニカルキーボードに関してだけは、本当にすばらしい仕事をしたと思う。

 現在、新品で手に入るキーボードで、チェリーか、東プレかと問われても、どっちも無いわ。

2016/02/24

OLED 有機ELディスプレイ

 I2C通信の有機ELディスプレイ。幅は、指2本ほどの小さいやつ。I2C だから、データピン2本と電源2本、計4ピンだけで動作する。手元に置いておくデバイスなら、そのまま組み込めそうだし、デバッグ用途にも便利そう。ESP8266 だと好きな GPIOピンで使えるっぽい。
#include <Wire.h>

void setup() {

Wire.begin(SDA, SCL);


2016/02/22

Max6675 K型熱電対温度センサモジュール


 デジタル3ピン+電源2ピン、計5ピン接続で、簡単に温度測定できる。ネジみたいなのがセンサ部。

2016/02/18

ESP8266 WiFi リモコン3


 肝心のリモコンの操作ボタンをどうするか悩ましい。とりあえずテンキーにリモコンのモジュールを組み込んでみた。電池駆動にしたので、きちんとワイヤレス化できた。ジョイステックは、さして操作性が良くないので外してある。

 受光部へリモコンを向ける必要もないから、据え置き型も有り。なら、スマホでいいじゃん、と言われるかもしれないが、あくまでも物理ボタンは必要。なんのことはない、ストレート形の携帯電話が理想の形かも。

 結局、アナログなインターフェイスを、どう作るかって話になると、もう、部品がどうのじゃなくて、必要なのは工作機械なんだよな。NC付きのフライスが欲しい。
※ 技適マーク無しの無線デバイスの実験は、日本国外で行いましょう。

2016/02/09

ESP8266 + Arduino IDE


 ESP-01 専用に、スイッチを2つ付けた書き込み専用の治具的なものを作った。手順としては、GPIO0 と GND 接続した状態(赤チップLEDだけ点灯)で、リセット(RST と GND 接続)して書き込みモード。リセット直後、一瞬、ESP-01 の青チップLEDが点灯するので、後は、Arduino IDE の Upload ボタンを押せばいい。

 USB-TTL 変換モジュールからの 3.3V では、プログラム実行時に、WiFi通信に必要な電流が足りず、まともに動作しない。書き込み自体は、成功するので問題はないが、一応、5V から、3.3V をつくって使っている。中央の青LEDは、GPIO2に繋いであり、プログラム起動の確認に使う。

 実際のプログラム・デバッグ作業は、LoLin 上で行い、出来上がったものを、ESP-01 に書き込めばいい。

 LoLin は、Arduino 同様、小細工無しで、そのまま書き込める。使用中の IDE は、ARDUINO 1.6.5-r5 - 2015.08.28 版。

※ 技適マーク無しの無線デバイスの実験は、日本国外で行いましょう。

2016/02/05

ESP8266 WiFi リモコン2


  組み込み用のコンパクトな Pro Mini 3.3V/8MHz と ESP-01 を選択。各入力(ジョイスティック、キーパッド、ボリューム)は、Arduinoで処理して、ESP8266 は、WiFi通信だけさせる。WOL で電源ON。操作コマンドは、UDP 通信。

 ESP-01 の CH_PD ピンの役割が、さっぱり分からない。VCC と直結でいいんじゃね? 抵抗を入れるのと、どう違うのよ?

 それにしても、この WiFi モジュール。この小ささで、こいつ自身が、Arduino IDE から使えるんだよ。マトモなアナログピンが追加されたら、ATmega なんぞいらなくなるわ。

 一般PC の世界は停滞感バリバリなのに比べ、マイコンの世界は、色々動いていて面白い。
※ 技適マーク無しの無線デバイスの実験は、日本国外で行いましょう。

2016/01/15

Alan Rickman アラン・リックマン


 やっぱ、「ダイ・ハード」か。

 しかし、「ギャラクシー・クエスト」も捨てがたい。
2016年1月14日(69歳没)

2016/01/12

David Bowie デヴィッド・ボウイ


 「ラビリンス/魔王の迷宮」を観よう。
2016年1月10日(69歳没)

2016/01/01

ESP8266 WiFi リモコン


 NodeMCU のパチモン(LoLin)、ESP8266 っていうWiFi機能付きのマイコンに、USB がついて、そのまま書き込みも可能なタイプ。これ、中々凄くて、単体で無線ルータ経由して、ネットワーク通信できたりする。クライアントでも、サーバでも、色々出来ちゃう。Lua って言語で操作するらしいが、あれこれ覚えられないので、動作確認だけして、Arduino IDE から利用することにする。

 僕のような、素人は、間違いなくUSB のついたヤツにしておいたほうが、無難。といいつつ、Lチカするのに、半日かかった。謎デバイス過ぎ。というか、資料少ないし。ともあれ、ワイヤレスリモコン的な実験をしてみる。

 4x5のキー・マトリクスを組んで、押されたボタンのデータを、UDPで送信。ラグも感じないし、普通に使える。受光ユニットも必要ないし、システム的には、かっこいい。まぁ、ルータへの接続に数秒かかるので、つけっぱなしで使えるよう電源確保しないと実用的じゃないのかも。なら、スマホでいいじゃん、ってなツッコミが。

※ 技適マーク無しの無線デバイスの実験は、日本国外で行いましょう。

2015/12/22

Arduino USB IR Receiver

 Pro Micro もどきを使った USB 接続の受光ユニットをつくってみた。普段は、旧バイオのリモコンセットを使っているが、同じようなものを、Arduino でも出来るのか実験。

 プログラムは分かっても、電子工作側の知識は、ほとんど無し。もちろん、部品の見分けぐらいは付くし、ハンダ付けは可能。しかし、中身が良く分からない。LED は、オンオフさせるピンから、GNDへ繋ぐ。抵抗を挟んで、光り加減を調整、昔習ったオームの法則ってやつだ。動作を理解できる部分は、この辺まで。肝心のリモコンの信号を処理させるには、3本足の受光素子モジュールを、それぞれの対応するピンに接続すればいいらしい。ハード側は、あっさり完成(実際には、ブレットボードで試した後で、組み立てた)。

 で、ソフト側。このデバイスからPC側に、どうやってデータを渡すか考える。ネットのサンプルだと、キーボード入力に変換しているのが多いようだが、それではダメ。あくまでもデータだけ渡したい。データ専用の適当なUSBデバイスをでっち上げたいが、難しそう。とりあえずは、自動で割り当てられているシリアルポートで通信することにした。

 Windows で、ボタンデータを受信してコマンド振り分けする rmx 風のシリアル通信ソフトを作って試す。問題なく使えそう。ライブラリで認識されるリモコンなら、なんでも使えるのは、いい点。ただ、抵抗一つ手に入れるのに、数百円もの送料が、掛かったりもするから、電子パーツ類を簡単に手に入れられる環境じゃないと高くつく。

2015/12/21

Arduino IDE を使ってみる


 ちっこいコンピュータ、Arduino。他の人が作ったものを真似してるだけでは、何の進歩もないので、一から勉強中。開発は、Arduino IDE という、C言語風の統合環境。PC上で、プログラム作成して、USB 経由で書き込んで実行させる。各種ライブラリは、充実しているので、素人にもやさしい。ただし、コンパイル成功、失敗ぐらいで、デバッグも、へったくれもない。やはり、ある程度は、プログラム経験が無いと、厳しいかも。

2015/12/06

Pro Micro (ATMega32U4) Clone


 SparkFun Pro Microのパチもの。Arduino Leonardo として認識される。ATmega32U4 であるから、手持ちの Davinci32u の代わりになる。ADB変換は、ピン数が必要なわけじゃないから、これで十分。


2015/10/17

Lazarus 1.4.4

 いつのまにか、1.4.4 だ。意外なまでに、アップデートが続いてる。おしむらくは、ユーザがいない現実。
TIOBE Index for October 2015

 ごちゃ混ぜのランキングは無意味。上位以外は、誤差の範囲。せめて、用途別の分類とかなら参考になるのに。Lazarus は、16位の Pascal 枠? でも、Free Pascal は、Object Pascal というか、Delphi言語もどきだよな。ただの Pascal なら、Turbo Pascal とかまで遡らないとダメなんじゃないの。

2015/10/10

Lazarus ハルカたんに嫌われる


 M$ の SAPI、というか、32bit 版の Speech Server 。Lazarus だと、きちんとしゃべってくれない。Delphi だと問題なし。半角じゃない文字が認識されてないようだ。OleObject って、丸投げしてるだけじゃないのか?
var
SpVoice: Variant;
begin
SpVoice := CreateOleObject('SAPI.SpVoice');
SpVoice.Speak('ハルカたんだよ', 0);
end;

 たまに、Lazarus で検索してくる人がいるから、記事にしておく。知ってる人、いないだろうなぁ。そもそも、Lazarus 使ってる日本人て何人いるんだろ。

2015/09/21

Lazarus で自前のリソースの追加


 前は、lazres というので、手動でリソースファイルを作ってくっつけてた。Ver 1.4 から、プロジェクトオプションに直接、ファイルを指定できるようになったみたい。