2013年1月27日日曜日

Raspberry Pi とWindows でファイル共有(samba)

[2016/04/03 追記]
 自分は今まで Raspbian Wheezy を使っていた(今も Dexter Industries の Raspbian for Robot をBrickPi, GoPiGo, GrovePiでは使ってる)のですが、最近 Pi 3 を手に入れてオンボードの無線LANを使うためには Raspbian Jessie が必要だったので、Jessieをセットアップして samba の設定をしようとしたところ、若干設定方法が変わっているらしいです。


 今回はRaspberry Pi ネタです。しばらく前に追加のRaspberry Piが届いていましたが、あんまりいじっていなかったので、以前のこの辺りとかこの辺りの復習を兼ねて久しぶりにいじってみました。
 あとから届いた方のRaspberry Piの設定をした時に忘れてたのですが、Windowsとファル共有できるようにするための Samba を設定していませんでした。まず、そこから。
     sudo apt-get install samba
 しかし、404エラー...となってしまったので、
     sudo apt-get update
で最新のパッケージリストを取得してから再度
     sudo apt-get install samba
でインストール。
 設定を適宜、自分はローカルネットワークでの「マイコン」として利用なのでセキュリティとかは無視。
     sudo vi /etc/samba/smb.conf
で、設定ファイルを編集して、一番最後に
     [pi]
      comment = pi's home
      path = home/pi
      public = Yes
      read only = No
      writable = Yes
      guest ok = Yes
      force user = pi
      directory mode = 0777
      create mode = 0666
を追加して、
     sudo service samba restart
でサービスを再起動するか、マシンごと sudo reboot して、Windows マシンからアクセスできることを確認。


 WindowsエクスプローラのアドレスバーにRaspberry PiのIPアドレスを直打ちして
    \\xxx.xxx.xxx.xxx
で、上記のように Raspberry Pi の piユーザのホームディレクトリが見えればOK。フォルダにアクセスして、中のファイルが見れるか、適当にWindows側からテキストファイルやフォルダを作成・削除してアクセス権の確認を行います。
 ついでにRaspberry Pi側のファイルマネージャのアドレスバーに WindowsやNASのアドレスに対して、
    smb://xxx.xxx.xxx.xxx
のように打ち込んでアクセス。ユーザーとパスワードを確認するダイアログが表示されるので、ユーザー、ドメイン(ドメインでない場合はアクセス先のPC名)、パスワードを入力すれば


Raspberry Pi 側からWindowsのファイルへアクセスすることもできそうです。
 実際にWindowsとRaspberry Piで同一のファイルをやり取りしてそれぞれでうんぬんは文字コードとか面倒ですが、自分の場合は、マイコンとしてのRaspberry PiのプログラムコードをWindows側にバックアップしておきたい、あるいはWindows側の使い慣れたテキストエディタで編集したい(これは文字コード注意ですが・・・)というところが目的です。





2013年1月25日金曜日

トラ技 MyARM モジュール

 NeXtPino と eXodusino で LPC1114 をいじり始めたついでに、トラ技の2012年11月号にプリント基板が付属してきた MyARM 基板を組み立てて、遊んでみました。


 パーツセットをマルツで調達したついでに UIEX 拡張基板も手に入れました。


 とりあえず、サンプルプログラムを書き込んで、動作確認をしました。

NeXtPino と eXodusino で ストリナI2Cコンパス(HMC6352)

 前回のNeXtPino と eXodusino との組み合わせで、I2Cを試してみました。まずは、簡単なストリなのI2Cコンパス(HMC6352)を試してみました。


 当初、うっかり、アナログ入力端子4, 5 にSDAとSCLを接続していたんですが、eXodusino のデフォルトのI2C端子はArduino UNO R3等で 13pin, GND, AREF の先に拡張された SDA, SCL の部分に LPC1114 の P0.5/SDAとP0.4/SCL が接続されています。


 以下、ソースですが、eXodusino に Wire.read() が無く、以前の Wire.receive() 関数になっています。LPCXpresso に eXodusino のプロジェクトをインポートして user_apploication.cpp を書き換えます。

//#define _ARDUINO
//#define _RXDUINO
#define _EXODUSINO

#ifdef _RXDUINO
#include <rxduino.h>
#endif
#ifdef _EXODUSINO
#include <libmary.h>
#include <stdio.h>
#endif
#ifdef _ARDUINO
#include <Arduino.h>
#endif

#include <Wire.h>


#define COMPASS_ADDRESS (0b0100001)

// グローバル変数。
const bool DEBUG_ON = true;

void setup()
{
 // I2Cバス初期化。
 Wire.begin();

 // シリアルポート(USB)初期化。
 Serial.begin(9600);
    Serial.println("\r\nStart...");

    // 待機。
    delay(500);
}

void loop()
{
 short buf[2];
 unsigned short data;

 // コンパスへのI2C通信開始。
 Wire.beginTransmission(COMPASS_ADDRESS);
 // Get Data コマンド送信。
 Wire.write('A');
 // キューの送信。
 Wire.endTransmission();

 // データ要求。
 Wire.requestFrom(COMPASS_ADDRESS, 2);
 // データ受信。
 for (int i = 0; i < 2; i++)
 {
  while (Wire.available() == 0);
#ifdef _EXODUSINO
  buf[i] = Wire.receive();
#else
  buf[i] = Wire.read();
#endif

 }

 // データ変換。
 data = (unsigned short)buf[0];
 data = (data << 8) + (unsigned short)buf[1];

 Serial.println(data, DEC);

 delay(200);
}

bootloader を書き込んで、printfデバッグするのは問題ないんですが、LPC-Link で一度書込すると次からLPC-Linkが繋がらなくなります。なので、LPC-Linkのデバッグもできませんでした。
 おそらく、自分のプロジェクトの設定が間違っていると思うんですが、SWDIOとかSWCLKのポートの設定でLPC-Linkが使えない状態になるのではないかと思ってます。この場合は、 Flash Magic を使用して、改めて bootloader なり、他のプログラムを書き込めば復旧します。NeXtPino では LPC1114 の P0.1 がDigital_1(2ピン目)に出ているので、これをGNDに落とした状態でリセットをかけると USB経由で Flash Magic での書き込みができるはずです。自分は LPC1114 自体を引きぬいて、トラ技についていた MyARM 基板に差し替えて書き換えを行いました。

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度くらいに戻してから飲むと、アンヘルも非常に濃厚な香りと甘みでまさに小麦のワインを体感できました。
 なかなか手に入りにくいものですが、南足柄近辺の方なら、今ならまだ よしの で売っています。