趣味の電子工作などの記録。時にLinuxへ行ったり、ガジェットに浮気したりするので、なかなかまとまらない。
RSS icon
  • Broadcom WICED Sense Bluetooth Smart Sensor 開発キット

    投稿日 2014年 12月 30日 コメントはありません

    MOUSERを見ていたら、Broadcomの開発キットが目に止まりました。

    ST MicroelectoronicsのMEMSセンサを5つ載せたBluetoothセンサータグの開発キットで、IoTをターゲットにしているようです。
    搭載しているセンサは

    • ジャイロスコープ
    • 加速度センサ
    • 電子コンパス
    • 大気圧センサ
    • 温湿度センサ

    のようです。iPhone用のサンプルアプリケーションとSDKがついてくるようです。価格はMOUSERで2643円と安価ですが、iOS系のデバイスは何も持ってないので見送ることにしました。

    今ひとつ用途が思いつかないところではありますが、アウトドアスポーツやモータースポーツの道具に取り付けたりすると何か面白いことができるかもしれないですね。

    Bluetoothではなくもっと距離の伸びる920MHz帯とかになれば、いろんな用途がありそうな気がします。

    それにしても海外の半導体ベンダはこういうキット(SDK)を出すのが上手いです。『ハードウェア・ファームウェア設計の雛形まで用意するから、お客さん(システムベンダ、etc)はエンドユーザーに何を提供するかに注力してくださいね。モノ作りは雛形をちょっと手直しして中国に丸投げすればいいっしょ。』というメッセージが伝わってきます。言い換えると、『お客さんは自分の顧客価値の向上に注力してください。下回りは任せてください。』というスタンスです。そりゃあ、かつての日本の半導体ベンダの「デバイスは作ったから後は勝手にどうぞ」というのと比較するとどっちが選ばれるかは明白ですね。


  • また気圧計の電池がなくなりました

    投稿日 2013年 11月 24日 コメントはありません

    前回10月30日に電池交換した気圧計ですが、今日電池がなくなって止まってました。
    今日の昼間は稼働していたので、ほぼ25日間の動作ということになります。単三で作れば2ヶ月くらい駆動できるかな?
    自作の電池駆動機器で簡単にこれだけの期間連続動作させられるようになるなんてしばらく前には予想できませんでしたね。


  • DIP版18F14K50ボードを作ってみました

    投稿日 2013年 11月 6日 コメントはありません

    余っていたDIP版のPIC18F14K50とユニバーサル基板でテスト用のボードを作ってみました。

    OLYMPUS DIGITAL CAMERA

    このボードを作ってみたのは、部品が余っていたから・・・というのもありますが、秋月の800円PIC18F14K50ボードとブレッドボードの組み合わせでは不便な点があったからです。それは、

    • 秋月の800円PIC18F14K50ボードではRA3はPICkit3へ接続するようになっている。
      よって、ブレッドボードではこの端子は扱えない。
    • USBでいろいろなソフトウェアを作って試すには、ブレッドボードでは持ち運びには不便。

    というところからです。双方向でのデータのやりとりを試してみたいので、余っていた気圧センサとI2Cのキャラクタ液晶も載せてあります。気圧センサは液晶の下に置いてあります。(最初の写真は気圧センサから読み取った値を液晶に表示しています)

    OLYMPUS DIGITAL CAMERA

    裏面はこんな感じです。(自分用です。回路図を作っていないのでその代用(^^;。クリックすると特大画像が開きます。)

    OLYMPUS DIGITAL CAMERA

    各部分の説明(自分用です)

    • 基板裏面から見て右上の部分
      USBのBコネクタで、緑色の部品は100mAの保護用ポリスイッチです。
    • 基板裏面から見て真ん中やや上
      PIC18F14K50です。GND周りに付いている2個の小さな1608のコンデンサは1uFのチップコンです。VUSBのコンデンサは0.22~0.47uFが推奨だったと思いますが、半端な容量のコンデンサが手持ちになかったので1uFとしています。茶色の2012の大きなコンデンサ2個はクリスタル周りの22pFで、その左の4.7kΩはRA3のプルアップ抵抗、その左の1.2kΩ×2個はLEDの電流制限抵抗、その左の24kΩはタクトスイッチのプルアップ抵抗です。ポートCは内蔵プルアップがないので外付けせざるを得ませんでした。
    • 基板裏面から見て左の部分
      アナログジョイスティックと3.3VのCMOSレギュレータです。CMOSレギュレータIN/OUTには1uF16Vのチップコンがそれぞれついています。
    • 基板裏面から見て左下の部分
      2個のタクトスイッチです
    • 基板裏面から見て右下の部分
      LCDモジュールへのコネクタと気圧センサです。4.7kΩ×2個はI2Cバスのプルアップ抵抗です。

    ポートアサインは以下の通りとしています。

    • RA3 – ブートローダスイッチ(L:ブートローダ起動)
    • RB4 – I2CバスSDA
    • RB5 – not use
    • RB6 – I2CバスSCL
    • RB7 – not use
    • RC0 – 3.3Vリファレンス電圧入力
    • RC1 – アナログジョイスティックY軸入力
    • RC2 – アナログジョイスティックX軸入力
    • RC3 – LED GREEN(H:点灯)
    • RC4 – LED RED(H:点灯)
    • RC5 – not use
    • RC6 – スイッチ入力左(L:ON)
    • RC7 – スイッチ入力右(L:ON)

    I2Cバスのアドレスアサインは以下の通りです。

    ソフトウェアはとりあえず以下の通りです。

    • PIC18F14K50側ブートローダ
      タクトスイッチとLEDのポートアサインを修正
    • PIC18F14K50側アプリケーション
      カスタムHIDデバイスのデモプログラムをベースにして、先に作った気圧センサ用のPIC16F1823用のI2C/LPS331/LCDドライバを移植。
      さらにTimer0割り込みを使って時間管理(似非マルチタスク処理)ができるように割り込み処理を追加。
    • Linuxホスト側ブートローダ
      Microchipのサンプルプログラムのまま
    • Linuxホスト側アプリケーション
      昔作ったHIDRAWでデータをやりとりするプログラムを改造し、双方向で希望するデータのやりとりができることを確認

    これでLinux環境下でデータのやりとりをUSB経由で好きなようにできそうです。


  • 気圧計の電池がなくなりました

    投稿日 2013年 10月 30日 コメントはありません

    先に作った気圧計ですが、連続稼働していたら電池がなくなってました。稼働し始めて約9~10日というところですが、もともと何かの電池として使っていたものを持ってきたので、寿命としては怪しいです。
    なので、改めて新しい電池(といっても、ダイソーアルカリ乾電池ですが・・・)を入れてみました。

    さて、どのくらいの寿命となるでしょうか。


  • LPS331による気圧計の製作

    投稿日 2013年 10月 21日 コメントはありません

    しばらく前に秋月で安価な高精度気圧センサLPS331のモジュールが出ていたので購入してあったのですが、これを電池駆動の気圧センサとして仕立ててみました。

    OLYMPUS DIGITAL CAMERA

    おもなキーパーツは、

    • 気圧センサ:LPS331AP
    • 液晶モジュール:AQM0802A
    • マイコン:PIC16F1823
      何でもよかったのですが、手頃なサイズでI2Cをもっているので採用しました。
    • スイッチングレギュレータ:HT7750A
      47uHのインダクタを使って一旦5Vを生成します。
    • CMOS三端子レギュレータ:S-812C33AY-B-G
      5VからPICマイコンおよびLCDモジュール用の3.3V生成に1個、センサの電源用に1個使っています。消費電流を抑えるため、CMOSのレギュレータとしています。

    といったところです。

    小型軽量かつ長時間駆動を目指すため、単4電池1本からスイッチングレギュレータを使って電源を生成しています。
    当初はHT7733Aを使用し、LCフィルタでノイズを低減して使用していたのですが、どうも動作が安定しないのでノイズが原因かと疑って、一旦5Vにしてから3.3VのCMOSリニアレギュレータで電源を生成しています。(根本原因は他にあったので、結局これがどのくらい影響しているかはわかりません)

    OLYMPUS DIGITAL CAMERA

    センサにはLEDが搭載されていますが、電池での動作時間を伸ばすため、その右上の電流制限抵抗を除去することでLEDへの電流をカットしています。

    OLYMPUS DIGITAL CAMERA

    背面は試行錯誤の繰り返しで汚くなってしまいました。

    ソフトウェアはMPLAB-X+XC8で作成していますが、このLPS331というデバイスは結構くせがあり苦労しました。(XC8にもいろいろ癖があって苦労しました)
    当初は自動モードで勝手に連続変換させて、変換終了時に割り込みにてPICに通知、値を読み取って表示させようとしていました。しかしこちらの記事にあるように連続モードで変換すると、変換の処理自体?が抜けていることがあるのです。そこで、約1秒周期でワンショットの変換コマンドを発行することにしたのですが、それでも表示の変動が起こります。「レジスタは初期値に関わらず全部書き込まないとダメ」など、いろいろWebで見かけた情報を取り込みながら、最終的には約2秒周期での変換とすると変換値の暴れが収まるようですので、約2秒周期での変換&表示としています。それでも時折温度については±1℃程度の範囲で暴れることがあるようですが、妥協しました。

    OLYMPUS DIGITAL CAMERA

    以前作ったArduinoベースの温度・湿度・気圧計との比較です。

    気圧についてはLPS331APの方がごくわずか・・・0.2hPa程度ですが、低めに出る傾向があるようです。
    温度の方はLPS331APの方が0.7℃程度ですが低めに出ています。
    値の安定性については気圧・温度ともにSCP1000の方が明らかに安定しています。

    LPS331のほうはドキュメントもよく読むとおかしな所が結構あって(ドキュメントの)出来がよくありません。ドキュメントの出来が悪いデバイスは概してデバイス自体にもいろいろ問題を抱えている場合が多いように経験しています。

    #原因切り分け用に買い足したLPS331APがあるのだけど、どうしようかな・・・(^^;

    それと消費電流ですが、電池のところで測定すると、センサが動作していないタイミングでは1.8mAくらいで、センサが動作すると4mA程度に上がります。ただ、デジタルテスタで測定しているので、どのくらいが本当のピークなのかはわかりません。センサの動作時間自体は100msにも満たないようなので、平均でも2mA以下くらいなのでしょうか。2mAとすると、単4アルカリ乾電池の容量は700~800mAh程度のようですので、電池1本で350~400時間程度(電圧が下がってくるので、もうちょっと短いか)=約2週間程度の動作時間というところでしょうか。

    現状では消費電流を下げて駆動時間を伸ばすためにPICの動作周波数は内蔵オシレータ使用で125kHzとしてあります。さらに消費電流を下げるために表示更新の待ち時間でのPIC自体のスリープも考えたのですが、内部の31kHzのLFINTOSCでスリープ動作させる方法が見つかりませんでした。どうやら外付けの32kHzのクリスタルで動作させないといけないようで、そこまで部品追加するのは面倒なので止めました。

    ソースも置いておこうかな・・・と思ったのですが、コメントが古い(試行錯誤する前)ので、とりあえずやめておきます。(コメントを整理したら置くかも・・)


  • 環境情報をRaspberry PiでTweetしてみる

    投稿日 2012年 9月 16日 コメントはありません

    いろいろネタが揃ってきたので、 Raspberry Piで環境情報をつぶやかせてみることにしました。

    まず、環境を取得するハードウェアは、以前作った気圧計・温湿度計を使います。LCDの表示がついていますが、とりあえずはそのままにしておきます。Arduinoベースのこの気圧計・温湿度計は、5秒ごとに気圧、温度、湿度を測定し、9600bpsでUSBシリアルに送信してきます。

    続きを読む »


  • LinuxでHOLUX m-241cをつかう

    投稿日 2012年 8月 11日 コメントはありません

    ずいぶん前に買ったGPSロガーのHOLUX m-241cですが、久しぶりに使ってみました。で、せっかくなので、データの吸い上げをLinuxでできないか調べて見たところ・・・あっさり簡単でした・・・。

    続きを読む »


  • いろいろ整理(4)V-USBのeasylogger

    投稿日 2011年 9月 30日 コメントはありません

    V-USBというソフトウェアだけでUSBを実現してしまおうという大胆なプロジェクトを追試したものです。V-USBの凄いのは、ATTINYのわずかなROM容量で、しかも内蔵RCオシレータでUSB(LowSpeed)の通信を実現してしまうところです。

    その中のeasyloggerを実際に作ってみたものがこれです。

    わずかこれだけの部品でPCからはキーボードに見える。タクトスイッチがスタート/ストップになっていて、1秒周期で2ピンの電圧をキー入力してリターンを押す動作を繰り返してくれるので、適当なテキストエディタやExcelを開いておくと勝手にログファイルが生成されるというものです。

    写真では適当なCDSをつけてあるので、明るさに応じた値が出力されることになります。

    ちなみに半田面はエポキシ接着剤を盛って固めてあります。しかし、経年変化で色が変わってしまっています。

    当時に比べると、V-USBの製作例がずいぶん増えています。今度じっくり見てみたいと思います。

     

     


  • 気圧計・温湿度計を改造

    投稿日 2011年 7月 24日 コメントはありません

    以前作った気圧計・温湿度計はLinuxのPCに接続して記録をとるのが元々の目論見でしたので、表示デバイスなどは設けずUSB-UARTでデータ採取し、Webブラウザ越しに見れるだけとしていました。しかしDebianノートPCが壊れてしまい、それもできなくなったので直接表示するLCDを付けてみました。

    といっても、スマートではなく、この写真のように無理やり接続しています。このArduino互換ボードは3.3V動作ですので、接続しているのは秋月の3.3V動作LCDキャラクタディスプレイモジュール[16×2行][バックライト付白抜き]です。

    本当は消費電力が増える=温度が多少なりとも上がるということでバックライトなしにしたかったのですが、3.3V動作のバックライトなしで見えるタイプのものがなかったので、バックライト付きを付けました。

    100円ショップの半透明(ポリプロピレン?)のプラケース越しなのでやや曇りがちですが、今の温度、湿度、気圧がわかるようになりました。


  • 気圧計・温湿度計を製作

    投稿日 2011年 5月 31日 コメントはありません

    台風2号(が変わった温帯低気圧)が接近してきているので、急遽気圧計と湿度計をまとめてみました。

    気圧センサの方は以前確認したSCP1000で、湿度センサも以前確認したHS-15Pです。湿度測定に必要な温度センサはSCP1000の出力を使用することで削除しました。

    今回は、AVR周りを作るのが面倒だったので、3.3V版秋月Arduino基板に1.27ミリピッチのユニバーサル基板を利用してシールド形式でセンサを載せてみました。3.3V電源はUSBの電源をオンボードの3.3Vレギュレータで生成しています。まだまだ隙間がありますので、センサの追加も可能です。ソフトウェアも以前作ったものを統合してシリアル出力するように改めました。

    で、測定結果ですが、気圧は自宅から10km程度にある気象庁の大手町の観測値よりも2ヘクトパスカル程度低い値が出ます。これは自宅が6階(約20m)ですので、その標高分(10mで1ヘクトパスカル下がる)の差だと思います。
    温度の方は室内だとどうしても外気温に比べて温度が高くなってしまいます。当然、温度によって変化する湿度も低めに出ています。この手のセンサはやはり屋外に設置するしかないようなのですが、屋外に設置するとなると電源と通信の確保が問題です。