PIC開発環境構築

久しぶりに電子工作をしたくなり、PICの開発環境を構築した。といっても、別に変わった環境ではなく、

  1. まずWindowsXP上でMPLAB IDE v8.60をインストールした。インストール中に HIGH-TECH C lite のインストールをするか確認してくるので、インストールを実施。今回のターゲットに PIC10、PIC12 が入っているので、必要なのです。
  2. 次に、PIC24用のCコンパイラとして、MPLAB C30をインストール

これで完了です。昔あった MSXML がらみの無限WindowsUpdateも起こらないみたい。

次に、動作確認として、手持ちの12F675のGPIO2にLEDをつけたものを用意した。プロジェクトをウィザードに沿って作成し、その際にデバイスはPIC12F675、Cコンパイラとしては HIGH-TECH C を選択する。プロジェクトが生成できたら、以下のようなソースを作成し、main.c として保存後、main.c を Source Files に登録する。

ヘッダファイルはCコンパイラ標準のものは特に Header Files に登録しなくても大丈夫なようである。「Configure」→「Configuration Bits」で、FOSCは内部発振、WDTは禁止、PWRTも禁止、MCLREがGPIO3をデジタルI/Oに設定、BODも禁止して、「Project」→「Build」でコンパイルを行う。コンパイルが成功したら、書込みはPICkit2で行うので、「Programmer」→「Select Programmer」→「PICkit2」と設定し、「Programmer」→「Program」で書込みを行うと、LEDの点滅が始まった。

 

 

Ubuntuその後9(rtkitってなに?)

KlamAVがちゃんと動いているのか確認する過程で、なにげなく「ps -auxww」して眺めていたら、

rtkit     1247  0.0  0.0  22908   912 ?        SNl  Nov05   0:00 /usr/lib/rtkit/rtkit-daemon

などというプロセスがいることに気がついた。『名前からして rootkit か?』とかなり焦ったが、よく考えるとそんなバレバレな名前をつけるのも変な感じです。
で、Googleさんに聞いてみた(単にググったともいう)ところ、RealtimeKit だそうで。通常のユーザープロセスに、リアルタイムスケジューリングを安全に提供するしかけ・・・みたいです。
それにしても紛らわしい名前ですね。

Ubuntuその後8(KlamAVはちゃんと仕事しているのか?)

Linuxといえども、やっぱりインターネットに接続している以上はウイルス対策をしないと不安です。というか、しなければなりません。

・・・・で、ClamAVのGUIフロントエンドであるKlamAVを入れて、スケジュールスキャンを設定しているのですが、本当に動いているのか不安になってしまいました。(^^;
そこで、www.eicar.orgからテスト用のファイルをダウンロードしてスキャンテストさせてみました。
http://www.eicar.org にアクセスし、右上の「Anti Malware Testfile」をクリックします。そうすると、下の方にテスト用のファイルが4種類ありますので、これをダウンロードしてきてどこかに保存します。これらのファイルは単に文字列を表示するDOS用の実行形式のCOMファイルで、拡張子を変えたりZIPで圧縮したりして4種類になっています。実際に実行しても無害とのことです。
テスト用のファイルが何なのかEICARが何なのかは、Wikipeiaでも見てください)
で、スキャンさせてみると・・・
ということで、無事に検出してくれました。途中、ファイルをゴミ箱に入れたりしているのバレバレですね。

Ubuntuその後7(スクリーンショットの取得)

WindowsでもLinuxでも、操作方法の説明の記録を残そうとすると、ウインドウや画面全体のスクリーンショットを取りたくなることがあります。Windowsでは「ALT+PrintScreen」などでクリップボードに落とすことができますが、Ubuntuではどうするのか調べてみました。
調べてみると、Ubuntuではそのためのアプリケーションが用意されていて、「アプリケーション」→「アクセサリ」→「スクリーンショットの取得」で、

のような画面が開きます。ここで「取得するまでの待ち時間」を設定して、「スクリーンショットの取得」を押すと、そのタイミングでスクリーンショットが取れるみたいです。スクリーンショットを取った後、ファイルの保存場所を聞かれます。なお、「取得するまでの待ち時間」の初期値は0になっているので、要注意です。

 

USBメモリにUbuntu 10.04をインストール(5) ~使ってみた~

先々週、出張で上海に行ってきました。
泊まりはビジネスホテルでしたので、ネットワークは無料で使用可能。
早速、USBメモリをノートPCに挿入して起動し、Chromeブラウザを起動すると、無事にアクセスできました。その喜びを早速ブログに・・・と思ったら、blogger.comには接続できませんでした。(泣)

上の写真は有名な観光地である外灘(ワイタン)から見た黄浦江の対岸の浦東(プートン)地区のパノラマ写真です。この日の上海は万博も終わりに近い日曜日ということで、もの凄い人でした。

加速度センサ

ついでに電子工作で使えそうな加速度センサも調べてみた。デジタル出力のみ抽出。

  1. MMA7455L(Freescale)
    StrawberryLinux扱い。3軸デジタル出力(I2CまたはSPI)。電源電圧2.4~3.6V。測定レンジは2G、4G、8G。分解能8ビットなので、15.6mG。最大サンプリングレート250Hz。
  2. MMA8450Q(Freescale)
    DigiKey扱いで単価@310円。3軸デジタル出力(I2C)。電源電圧1.8V。QFNパッケージ。測定レンジは2G、4G、8G。分解能12ビットなので、0.976mG。最大サンプリングレート400Hz。
  3. LSM303DLH(STmicro)
    StrawberryLinux扱いでモジュール販売。3軸加速度デジタル出力+3軸地磁気デジタル出力。電源電圧2.5~3.3V。レンジは2G、4G、8G。加速度分解能は12ビットなので、0.976mG。

加速度を測定する用途というとこんな感じか?

  • 地震検出
    震度1で1mGくらい(周波数成分によって変わるけど)なので、震度1は無理として、震度2くらいからなら記録できるかな?
    ただ、地震波形を記録するなら、±2Gのレンジで16bit、できれば20bitくらいの分解能が欲しいところですね。MEMSで作るのは難しいのかな?
  • 車両の揺れ検出
    車や電車の前後左右方向の加速度ログなんかとってみると面白いか?
    新幹線は前の車両と後ろの車両で揺れ方が違うと思うのだけど、一度実測してみたい。
  • 車両の衝突検出
    JPEGカメラと組み合わせてドライブレコーダとか。でも、実験したくないですね。
  • 加速度検出タイプの万歩計
    ・・・もう市販品を持ってる。

いまいちグッとくる応用例って思いつかないですね。

    気圧センサ

    ここのところ、体調がよくない。多分、気圧と関係があると思うんだけど、でもデータもないし・・・ということで、比較的安価で電子工作で使えそうな気圧センサデバイスなんかを調べていたら書き留めておきたくなってしまった。記載しているのは大気圧測定に使えそうなもののうち、自分で気になった部分のスペックのみ。当然常温・常圧環境下。

    1. VTIテクノロジー社製SCP1000-D01
      秋月やStrawberryLinuxでモジュールとして扱っている模様。
      電源電圧2.4~3.3V。D01はSPIインタフェース。高分解能モードで圧力分解能1.5Pa、変換周期1.8Hz(高速モードで9Hz)、絶対圧力精度±150Pa程度、温度分解能0.2℃、温度精度±1℃程度。
    2. ボッシュ製BMP085
      スイッチサイエンスにてモジュールとして扱っている模様。
      電源電圧1.8~3.3V。インタフェースはI2C。超高分解能モードで変換時間数十ms、絶対精度1hPa程度、温度精度0.5℃程度、圧力分解能0.01hPa=10Pa、温度分解能0.1℃。

    いずれも温度センサを内蔵しており、外部のマイコンで補正してやる必要がありそう。精度は前者、速度は後者に分がある。気象センサならどちらでも十分な精度が得られると思われる。

    後者なら可聴域外の超低周波音なども観測可能なのかもしれない。
    そのうち、気圧ロガーなんか作ってみたいと思う。(いつになることやら・・・)

    #スイッチサイエンスには超小型GPSとか面白そうなものが他にもあるなぁ

    Ubuntu + Chromeブラウザは快適

    最初にUbuntuをいれたAtom230マシンですが、当初はブラウザにFirefoxを使っていました。
    しかし、タブを複数開くとメモリが不足するのか、しばらく反応がなくなることが少なくありません。
    そもそも、非力なCPU+1GBでシングルチャネルしか搭載できないDDR2-533MHz動作(4.3GB/s)のメインメモリ+メインメモリをシェアする内蔵VGA(しかもフルHD表示させてるので、表示だけで0.5GB/s)なので仕方がないか、と諦めてCore2QuadのWindowsメインマシンでWebブラウジングしていました。

    しかし、Core2Quad+WindowsXP+FirefoxでもBloggerの編集画面(フォーム画面)ではカーソルの移動が何かおかしくて書き込みにくい(改行が即時反映されないなど)ので、試しにChromeブラウザを入れて見みました。

    まず驚いたのは(Googleも宣伝していますが)その高速性です。サクサク感がたまりません。また、非常に安定しています。

    これならば、ということで、Ubuntuにも入れてみることに。
    大抵のLinuxアプリケーションは非常に入れにくかったり、そもそも入らなかったり、ということが少なくないのですが、Ubuntuに入れる分には、

    1. Firefoxでこっちのページからダウンロードする。Ubuntu対応されていることも記載されてます。
    2. Firefoxダウンロードしたパッケージをダブルクリックするとパッケージマネージャが開きます。
    3. 表示にしたがってインストール(特に何もすることはないですが・・・)
    4. ちょっと完了の表示がわかりにくい(といっても、パッケージマネージャの課題で、アプリ側にはどうしようもないでしょう)けど、インストール完了
    5. 「アプリケーション」→「インターネット」→「Google Chrome」で起動

    でおしまい。「アプリケーション」→「インターネット」→「Google Chrome」で右クリックして「このランチャをデスクトップに追加」とすると、さらに起動が楽になります。

    さて、Ubuntu+Chromeですが、非常に快適です。非力でメモリの少ないAtom+Ubuntuでたくさんタブを開いてもまったく問題ありません。このAtomマシンはACアダプタで駆動していて、静音化のためにCPUのFANもなく、ケースFANが1個だけ。HDDも回転・アクセス音がうるさいのが嫌なのであえて2.5インチにしてあります。おかげで静かな環境でWebブラウジングができるようになりました。

    USBメモリにUbuntu 10.04をインストール(4) ~初期設定編~

    無事にログインし、さらに待っていると眠くて放置してウトウトしていたら、セキュリティアップデートがぞろぞろ。312個ものアップデートが表示されました。アップデートを適用すると・・・・現在30分経過でプログレスバーは1/4くらいしか進んでません。このペースだと最低2時間ですね・・・。

    ・・・・待つこと1時間15分、無事にアップデートが完了し、再起動です。
    再起動がこれまた時間がかかる・・・。 ログイン画面までAtom230だと1分半くらいかかります。
    ま、何はともあれ、無事にインストール完了です。

    次に、シャットダウンしてUSBメモリをターゲットのノートPCに持って行きます。
    USBメモリを挿して電源ON!
    多少時間はかかりますが、無事にログオン画面が表示されました。
    (それにしても、ログオン画面が出るまで画面真っ暗って、なんとかならかったんですかね?)

    無線LANも無事に動作しました。

    ここで、以下のものを Synaptic パッケージマネージャを使ってインストールしました。

    • KlamAV(アンチウイルスソフト)
    • GIMP

    続いて、Chromeブラウザをインストール。これで完了です。

    久しぶりにUSBメモリへのOSインストールを行いましたが、ずいぶんと楽になったものです。
    当初は新しいバージョンのOSでの対応情報があまりなかったので、心配していましたが、インストールが楽になった分だけ、Webの情報が減っているだけのようですね。

    USBメモリにUbuntu 10.04をインストール(3) ~インストール編~

    CD-ROMからインストールすると、公式ガイドでは「デスクトップにある『インストール』をダブルクリックして実行」としてUSBへのインストーラを起動することになっていますが、10.04LTSのCD-ROMではいきなりインストーラが起動して、LiveCDとして起動するか、インストールするかを聞いてきます。

    ですので、ここでUSBメモリを挿入し、「Ubuntu 10.04 をインストール(みたいなメッセージだったと思います)」を選択しました。選択すると、タイムゾーンの設定、キーボードレイアウトの後、「ディスクの準備」が表示されます。

    ここでは「このコンピュータにはオペレーションシステムがインストールされていません」と表示され、 どこに Ubuntu 10.04 LTS をインストールするか質問されます。ここでは、USBメモリ全体をUbuntuにしたいので、「ディスク全体を削除してから使用する」を選択しました。

    次にユーザー情報(ユーザー名やパスワードなど)を聞いてきますので、適当に入力します。
    これでインストールの準備が完了し、設定内容の確認をしてきますので、「インストール」を押します。

    7~8分経ったころでしょうか、画面下に「まもなくインストールが終了します。Ubuntuをどうぞお楽しみください。」と表示されましたが、プログレスバーはまだ半分くらいだったような・・・。

    20分ほどするとインストールは完了し、再起動を促す画面になっていました。
    起動順序をUSB-HDDに変更して、再起動をかけると・・・・・沈黙していまいました。
    が、眠かったので、そのまま放置してうとうとしていたら、しばらくしてログイン画面が表示されました。(遅いだけでした!起動プロセスぐらい表示してもいいと思うんだけど。)
    インストール時に設定したユーザー名とパスワードでログインすると、無事にデスクトップ画面が表示されました。

    ★2011/2/14追記:Ubuntuは2.4GB以上の容量を要求するのでたぶん関係ありませんが、インストール先のパーティションは(容量によって)LBAモードになっている必要があります。具体的にはうまく起動できない場合に、パーティションのbootflagの確認の際にLBAになっているか併せて確認する必要がある、ということです。