カテゴリ
全体写真 カメラ・レンズ 赤外写真 デジタル画像 コンピューター 電気・電子 車 猫 空 天文 ダム 橋・水門 塔 狛犬・稲荷・盃状穴 動植物 廃キング レトロ探訪 その他 未分類 リンク
人気blogランキング
Dark Side II すいかのおと 写り気なAGAT+ クラシックカメラで写真を撮る!!! Junk貧乏 サリュー! サリュート! Salut! Saliut! +PLUS お散歩とカメラと チャイカン コトニにて vasolza 開放区α USS.SHONAN P6の憂鬱 16mmでカラー撮影:Taking color photo by 16mm camera such as Konan-16 automat お気に入りブログ
風景のある生活USS.SHONAN flarist 日々是平凡(or あれも... 真四角の窓から見た世界 カルイオモイ ~phot... coolys creek... バシャコン!アルバム M k Cool Pic... 日々思うこと~幸せの部品 空っぽの時間 光と共に… Это мо... ブリキの箱 In The Soup まぁいいか、とものぐさの日々 Paper crip 答えの無い写真 ふろどうらく All those...... まぁいいか、とものぐさの... 明暮日の茶ばしら もやっと&ノラ 視神経的写真術 14番目の月 最新のコメント
最新のトラックバック
以前の記事
2024年 03月2024年 02月 2023年 12月 2023年 11月 2023年 09月 2023年 08月 2023年 07月 2023年 06月 2023年 05月 2023年 03月 more... ライフログ
検索
ファン
記事ランキング
ブログジャンル
画像一覧
|
USB温度計を作る
以前Arduinoでデータロガーシールドを使った温度等の記録システムを作ったが、
より簡単にPCサーバーでデータを取得したいと考え、USB接続タイプの温度計を探した。 しかし思ったよりも種類が少なく、唯一安価なメモリースティックタイプの「TEMPer」というのがあったが、今は売り切れたりしている。 それならば、と自作することに。 Arduinoでセンサーを読んでPCに送るだけだと、ちょっと大げさすぎるので、 これを使うことにした。 CPUに8ピンのAVRマイコン「ATTiny85」を使用し、凸型の基板の出っ張りをそのままUSBジャックにしている。基板上で大きな位置を占めてるのが電源レギュレータの78M05で、隣のCPUの方が小さい!レギュレータはUSB以外の外部電源を使用する場合しか使わないので、USBに差して使う前提ならば不要なのでもっと小型にできそうなのに…。 また、マイクロUSBコネクタタイプの(左)も存在し、用途に応じて選択できる。互換機がaitendoで「ATtiny85モジュール [M8520SU-UAM]」「ATtiny85モジュール [M8520SU-MCUM]」として500円で手に入る。 互換機は基板上のLEDがやはり高輝度の赤だが、aitendo M8520SU-MCUMの一部にはオレンジ色のもあった。 このDigispark互換機とDHT11センサーを組み合わせて、作ってみたのがこちら。 Digisparkについて調べると、通常のArduinoとは色々違いがある事がわかった。 一番の違いは、USB通信をCPUがソフトウェアで実現していること。これによって部品点数を大幅に減らし、小型で安価を実現している。 他にはArduino UNOのCPU ATMega328よりもメモリーやI/Oが少ない事。センサーや通信のライブラリーもメモリー容量に気を付ける必要がある。 CPUパッケージのピン数が少ないので、利用できるI/Oは電源のVCC,GNDを除くと6本(PB0~PB5)のみ。そのうちPB3,PB4の2本はUSB通信に使われるため、残りは4本だけ。PB1にはLEDが繋がっている。 センサーは湿度も計れるDHT11を選択。精度はそれほどでもないが、安価なので練習がてらに使ってみようかと。センサーのデータ端子はサンプル同様にPB2に接続。 Windows7のPCでArduinoIDEにDigisparkの設定をし、スケッチを書いてATtiny85モジュールをUSBに差すのだが、PCがDigisparkを認識してくれない。「Unknown Device」となってしまう。 WEBで見つかった例のようにしてもダメ。既に多数のUSBドライバーがインストール済みなのが問題か? 一旦Arduino Nano互換機でセンサーを試してみる。 こちらはすんなりと動いたので、とりあえずセンサーは問題なさそう。 気を取り直して、あまり使ってない別のWindows7のPCで環境を作り、ドライバーを入れて試すと、今度はArduino IDEが認識し書き込む事ができた! 書き込みにはDigispark特有の作法があり、DigisparkをPCから外してからIDEの書き込みボタンを押し、IDEウィンドウ下部に「Plug in device now...(will timeout in 60 seconds)」のメッセージが表示されたら60秒以内にUSBに差し込むと書き込みが開始され、完了すると「Micronucleus done. Thank you!」と表示される。 開発中に何度もDigisparkをPCから抜き差しするのは面倒なので、USB延長ケーブルやUSBスイッチがあると便利。 スケッチはUSB通信をしたいので、まずDigispark用のスケッチ例から「DigisparkUSB」→「Echo」を選んでコンパイルし書き込み。書き込みはできたようだ。 PCとUSBでやりとりするために、DigisparkExampleProgramsにあるDigisparkExamplePrograms-master\Python\DigiUSB\windows\monitor.exeを起動。 でもまたもやDigisparkを認識してくれない!! さらに、 DigisparkExamplePrograms-master\C++\DigiUSB Windows Driverからドライバーをインストール。 やっとの事で、monitor.exeでDigisparkとUSB通信できた。 本題に戻り、温度測定のスケッチにはメモリーの少ないATTiny85を考慮し、 TinyWireM.h TinyDHT.h DigiUSB.h の各ライブラリを使用。 Arduino Nanoでやったようにシリアル出力をDigiUSBに置き換えたがうまく動作しなかった。 それで先ほどのスケッチ例のEchoをベースに改造し、改行を受信したらDHT11センサーを読み込んで値を返すように記述してみたら、なんとか測定値をmonitor.exeに送ることができた!!! PC側でDigiUSBと通信するには、Rubyのdigiusb GEMやPythonのpyusbが使えるらしい。 試しにPythonでUSBを読み込むスクリプトを書き、Digisparkから温湿度を取得できた。 でもスケッチがまずいのか、何度か通信していると最初の文字が欠けたりする。 本当はまだスケッチのDigiUSBの扱い方が良くないのだろうけど、とりあえずスケッチをいじって頭にスペースを入れるように修正。 Python側でスペースを除いた値をファイルに出力するようにした。 ここまで来れば、あとはファイルに出力された値をmuninに読み込んで、グラフ化すれば目標達成! .
by f_s_x
| 2017-11-25 12:21
| コンピューター
|
Comments(2)
|