2013年1月17日木曜日

NeXtPino と eXodusino (LPC1114)

 前回の「俺は国産マイコンをやめるぞ!ジョジョーーッ!!」で、特殊電子回路さんもRaxinoやめちゃったし、GR-SAKURAのI2Cを自分は上手く使いこなせないこともあり、新年を迎えてARM系マイコンに流れちゃおうかな・・・、というところで、前回はmbedに初めて手を出してみましたが、ふと、傍らを見るとトラ技の2012年10月号に付録としてついてきた NXPのLPC1114が放置されたまま転がっていました。そこで、これで遊んでみようかなと思い、"LPC1114"で検索していたら、Arduino互換ライブラリのeXodusinoやArduino形状に端子を出したNeXtPinoというボードがあったので、試しにこのNeXtPinoボードを入手して、eXodusinoのソースを頂いてきて、LPCXpressoでコンパイル・書き込みをしてみました。初期サンプルコードでは1秒毎にシリアル(USB)から秒数をカウントアップした数値を出力するだけのものですが、動作を確認できました。今後、順次、I2CとかSPIとかを試して行きたいと思います。


 写真上が NeXPino で、下の長細いのは LPCXpresso評価ボード です。LPCXpresso評価ボードは真ん中のLPC-Link(デバッガ)とCPUボード側を結ぶ14pin(7pin×2列)の列の真ん中でハンダショートされているランドの部分のハンダを吸い取って、ピンヘッダをハンダ付けして、デバッガを外部カイロに対して単体で使うときはケーブルで引き出して、CPUボードに繋ぎたいときはショートピンでショートして使うようにしてあります。


 とりあえず、色々できるようにブレッドボードをスタックしてみたところ、デバッグ(SWD)ポートが使えなくなることに気が付きました。そこで、酔った勢いで、デバッグ端子をぐにょっっと横に曲げてしまいました。


 これで、シールドをスタックしたままデバッグが行えます。
 ちなみに、マイコンをいじりながらお酒を飲んだり、酔っ払ってマイコンいじりしたりすることが多々あります。今日はサンクトガーレンのインペリアル・チョコレート・スタウト、


 チョコレートは入っていませんが、大麦を強く焙煎して、ビターチョコレート風味を出しています。
 次が、オレンジ・チョコレート・スタウト、


 オレンジ・ピールを使った、オレンジの甘い香りと、ビールとマーマレードのような苦味が美味しいです。
 つづいて、アップル・シナモン・エール、

 アップルパイのような甘みと香りのあるスィート・ビール。これも、美味しい。
 酔もいい加減なので、今日はここまで。今後、I2CとかSPI調べる予定です。LPC1114が使えるようになれば、ローエンドはLPC1140 (Cortex-M0)、その上が、mbed LPC1768 (Cortex-M3)とか Arduino Due (Cortex-M3)、その上がRaspberry Pi (Cortex-A8、OS有り)、みたいなラインナップが揃うかも。やっぱり、国産マイコンから離れていってしまうなぁ。





2013年1月14日月曜日

mbed はじめたよ。

 年もあけたし、なにか新しいマイコンでもいじってみようかと思い、mbed に手を付けて見ることにしました。やっぱ、これからはARMでしょ~、ってことで・・・。(RaxinoとかGR-SAKURAで国産マイコンを応援したいところだったんですが、I2Cをうまく使いこなせなかったり、特殊電子回路さんもRaxinoから手を引くみたいだし、結局、国産マイコンよりもARMな流れなんだろうなと・・・)

 とりあえず、始めるのに評価ボードのようなものがあったほうが楽だろうと思い、マルツでMAPLEボードというのを買って組み立てました。が、これが、ランドが小さくてハンダ付けしづらい・・・。それほど高密度な実装でもないので、もう少しランドを大きくしておいてくれたら良かったのに。ハンダをのせすぎて、団子状になってしまいがちでした・・・。まあ、ハンダ付けはされているので、いいんですが・・・、この小さいランドでグランドはベタになっているので、グランドにつながったランドをハンダ付けしようとするとハンダが流れていってくれません。無理やり小手先でこちょこちょやって付けても、部品を基板側から押すとポロッととれてしまいます。もう少しランドが大きければ、コテで温めやすいんだけど・・・。仕方ないのでコテの温調をフルパワーにしてハンダ付け。一応、組みあがりました。


 で、お約束のHello,World!です。


 mbed上のLEDをナイトライダー風に順番に点滅させて、USBシリアルとLCDに Hello,mbed!! を出力しました。
 Web Compiler からプロジェクトをエクスポートして、LPCXpresso にインポートしてビルドしたバイナリをmbed上で実行できることもついでに確認。





2013年1月6日日曜日

モバイルプロジェクタ QUMI Q5

 新しいガラクタです。と、いっても、一ヶ月以上前に買ったものなんですが、主に仕事の打合せで使う機会もあるかなぁ?と思ってモバイルプロジェクタを衝動買いしたんですが、実際には仕事には今のところ使う機会はありません。QUMI Q5という機種ですが、普段仕事で車で移動するときは大きめのPCバッグを持ち歩くので、一式ポーチに入れてバッグに収まります。


 大きさがわかりにくいかもしれないので、手で持つとこんな感じ。


 仕様によると、幅160×奥行き102×高さ32.3mm、重量490g とのこと。
 正月休みに家でBlu-rayをみるのに、試しに投影してみました。


 明るさの仕様は500ルーメンとなっていて、ホームシアター用のプロジェクタには到底及びませんが、昼間の部屋(カーテンは閉めたけど)でもプレゼンならできるレベルです。このあと、シャッターを下ろして部屋を暗くしたところ、映画鑑賞も十分可能な明るさでした。ただ、(今回Blu-rayをHDMIで入力しましたが)この機体自体の解像度はDVD(1280×800)レベルなのでBlu-rayの解像度はいかせませんが、Full HDの45型プラズマTVよりも大きい画面でみれて、画質などほとんど気にしない自分としては、映画館気分で結構楽しめるレベルでした。そんな自分でも、映画を見始めたときは画像の歪みとモアレ縞のようなパターンが気になり、目がつかれるという印象でしたが、不思議なもので、20分くらいすると見慣れてきて、目が疲れる感じもなくなり、縞模様も脳内補正?されるようになってきました。(いやぁ、人間て便利にできているなぁ、って思いました。)

2013年1月3日木曜日

新旧Raspberry Piの比較

 去年の7月に1台目のRaspberry Piが届いて、追加を頼んでいたんですが、半年後にようやく届いて改めてセットアップを行いました。セットアップの際には気が付かなかったんですが、あとからよく見ると、ボードのリビジョンが変わっているようです。


 左側が半年前に届いた旧タイプのもの、右側が先日届いた新タイプです。新しいものでは、USBコネクタの脇にあったポリスイッチがなくなって固定用のネジ穴が追加になっています。また、Raspberryマークの脇にのテストピンのラウンドがなくなってネジ穴になっています。ポリスイッチがなくなったように見えるんですが、もしそうであれば、(十分な容量の電源が供給できていれば)今までUSBハブを使わないと駆動できなかったデバイスも直結で駆動できるようになっているかもしれません。



 たしか、新しいものはメモリも倍増しているはず。meminfo でみてみると・・・


 おお、たしかに512MB(448996kB)になっています。これで画像処理とかも早くなるかも、オーバクロックと組み合わせて試して見たいと思います。

 そういえば、パッケージも変わっていました。以前のものは


 新しい方は、プラスチックのケースで、そのままケース上において使ったり、SDカードをはめ込んで保存できる溝もついてたりします。





 ちなみに自分は専用ケースをあわせて購入して、それに入れています。ただ、拡張端子を利用するので蓋がかえってじゃまになってしまっていますが・・・。



Kinect で ROBO XERO 制御

 昨日は仕事だったんですが、幸い今日は一日ゆっくりできるので、早速朝から、 Kinect for Windows でポーズ認識して ROBO XEROを動かすっていうのをやってみました。


と、いっても、各関節の角度を検出して同じポーズをさせているわけではなく、特定のポーズを認識したら、ROBO XERO側にプリセットしておいた同じポーズをさせているだけです。いずれは、各関節の角度検出してマスタ・スレーブで同じポーズを取らせる・・・みたいなことをやってみたいんですが、とりあえず、お勉強がてら、簡単な方法をとってみました。
 Kinect側のポーズ認識からROBO XEROが動作開始するまでに間が空くのは、ROBO XEROへのコマンド送信をわざと500ms間隔に制限しているためです。実は、自分が作ったポーズ認識の処理は出来が悪く、認識状態がパラパラと変わってしまうため、そのたびにコマンドを送ってしまうとROBO XEROくんが暴れてしまうからです。
 今後、ポーズ認識の方法、関節単位での角度検出してROBO XEROに送る場合のコマンド体系(現状、ROBO XEROが持っている6バイト、ヘッダとチェックサムあわせて8バイトのコマンドを送ることで、ROBO XERO の V120~125変数へ渡す方法を使っているので、)を考えないと・・・。

2013年1月2日水曜日

サンクトガーレンのディアブロ

 昨日は元旦ということもあり、ちょっと贅沢して、おせちをつまみにディアブロの 2012年ものと 2011年ものの飲み比べをしました。


 2012年もののほうが苦味が強く、2011年ものの方が落ち着いた感じで苦味が弱くなってその分甘味が感じられます。どちらもそれぞれいい意味で特徴があります。年によって味が変わるのか、熟成によって変わるのかはわかりませんが、こういう楽しみ方が出来るビールというのも面白いです。
 ちなみに、小麦のアンヘルも以前飲んだ時はあんまり・・・って感じでしたが、実は冷やしすぎていたことがわかりました。12度くらいに戻してから飲むと、アンヘルも非常に濃厚な香りと甘みでまさに小麦のワインを体感できました。
 なかなか手に入りにくいものですが、南足柄近辺の方なら、今ならまだ よしの で売っています。

2012年12月30日日曜日

Raspberry Pi のSDカードイメージの作成~日本語環境~VNC等インストールのおさらい

 夏ぐらいに注文してあった追加のRaspberry Pi が届いたので、この機会に Raspberry Pi のSDカードイメージの作成のおさらいをすることにしましした。で、SDイメージのダウンロートページを見たら、ちょうど更新されたバージョンがアップされていました。

 まず、必要な物をダウンロードしてきます。作業環境としてはWindowsを前提にしています。

 ダウンロードした Raspberry Pi の SDカードイメージは zip圧縮ファイルになっているので、解凍します。 2012-12-16-wheezy-raspbian.img のようなファイルが展開されます。
 Win32 Disk Imager を起動して、展開したイメージファイルと書込先デバイス(間違えないようにしましょう。他のディスクを消してしまうと大変です)を選択して「Write」ボタンを押します。


 書込みが終わるまで、待ちます。成功すれば「Write Success」のダイアログが表示されます。

 出来上がったSDカードをRaspberry Piに挿して、モニタをHDMI端子またはコンポジット端子に接続します。自分はHDMI入力のあるモニタを持っていないので、プラズマテレビにつないで一時的にモニタ代わりにしました。また、キーボードとマウスはUSB接続します。Ethernetケーブルを接続して、MicoroUSBへ充電用ACアダプタ等(1Aくらいの容量があるもの)接続して電源Onです。


 Raspberryマークが左上に表示されて、Linuxの起動画面がしばらく表示された後、


 Raspi-config 画面が表示されます。今回利用したイメージでは
   info                     :説明。
   expand_rootfs        :ディスク領域拡張。
   overscan              :オーバースキャン。
   configure_keyboard :キーボード設定。
   change_pass          :パスワード変更。
   change_locale        :ロケール(言語)設定。
   change_timezone    :タイムゾーン設定。
   memory_split         :グラフィックなどのメモリー割り当ての変更?試してないです。
   overclock             :オーバクロック設定。
   ssh                     :SSHサービスの起動設定。
   boot_behaviour      :起動時にデスクトップ(GUI)を起動する設定。
   update                :アップデート。
のメニューが並んでいました。とりあえず、起動時に設定するのは
①sshをEnableに設定して、外部からSSH接続できるようにしておく。
②change_timezoneでタイムゾーンをTokyoにしておく。
③config_keybordでキーボードを105→Japanese→OADG109(この辺は人による)にしておく。
④expand_rootfsでSDカードの利用領域を広げる。
です。とりあえず、このくらいで、他はあとから設定・変更でもいいはずです。下手にchange_localで日本語を設定してしまうと、Fontがないので文字化けします。

 これで再起動するとディスクが拡張されて、GUIで起動されます。
 自分はここまで来たら、TVは使わず、Windows PCからネットワーク経由で接続して作業を進めました。ローカル(TV)画面側でifconfigでIPアドレスだけ調べておき、SSHで接続します。(ちなみに、ユーザーは pi 、パスワードは変更していなければ raspberry です。)


 一応、dfコマンドでディスクが拡張されているか確認します。
 次に、自分はGUIをWin PC上からリモートで利用したいので、VNC Serverを入れました。
     sudo apt-get install tightvncserver
で。デフォルト状態ならrootはパスワードなしなので、そのままsudoできるはずです。


 VNC Serverを起動します。
     tightvncserver


 初回はパスワードを聞かれるので適宜設定します。PC側からVNC Viewerで
     Raspberry PIのIPアドレス:5901
へ接続します。


 とりあえず、VNCでGUIにリモート接続するところまでは完了です。

 次は日本語環境をセットアップしていきます。GUIとCUIの両方のリモート接続を使っていきます。コマンドの実行はCUIでもGUI内のLXTerminalでもいいと思いますが、自分はCUI接続側でコマンド実行して、GUI側で確認・・・の感じで進めました。
 まずは、フォントのインストール。
     sudo apt-get install ttf-kochi-gothic xfonts-intl-japanese xfonts-intl-japanese-big xfonts-kaname


 次にロケール設定。sudo rasp-configで先の設定画面に行って、change_localeするか、または、
     sudo dpkg-reconfigure locales
で、en_GB.UTF-8 UTF-8、ja_JP.EUC-JP EUC-JP、ja_JP.UTF-8 UTF-8 あたりにチェックを入れて


 ja_JP.UTF-8 をデフォルトにして進みます。
 続いて、IMEです。
     sudo apt-get install ibus-anthy



 ここで一旦リブート。
     sudo reboot
 再度SSHでログインして tightvncserverを起動し、VNC Viewerで接続します。
 が、ここで、IME(ibus-anthy)のインストールに失敗していました。もう一度、試したところ、「いくつかのアーカイブを取得できません・・・・」的なメッセージ。そこで、一旦
     sudo apt-get update
してから、再度
     sudo apt-get install ibus-anthy
して、 sudo reboot。今度は成功。GUI右下にキーボードのマークが表示されるので右クリックして設定画面を開いて、設定を行います。

 インプットメソッドのタブでAnthyを追加しておきます。一般のタブで全角・半角キーとCTRL+SPACEでIME起動となっていましたが、自分の環境ではCTRL+SPACEでしかIME On/Offしませんでした。VNC経由だからかもしれません。とりあえず、Midoriブラウザか何かで入力を確認。


 どうやら、日本語入力できているようです。これで一応、基本的な環境はできた感じ。あとは、アプリケーション類を入れていきます。
 まず、Chromiusブラウザ
     sudo apt-get install chromium


 エディタとして Geany。
     sudo apt-get install geany


Geanyエディタにプラグインを入れたいんだけど、たしか、gitから持ってくるので、まずは、
     sudo apt-get install git
で、gitを入れた後、
     git clone git://github.com/geany/geany-plugins.git
で、ディレクトリを移って
     cd geany-plugins/
依存関係のあるファイルが足りないみたいなメッセージ・・・・
もしかして、apt-getでダイレクトに行けたりして・・・
     sudo apt-get install geany-plugins
あれ、うまく行っちゃったかな?以前はダメだったと思うんだけど、まあ、いいか。


 GeanyでのGDBデバッグの方法は こちらの方の解説を参考にされるといいと思います。

 あとは、wiringPi を ここの説明を元にgitから入れようと思ったんだけど、うまく行かず、ファイルをダウンロード・解凍する方法でインストールしました。
gitでインストール(自分は失敗)
     git clone git://git.drogon.net/wiringPi

    cd wiringPi
    ./build

なので、手動ダウンロード
     cd /tmp
    wget http://project-downloads.drogon.net/files/wiringPi.tgz

    tar xfz wiringPi.tgz
    cd wiringPi/wiringPi
    make
    sudo make install
    cd ../gpio
    make
    sudo make install


 次にI2Cを使えるようにするための設定です。/etc/modules をエディタで編集して
     i2c-dev
の一行を追加して、/etc/modprobe.d/rasp-blacklist.conf 内の
     blacklist i2c-bcm2708
をコメントアウトまたは削除して、sudo reboot します。そして、
     sudo apt-get install i2c-tools
でI2C用パッケージをインストールします。

 続いて OpenCVです。こちらを参考にさせてもらいました。
     sudo apt-get update
     sudo apt-get -y install build-essential cmake cmake-qt-gui pkg-config libpng12-0 libpng12-dev libpng++-dev libpng3 libpnglite-dev zlib1g-dbg zlib1g zlib1g-dev pngtools libtiff4-dev libtiff4 libtiffxx0c2 libtiff-tools
     sudo apt-get -y install libjpeg8 libjpeg8-dev libjpeg8-dbg libjpeg-progs ffmpeg libavcodec-dev libavcodec53 libavformat53 libavformat-dev libgstreamer0.10-0-dbg libgstreamer0.10-0 libgstreamer0.10-dev libxine1-ffmpeg libxine-dev libxine1-bin libunicap2 libunicap2-dev libdc1394-22-dev libdc1394-22 libdc1394-utils swig libv4l-0 libv4l-dev python-numpy libpython2.6 python-dev python2.6-dev libgtk2.0-dev pkg-config
     wget http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.4.2/OpenCV-2.4.2.tar.bz2
     tar -xvjpf OpenCV-2.4.2.tar.bz2
     cd OpenCV-2.4.2/
     mkdir build
     cd build
     export DISPLAY=xxx.xxx.xxx.xxx:0.0
     cmake-gui
CMAKEでsource codeとbuild先のパスを指定してConfigureボタンを押し、インストールするものを選んでチェックボックスを入れて、Generateボタンを押します。


その後
     make
    sudo make install
しますが、makeで半日かかってしまいました。ついでにカメラ動作確認等用に guvcview というのも入れておきます。
     sudo apt-get install guvcview

...と、ここまできて、デスクトップに以前のバージョンではなかった Pi Storeというアイコンが存在することに気づきました。


 まだ、ラインナップがゼロに等しいですが、将来的にはGoogle PlayやApple Storeみたいに様々なアプリケーションがワンクリックで簡単にインストールできるようになるんでしょうか。楽しみですね。