Posts on 電子工作

DIYガイガーカウンタ製作日記その3。

DIYガイガーカウンタ製作日記その2の続き。 事あるごとに線量計で家の周りを測るの、メンドくさいんですよね。 勝手に計測してくれて、リアルタイムに自動的にグラフ化してくれて、線量が上限の閾値を超えたら警告してくれる線量計があると、楽に安心して生活できるなぁ…。 リアルタイムに可視化した空間線量データ そんな動機で作り始めて、リアルタイムに可視化するとこまで完成。 Safecastにデータ提供するだけだと、他の大量の観測データに埋もれてしまうのと、特定地点の線量の増減がよく分からないので、お馴染みXivelyを使います。データ量によらず無料なのが良い。 KeenIOのライブラリを使うと簡単に綺麗なグラフが描けるんですが、月当たりの送信可能データ量上限が決まっているので、今回は泣く泣く諦めることに。 コードの解説 Xivelyにデータ送信する部分のコードは以下です。実際は自前のevent trigger/handlerを間に挟んでいますが、送信部のみ抜粋しました。 class XivelyEventHandler(IEventHandler): """ The instance should be registered to event trigger for data update. This uploads any data to xively cloud service. Args: api_key: API key ID provided by xively.…

DIYガイガーカウンタ製作日記その2。

DIYガイガーカウンタ製作日記その1の続き。 前回はSparkfun製ガイガーカウンタから得たcpm値をuSv/hに変換してprintするとこまでだったので、今度はこれをSafacast API経由でSafecastサーバに送信してみます。 検討は過去記事空間放射線量データを公開しているSafecast。REST API経由で定点観測データを自動送信するには?でほぼ完了しているので、あとは組み合わせるだけです。 import requests from datetime import datetime from serial import Serial # Sparkfunガイガーカウンタを接続したシリアルポートを開く port = Serial("/dev/tty.usbserial-AK05C8NQ", baudrate=19200) while True: # cpm値の部分だけ抜き出す cpm = int(port.readline().decode("ascii").split()[0]) # uSv/h換算 usv = cpm * 0.00812 print("{:.2f}[uSv]".format(usv)) # 計測した線量値をSafecastのHPから登録する際のやり取りをgoogle chromeでキャプチャした結果を使う data = { "measurement[…

地域通貨での初仕事? 学研電子ブロックを修理するついでに色々遊んでみました。

ずいぶん前に興味あってチェックした覚えがあるけど、手を出していなかった学研電子ブロック復刻版。 復刻新装版 学研電子ブロック EX-150posted with カエレバ 学研ステイフル 2014-10-04 Amazonで購入楽天市場で購入 昭島の地域通貨ネッコで、この電子ブロック自体が故障しているのか、使い方が悪いのか検証してほしいというお願いがきました! 遊んでみたかったのでお役に立てるならと、二つ返事で引き受けて早速説明書を読んでみると… 子供向け学習教材と侮るなかれ、かなり本格的な内容にびっくり。 48個の電子回路ブロックを組み合わせることで、150種類の回路が作成できてしまいます。説明書の内容もかなりマニアックで、個人的に思ったのは、電子工作経験者だけど電子回路の基礎をあまり真面目に勉強してこなかったから、改めて勉強し直したいという、ある意味不真面目な大人(要するに自分のような)向けの教材なんじゃないかと思いました。 復刻版と付いているのはそのせいか? とりあえず、受け取ってすぐLEDが光ることは確認できました。 続いてラジオ回路の製作。 …何も聞こえない。 スイッチをいれても本当に何も聞こえないのでおかしいなと思い、使用したブロックを一個一個裏返してチェックしてみると… ありました。 ハンダが浮いてしまい、回路が繋がらなくなっていました。 念のため他のブロックも全部チェックしましたが、剥がれていたのはこれ一つのみ。 ハンダを少し盛って付けてやると、ちゃんとラジオが聞こえました。とはいえ、超小音量なので、聴覚検査か?! ってくらい耳をすませる必要がありましたが・・・。 夏風邪っぴきの4歳の娘による検査を受ける図です。 しかし、このブロックの構造からして、やっぱり子供向けではない気がするなぁ・・・。ちょっと乱暴に扱ったらすぐハンダが剥がれそう。少なくともウチの4歳児には触らせられないと思い、完成品のチェックのみして頂きました。 でも、楽しかった。…

SparkFunのSEN-11345をcpm単位で空間線量を返すように修正してみる。ついでに、OSXでmakeする環境整備も。

電子工作ではおなじみのSparkFunが出しているガイガーカウンター、SEN-11345。すごく気になる…。 コンパクトなガイガーミュラー菅には、LND712を使用している上、ArduinoでおなじみのATMega328を搭載しているんですよね。以下のArduino Pro Miniと動作周波数も同じです。 Arduino Pro Mini 328 3.3V 8MHzposted with カエレバ スイッチサイエンス Amazonで購入楽天市場で購入 というか、このArduino Pro Mini、以前庭先の自動水やり機を作った時の余りが手元にあるんですよね。 でもって、Geiger Counter用コードがGithubにpushされていると。 ハード構成は色々違うはずですが、このGeiger Counter用コードがArduino Pro Miniで動くのか試してみたくなりました。 OSXでMakeする Arduinoのソフトウェアは基本的にArduino IDEで開発するので、Geiger Counterのように素でMakeする環境はちょっとハードル上がります。 個人的には、マウスでボタン押してソフトウェア書き込みするより、全ての作業がコマンドラインで完結している方がやりやすい。 でもOSXのターミナルでMakeするには、色々と下準備が必要です。 Arduino IDEをインストールする avrコマンドへのパスを通す Arduino Pro Mini上で動作させるためのMakefile修正 cpm単位で値を返すようにGeiger Counterのソースコードを修正する これで、OSX上でMakeできる上、make programコマンドでボードへのソフトウェア書き込みもできてしまいます。…

XBeeよりTWE-Liteを選ぶべき理由?を3つほど。

XBeeの類似製品にTWE-Lite(トワイライト)があるんですが、これはZigbee認証を受けていないみたいですね。 Zigbee認証済み製品は、こちらで検索できるんですが、TWE-Liteはヒットせず。 ZigBeeアライアンスが認定した製品が正式なZigBeeであり、市場では802.15.4部分のみを利用した製品や準拠しただけの非認定製品に対してZigBeeの表現が用いられる事がある。 ZigBeeの名称はZigBeeアライアンスの商標 by Wikipedia どうりで、TWE-Lite公式ページでもZigbee準拠と書いてないわけだ…。 XBeeとの相互通信は無理ってことかな。試してないけど。 でも、それを補って余りある長所が、TWE-Liteにはありそうです。以下、XBee比での利点を挙げてみます。 ファームウェアをプログラミングできる C言語でユーザアプリケーションを書くためのSDKが用意されていて、各イベントに応じた自前のコールバック関数を登録できます。 詳しくは公式のプログラミング情報に記載されていますが、概略はこんな感じ。 cbAppColdStart() 電源投入時に呼び出し cbAppWarmStart() スリープ復帰時に呼び出し cbToCoNet_vMain() メインループ。各種センサーの情報を定期的に送信する処理はここに書くことになるんでしょうね。 cbToCoNet_vRxEvent() 無線パケット受信時に呼び出し cbToCoNet_vTxEvent() 無線パケット送信完了時に呼び出し cbToCoNet_vNwkEvent() MAC層やネットワーク層の各種イベント通知。外部からのwake upピンlow/highはここで受けるんだろうか?ドキュメント読まないと分かりませんが…。 cbToCoNet_vHwEvent() ペリフェラルの割り込み処理の遅延実行部。割り込み処理後に呼び出される…ということは、wake…

スマホから電源スイッチのリモート操作を可能にするシステムをDIYしよう。

サーバ管理経験者なら、これって意外と夢だったりしませんかね? パソコンの電源スイッチをリモート(自宅の外)からON/OFF操作する。 これ、意外と簡単にできちゃいます。電子工作経験とRaspberry Piみたいな小型低消費電力サーバと、低消費電力無線機能付きマイコンXBeeが2つあれば。 XBeeを使ってできること こちらに概要を書いていますが、Arduinoほどの自由度はありません。 でもXBee自身が結構な数のI/Oを持つ上、ADCもあったりするので、ちょっとしたことならXBeeだけで出来てしまいます。今回のようなリレー操作なら超簡単。 とあるピンにリモートで0か1を指定して、それがそのままリレーのON/OFFに変換されるというだけでの仕組みです。 そんなシステムの構成 それなりにシーケンス図を書いてみるとこうなります。 PC電源をON/OFFするには、マザーボードの電源スイッチ端子をショートさせればいいので、リレーを使います。 リレー制御は3.3V highにできるGPIOがあれば十分なので、XBeeのdigital I/O操作APIを叩くだけというお手軽さ。 設定やら構築やらの手順 RaspberryPi + XBee Coordinatorの組み立てと設定 RaspberryPiがWebサーバとして動作して、ユーザはブラウザ経由でXBee Coordinatorを操作することになります。 家庭菜園リモート監視の記事のCoordinatorの設定とRaspberry Pi側のサーバ環境構築を参考にXBeeとRaspberryPiを設定してみてください。 この辺も整理しないと・・・。 小型リレーボードキットLK-RB1 + XBee Routerの組み立てと設定 お手軽にリレーを使えるようにしたキットがあります。小型リレーボードキットLK-RB1です。 エレキット 小型リレーボードキット (5V用) LK-RB1posted with…