まごころせいじつ堂

浜町庄金 研究開発  マイコンで遊んでばっかりで

GY-302モジュールを使った簡単な照度計

 GY-302というモジュールを入手した。これにはロームのAmbient Light Sensor BH1750FVIで照度を測定しI2Cで読み出せる。

 照度計に関しては秋月電子から入手できる浜松ホトニクスのS9705を使ってなんとかしようと思っていたが、タイマ関連の設定をもっと厳密にする必要があって手を出せないでいた。
S9705照度計をスケッチのみで/Arduino 1.6.6のシリアルプロッタ

Arduino用のライブラリFlexTimer2では不正確な場合があり、以下の記事が参考になる。
FlexiTimer2の挙動の調査(Arduino)(ラジオペンチ)

 さて、GY-302モジュールならI2Cで読み取るだけということなので、簡単にできそうである。精度もセンサのばらつきにのみ左右される。ということでAmazon経由で購入。

GY-302 BH1750 光照度照明モジュール [並行輸入品]GY-302 BH1750 光照度照明モジュール [並行輸入品]

Phishine
売り上げランキング : 27339

Amazonで詳しく見る
by G-Tools

 BH1740FVI資料。Typ 3.0V動作、I2C。
http://rohmfs.rohm.com/en/products/databook/datasheet/ic/sensor/light/bh1750fvi-e.pdf

 GY-302モジュール資料。Vcc 5V入力をLDOで3.3Vに変換しBH1740FVIの電源にしている。SCL/SDAはプルアップ付き。I2Cのアドレスを設定するADDRはプルダウンされている。
BH1750 BH1750FVI Digital Light intensity Sensor Module For AVR Arduino 3V 5V

 ライブラリと作例も見つかった。ほぼそのまま使用する。
bh1750fvi (GY-302) Light Sensor Module(Simple Arduino Skeches)

 GY-302モジュールをそのままArduinoの端子に差し込んでみた。SCLをA5、SDAをA4になるようにさしてVccとGNDは無理やりワイヤで接続、ADDRはA3にささるのでピンの設定でGNDに落とした。

 スケッチはこちら。
https://gist.github.com/houmei/60255efe8029ca7a79e51a9c698a34ab

2016-GY302

 MacOSX10.10.5 / Arduino IDE 1.0.6にBH1750ライブラリを置く。ターゲットはDuemilanove w/ATmega328互換のCrowduino。秋月電子で扱っているデジタル照度計 LX-1010Bとだいたい同じ照度を表示することを確認。
 BH1750ライブラリ自体はArduino固有の操作をやっているわけではなく単にI2Cの送受信なので他のマイコンに持っていくのも簡単そう。

Digisparkを使ったPC人感センサとセルフパワーUSBハブ

 DIgisparkと焦電センサモジュールと組み合わせて、人がいる時はディスプレイをONでしばらく使ってなかったらOFFというのを作ってみた。
 動作原理は簡単で、焦電センサに感があった時にマウスを少し動かすというもの。これでPC側からは人が操作しているように見える。ディスプレイの設定で30分後に画面OFFにしておけば、人がいなくなったら自動的にOFFになる。また人が近づいだらマウスが動いたようにみえるので画面はONになる。
これ、U-NEXTで動画見てるとき無操作のままだとディスプレイがOFFになり中断されるのが嫌で作った。AmazonPrimeの動画再生時だとこうならないのに。

ソースは以下。
https://gist.github.com/houmei/76a1d26c207333ba5b7496113de297de

201607PIR


 さて、思いついて書くのは簡単だったのだがその後うまくいかなかった。MacBookPro15(2011)だとDigispark接続後にタッチパッドが効かなくなる。MacBookPro13(2009)ではマウス動作が無視される。PRIMERGY TX100S3 Windows7だとデバイスドライバがインストールされずUnknown Deviceとなる。しかしいずれもArduino IDEからはプログラムができる。なんでだ。
 調べたら、USBハブやUSB延長ケーブル経由だとうまく認識されない場合があるということだ。
Digispark 超小型ARDUINOクローン WINDOWS インストール(気分はメイカーズ)

 USBハブやUSB延長ケーブルを使わずDigisparkをUSBポートに直結したらうまく認識した。しかしMacBookPro13(2009)では相変わらずうまくいかない。安定させるには?セルフパワーUSBハブを使ったらどうだろうか。
 いま市販している小型のUSBハブはバスパワーといって、電源を接続元からもらっている。4ポートハブにUSBデバイスを繋いだ電力はUSBハブ自身を含めて接続元PCのUSBポートが供給できる電力を越えられない。セルフパワーUSBハブはACアダプタなどを接続し電力はそこからもらう。市販品だと種類は少ないが液晶テレビにUSBハードディスクをつなぐときに安定化させるなどの宣伝で売っている。で、近所のヤマダ電機から500円で買ってきた。

結果:すべてOK
MacBookPro15(2011) → USBハブ → Digispark
MacBookPro13(2009) → USBハブ → Digispark
TX100S3 Windows7 → USBハブ → USB延長ケーブル → Digispark

ということでDigisparkをPCにつないで使うときはUSBポート直結かセルフパワーUSBハブ経由がよさそう。DigisparkのVINに電源を供給する方法もあるが、これは試していない。

 使ったUSBハブはこれ↓
ELECOM USBハブ セルフ/バスパワー両用 タブレットスタンドタイプ microB-USB[A]変換アダプタ付属 4ポート ブラック U2HS-S401SBKELECOM USBハブ セルフ/バスパワー両用 タブレットスタンドタイプ microB-USB[A]変換アダプタ付属 4ポート ブラック U2HS-S401SBK

エレコム 2013-10-24
売り上げランキング : 3299

Amazonで詳しく見る
by G-Tools


HiLetgo Digispark Kickstarter ATTINY85 Arduino Micro USB 開発ボード [並行輸入品]HiLetgo Digispark Kickstarter ATTINY85 Arduino Micro USB 開発ボード [並行輸入品]

HiLetgo
売り上げランキング : 110268

Amazonで詳しく見る
by G-Tools


Arduinoで開発できるDigispark

 USB I/Fを持っていないはずのATTiny85をUSB経由で開発できるDigisparkという小型マイコンボードを試してみた。

開発元:Digistump Digistump wiki

 ファームウェアmicronucleusはソフトウェアでUSBデバイスを実現するV-USBを組み込んでいる。
https://github.com/micronucleus/micronucleus
V-USB

895円の超小型Ardunoクローン DigiSparkを買った(橋本商会)
Digisparkを買って動かすまで(syamojigzag)
安価なUSB直挿しマイコンDigisparkのススメ(Qiita)
Digisparkを試してみました(猫にコ・ン・バ・ン・ワ)
Digisparkの使い方(ELEFINE)

MacOSX 10.10.5 / Arduino IDE 1.6.9でやってみた。
メニューのArduinoから[Preferences...]を選択、追加のボードマネージャのURL欄に
http://digistump.com/package_digistump_index.json
を入れてOKを押す。
次にメニューのツールから[ボード:" xxx"]→[ボードマネージャ...]からDigistump AVR Boardsを探しインストールする。これらはArduinoにボードを追加する手順と同じ。

プログラムの転送はいったんMacからDigistumpを外した状態で[マイコンボードに書き込む]を実行し、60秒以内にDigistumpをUSBポートに接続する。

以下のプログラムはポート2に接続した焦電センサモジュールに感があるとLEDが点灯する。
https://gist.github.com/houmei/117544cfdc5a11e7163f9f2babdd8533

※訂正 ポート2です 写真は間違い
2016digispark-pir

 簡単にできた。USB-HIDなどの使用方法はインストールしたら追加されるスケッチの例を見ろ、とWikiに書いてあった。ATMega32U4(Arduino Leonardoなど)では大げさな、1ボタンで動作するキーボードなどに良さそう。

 以下の本、Kindleで買ってみたけど「Arduinoをはじめよう」のような内容でした。

Digispark USB Development Workshop (English Edition)Digispark USB Development Workshop (English Edition)
Agus Kurniawan

PE Press 2015-09-17
売り上げランキング :

Amazonで詳しく見る
by G-Tools

HiLetgo Digispark Kickstarter ATTINY85 Arduino Micro USB 開発ボード [並行輸入品]HiLetgo Digispark Kickstarter ATTINY85 Arduino Micro USB 開発ボード [並行輸入品]

HiLetgo
売り上げランキング : 90325

Amazonで詳しく見る
by G-Tools

Rasbee オリジナル Digispark Kickstarter ATTINY85 Arduino Micro USB 開発ボード Arduino 1個 [並行輸入品]Rasbee オリジナル Digispark Kickstarter ATTINY85 Arduino Micro USB 開発ボード Arduino 1個 [並行輸入品]

Rasbee
売り上げランキング : 55601

Amazonで詳しく見る
by G-Tools

Arduinoでログを取るメモ

 焦電センサモジュールの挙動があやしかったのでArduinoに繋いで終日ログを取ってみた。
やり方としてはArduino UNOの入力3本に焦電センサモジュールの出力をつなぎ、それを表示。センサの状態は16進数1桁で表すので、4ピンまではパッと見ただけでわかる。これを1秒ごと繰り返す。
1秒ごとシリアルコンソールに出力すると1秒ごとに選択がクリアされるのでコピペで結果を持っていけない。そこで60秒ぶん内部で溜めてから1分を一行として出力する。

ソースとログはこちら。
https://gist.github.com/houmei/e2e3f5a1cc5b09992a8df9c8eb429de1

焦電センサモジュールだが、ちゃんとした電源端子を使わずに内部3.3Vの箇所に乾電池を繋いだのが悪かったみたいで、きちんと仕様通りにやったらなんの問題もなかった。

SODIAL(R) モジュール焦電型赤外線検出器PIRモーションSODIAL(R) モジュール焦電型赤外線検出器PIRモーション

SODIAL(R)
売り上げランキング : 37055

Amazonで詳しく見る
by G-Tools
HiLetgo 人センサーモジュール焦電赤外線 HC-SR501 [並行輸入品]HiLetgo 人センサーモジュール焦電赤外線 HC-SR501 [並行輸入品]

Phishine
売り上げランキング : 24723

Amazonで詳しく見る
by G-Tools

TWE-Lite実験メモ

 離れたところのデバイスを操作できるTWE-Liteについていくつか実験。

超簡単!無線マイコンモジュールTWE-Lite DIP

購入時に入っている以下のアプリをそのまま使用。
超簡単!TWEアプリ

わかったこと:
・親機のIDは0。子機IDを設定している子機モジュールは、子機IDを1とすると、親機がID=1とID=120(全子機)宛に送信したデータを受信する。
・親機はすべての子機のデータを受信する。子機のIDで判別するにはシリアルデータを読む。
・子機は連続モードになっていないと親機からの送信データを受信しない。間欠モードは子機→親機のみ、センサ読み取りなどに使う。
・子機のデジタル入力は間欠モードであっても親機に即座に送信される。
・PWM3端子はなるべく使用しない。リセット時の動作モードを決める端子と兼用のため、不安定になる可能性がある。
・電池で動作可能。動作電圧は親機に送信される。

2016TWE-Lite

 実験基板。これは焦電センサの出力を親機に送っている。LEDは親機からのデジタル入力をそのまま表示。LEDはカソード側をTWE-Liteに接続。
201606TWELitejikken


TWE‐Lite(トワイライト)ではじめるカンタン電子工作―「無線システム」が「つなぐ」だけで出来る! (I・O BOOKS)TWE‐Lite(トワイライト)ではじめるカンタン電子工作―「無線システム」が「つなぐ」だけで出来る! (I・O BOOKS)
大澤 文孝

工学社 2014-08-25
売り上げランキング : 12762

Amazonで詳しく見る
by G-Tools


 おまけ。よく見かける焦電センサ、黄色い線をハンダ付けしている所に3.3V供給すると動作します。出力は元々3.3Vレベル。
焦電型赤外線センサーモジュール(焦電人感センサ)

201606PIRmodule

SODIAL(R) モジュール焦電型赤外線検出器PIRモーションSODIAL(R) モジュール焦電型赤外線検出器PIRモーション

SODIAL(R)
売り上げランキング : 10219

Amazonで詳しく見る
by G-Tools

アナログ入力によるロータリーエンコーダの読み出し

※抵抗の値に誤りがあったので図を修正

 ロータリーエンコーダ実験の続き。
 ロータリーエンコーダを扱うには2本のGPIOが必要だが、アナログ入力1本でもできるんじゃないかとやってみた。ロータリーエンコーダの端子A,B,Cのうち、導通状態になるのはA-C,B-C,およびA,BとC。これらの組み合わせで図のようにRa,Rb,Rcを組み合わせると次のようになる。

解放: V
A-C: Ra/(Ra+Rc)V
B-C: Rb/(Rb+Rc)V
A,B-C: (Ra//Rb)/((Ra//Rb)+Rc)V ※Ra//Rbは並列つなぎの値

ロータリーエンコーダfix

Rcは1kでAinをプルアップ、Ra=10k,Rb=4.7k。

これらをArduino UnoのADC分解能1023〜0に当てはめると
解放:1023
A-C:930.9
B-C:844.4
A,B-C:780.0
これを4bit分の分解能にすると(÷64)
解放:15
A-C:14
B-C:13
A,B-C:12
まあこうなるように抵抗値を決めたわけだが。

Arduino Uno/Arduino IDE 1.0.6でテストした。
https://gist.github.com/houmei/3625551d7013cbd2bff2159a96ebc4b3

時計回り: 15→14→12→13→15→...
反時計回り: 15→13→12→14→15→...

2016Arot

 実験の結果、チャタリングが発生してないように見えるのだがどうだろうね?この辺はもうちょっと調べる。
 Arduino Leonardo(ATMega 32U4)系だとアナログ入力はA0〜A11までの12本が使えるのでたくさん繋げそうなんだがそんなにロータリーエンコーダは持っていないのであった。以下で手配。

SODIAL(R)10個入り12ミリメートルキースイッチロータリーエンコーダスイッチSODIAL(R)10個入り12ミリメートルキースイッチロータリーエンコーダスイッチ

SODIAL(R)
売り上げランキング : 30350

Amazonで詳しく見る
by G-Tools

MSP430 / Energia によるRTCの利用

 MSP430版のLaunchPadを購入するとRTC用と思われる32KHzの発振子が付いてくるのだけど、Energiaから直接使う手段がない。探したらライブラリが公開されていた。

Real-Time Clock (RTC) Library for the MSP430/LaunchPad[43oh]
Bibliothèque RTC pour le MSP430[Archives blog XV4Y]

ここのディスカッションではEnergia 0006では動作がおかしいとの報告があったが、最新の0101E0017では問題なかった。
※追記:発振子外付けでは問題ないが、M430G2553の内蔵32KHzOSCを使うと上記問題が発生。

 まずは発振子をハンダ付けしておく。マイコンはM430G2553を使用。
2016msp430xtal

 シリアルポートが使えるよう準備をしておく。→LaunchPad V1.4のシリアル設定

 修正したソースは以下。といっても余計な}の後のセミコロンを削ったりサンプルにゼロサプレス表示を追加しただけ。
https://gist.github.com/houmei/a149f4715e44e99ccc68fe97105c9c04

EnergiaのライブラリはArduino IDEの考え方に似ている(というか同じ)。次を参考にした。
Writing a Library for Energia

 MacOSXの場合、Energia実行ファイルを右クリックして"パッケージの内容を表示"を選択する。
Energia→Contents→Resources→Java→hardware→msp430→librariesの下に sRTCsec というフォルダを作り、その中に sRTCsec.h と sRTCsec.cpp を置く。

 LaunchPadだけど何年か前は500円くらいで売ってた。今は直販で$9.99。日本国内の情報は少ない。ずっと積んでたのでまあちょっとは役に立てたかな。

↓ Arduinoをはじめようと同じくらいの内容の入門書です。

MSP430 LaunchPad Programming (English Edition)MSP430 LaunchPad Programming (English Edition)
Agus Kurniawan

PE Press 2014-01-03
売り上げランキング :

Amazonで詳しく見る
by G-Tools


格安4.3インチ液晶モニター

 2015年の夏頃に知って購入した液晶モニター。ミニオンダッシュ液晶モニターの名前で当時1600円くらい。DC12V前後の電源で動作し、2系統のビデオ入力を持つ。で、その時試してみたのだがビデオデッキの出力やIchigoJamならOK。MSXなどでは同期が合わずにゆっくりと上方向に動く感じ。JR-100/JR-200/BASIC MASTER Jr.ではまったく表示されなかった。これらのマシンもビデオデッキをいったん経由させると表示可能だが、せっかくの小型なのであまり意味がない。
 が、最近のは改善されているらしいという話だったので、同じものを購入してみた。今回は1200円くらい。試してみるとMSX/BASIC MASTER Jr.でもOKだった。

 これはMachikaniaの例。
2016LCD1


 MSX。どの機種もだいたい同じはず。
2016LCD2

 ベーシックマスターJr.の例。
2016LCD3

 ということで積極的に使っていこうと思う。

【ノーブランド品】2系統の映像入力 12V車用 ミニオンダッシュ液晶モニター 4.3インチ バック切替可能【ノーブランド品】2系統の映像入力 12V車用 ミニオンダッシュ液晶モニター 4.3インチ バック切替可能

ノーブランド
売り上げランキング : 1068

Amazonで詳しく見る
by G-Tools
車用 ミニオンダッシュ液晶モニター 12V 4.3インチ バック切替可能車用 ミニオンダッシュ液晶モニター 12V 4.3インチ バック切替可能

Sweet Deams!!
売り上げランキング : 1730

Amazonで詳しく見る
by G-Tools

ロジックチェッカー

 30年前くらいに作ったロジックチェッカー。見たいところのH/Lレベルと立ち上がり/立ち下がりがわかる。7474と7400を使った。電源はターゲットからもらう。

2016logigchecker1

 当時便利に使ってたけど、LSやHCタイプでも問題ないよう作りなおした。せめてICソケットを使っていれば……

※図はRISEとFALLが入れ替わっています!
2016-04-04 23_54_13-LogicChecker

 74LS74と74LS14使用。テストクリップはピンヘッダ経由で接続。リセットボタンを押すと立ち上がり/立ち下がりのLEDを消灯する。Hレベル/LレベルのLEDは片方しか点灯しないので電流制限抵抗を兼用した。輝度が大幅に違うような場合などは個別に入れなければならないが。

http://www.tij.co.jp/product/jp/sn74ls74a/description

 秋月電子のD基板に載せた。ICソケットを使ったので標準TTL、LS、HCなどOK。

2016logigchecker2

 測定はこんな感じ。

2016logigchecker3


 この本はたいへん良いですよ。

定本 ディジタル・システムの設計―ディジタル技術の基礎からASIC設計まで定本 ディジタル・システムの設計―ディジタル技術の基礎からASIC設計まで
猪飼 国夫 本多 中二

CQ出版 1990-09
売り上げランキング : 732940

Amazonで詳しく見る
by G-Tools

 改訂版。

定本 ディジタル・システムの設計―ディジタル技術の基礎からASIC設計まで定本 ディジタル・システムの設計―ディジタル技術の基礎からASIC設計まで
猪飼 國夫 猪飼 維斗

CQ出版 2010-11
売り上げランキング : 186954

Amazonで詳しく見る
by G-Tools



メモ:HP EliteBook 2740p Tablet PCのSSD交換

 中古で買ったHP EliteBook 2740pだがSSDの容量が60GBでさすがに苦しいので128GBに交換した。
HP EliteBook 2740p Tablet PC スペック

 内蔵SSDはIntel製1.8inch 60GBでmicroSATAコネクタ。同等のSSDよりもminiPCIeスロットに装着するタイプのmSATA SSDが安価なので、mSATA-microSATA変換基板で接続することに。

Transcend SSD 128GB mSATA3 6Gb/s 3年保証 TS128GMSA370Transcend SSD 128GB mSATA3 6Gb/s 3年保証 TS128GMSA370

トランセンド・ジャパン 2014-05-20
売り上げランキング : 1690

Amazonで詳しく見る
by G-Tools
mSATA(Mini SATA)→1.8インチmicro SATA変換アダプターKINGSPECJPmSATA(Mini SATA)→1.8インチmicro SATA変換アダプターKINGSPECJP


売り上げランキング : 12193

Amazonで詳しく見る
by G-Tools

 microSATAよりもminiSATAが小さいのはどうなんだろうね。さてPC本体内のSSDをまるっとコピーするためにはUSB-SATA変換を使うが、これに接続するためにはmSATAを普通のSATAに変換するコネクタが必要。
タイムリー GROOVY HDDをUSB SATA接続2.5/3.5/5.25タイムリー GROOVY HDDをUSB SATA接続2.5/3.5/5.25"ドライブ専用 UD-505SA

タイムリー
売り上げランキング : 277

Amazonで詳しく見る
by G-Tools

1.8インチ HDD/SSD 用 MicroSATA→SATA 変換アダプター EnlargeCorp1.8インチ HDD/SSD 用 MicroSATA→SATA 変換アダプター EnlargeCorp

enlargecorp
売り上げランキング : 14247

Amazonで詳しく見る
by G-Tools

 ハードの準備はOK。あとはSSDをコピー(クローン)する。PentiumIIIでWindowsXPの頃から使っているEaseUSのツールを使う。無料版でOK。

EaseUS ToDo Backup
EaseUS Partition Manager

 新しいSSDを接続し、OSがリムーバブルドライブとして見えるSSDを認識したらMBRにチェックを付ける。そしてEaseUS ToDo Backupでクローン。60GBで約1時間半かかった。
 新しいSSDをPC本体内のSSDと交換。ネジ2箇所でコネクタが固定されている金具を外し、そのままコネクタ部分を浮かせて外す。変換基板はむき出しなので、テープなどで絶縁。差し替えて元に戻す。
 EaseUS Partition Managerで空のパーティションも使えるよう割り当てる。クリックしてドラッグするだけ。反映は見ている間に終わる。
 ということであっさりとSSDの交換ができた。


記事検索
プロフィール

hardyboy

カテゴリ別アーカイブ
月別アーカイブ
QRコード
QRコード
  • ライブドアブログ