このマイコンボード、日本では、RSコンポーネンツのRSオンラインで販売しています。
http://jp.rs-online.com/web/generalDisplay.html?id=raspberrypi
ただ、注文してから発送までの日数がかなりかかりました。僕のケースでは3ヶ月くらいかかりました。
特に急ぎではなかったので気長に待てましたが、何か目的があってすぐに欲しい場合、
この期間たたずっと待つのは結構辛いかも、ですね^^;
Raspberry Piは、RS以外にもFarnellという業者でも取り扱っていて、しかもこの業者だとすぐに発送されるという
何だか変な状況なのですが、残念ながらこちらの業者は日本への配送を行なっていないため、購入には手間が掛かりそうなようです。
日本で購入する場合でも、ケース付きであればすぐに発送してくれる業者もあるようで、そういうところで買うのが良いのかもしれませんね。
ご参考 : mobilehackerz 2012/10/25 ■ いつまでも届かないRaspberry Piは一手間かけると10日で新型が手に入る
http://blog.mobilehackerz.jp/2012/10/raspberry-pi10.html
さて、RSから届いたので早速少しいじってみましたので、メモっぽい内容ですが、本記事では、以下のような内容を書き出しています。
・イメージを書き込んでテレビに繋いで操作
・ピンヘッダに出ているUARTからシェル操作
・有線LAN、無線LAN、3G通信ドングルでネットワークに接続
・PC側からRaspberry Piのプログラムをビルドして実行
・Linuxカーネルをリビルドして、置き換える
といったことを実施してみます。
この記事では、Raspberry Piから外部のハードを叩くことは触れていません。Raspberry PiでGPIOとかを叩くあたりは、Interface 2012年12月号に詳しく載っているようでしたので良かったらどーぞー!
Interface (インターフェース) 2012年 12月号 [雑誌]
posted with amazlet at 12.11.11
CQ出版 (2012-10-25)
●SDカードにイメージを焼きこむ
ブートのイメージが付属していないRaspberry Piを購入していたので、早速手持ちのSDカードにイメージを焼きこみます。
ここからダウンロード出来ます。
http://www.raspberrypi.org/downloads
僕は、Raspberry Pi標準のディストリビューションの内、Raspbian "wheezy"を使用しています。
イメージファイルをダウンロードして、Macからddコマンドで焼きこみました。Linuxでも似たような手順だと思います。但し、of=の指定を誤ると大切なディスクを
消してしまうことになりますので、慎重に確認してから行いましょう。
$ dd if=イメージファイル名.img of=/dev/diskN bs=1m
●電源を投入してみる
Raspberry PiにはHDMI端子、コンポジットビデオ出力端子が付いています。これをお手持ちのテレビやモニターに接続し、USB microBコネクタに5Vで必要な電流を供給
してやることでアッサリとブートしてくれました。
●シリアル・ポートからログインしてみる
コンソールは、/dev/ttyAMA0に出ています。以下のようにピンヘッダにRxDとTxDが出てますので、USBシリアル変換基板と接続します。
ボーレートは115200[bps]です。
3.3V系ですので、5V系のArduinoのシリアル変換を直結しないように注意です。
僕はPIC ADK Miniboardという自作基板の古いrevのボードにFTDI FT232RLだけ乗せまして、それを使用しました。
秋月のFT232RL基板もオススメです。
http://akizukidenshi.com/catalog/g/gK-01977/
または、スイッチサイエンスのとか。
FTDI USBシリアル変換アダプター(5V/3.3V切り替え機能付き)
posted with amazlet at 12.11.11
スイッチサイエンス
売り上げランキング: 9314
売り上げランキング: 9314
なお回路図上のピンヘッダ部のところはこんなかんじでした。SPIとかI2Cとか使いやすいように配列されているようです。
あとSSHからのログインも最初から有効になってました。
●ネットワークに接続してみる
それでは、有線、WiFi、3Gでネットワークに接続してみます。
-有線LANを使用
初めからDHCPありの設定になってたので、イーサのケーブルを差し込むだけでネットに繋がりました。簡単〜
-無線LANを使用
無線LANのドングルにはいろいろなメーカーのチップが使用されているので、きちんと対応しているものを選別して使用するか、そうでない場合はデバドラを組み込む必要があります。
僕の場合は、昔PCをWiFi APに見立ててニンテンドーDSを繋ぐ為にバッファローのWLI-UC-GN(Ralink RT3070を使用してる模様)を持ってたので突っ込んだらアッサリ認識しました。
BUFFALO Wi-Fiゲーム対応USBコネクター WLI-UC-GNT
posted with amazlet at 12.11.11
バッファロー (2009-12-26)
売り上げランキング: 9287
売り上げランキング: 9287
●3G通信を使用(USBドングルを使用して)
手持ちのイーモバイルの3G通信のドングルを使用しました。これは21Mbpsに対応したHuaweiのD31HWというものです。オークションとかで安く出てます。
ここにイーモバのポケットルーターで使用しているSIMを突っ込みました。
Linuxカーネルの設定は、既にPPPありになっていますので特に、変更する内容はありません。
Huaweiのドングルは、PCに接続するとCD-ROMドライブとして認識し、インストーラーが出てくる便利設計になっているのですが、
Raspberry Piではこのインストーラーは当然不要です。
CD-ROM状態からモデム状態に遷移させる必要があるようなのですが、usb_modeswitchのドキュメントを見るとカーネルが新しいものでは、
特にモデムに遷移する動作が入っていることがあるそうで、今回もRaspberry Piでは特に特殊なコマンド操作無く、いきなりモデムとしてアクセス出来ました。
参考 : usb_modeswitchのkernel related issues
http://www.draisberghof.de/usb_modeswitch/
CD-ROM状態からモデム状態に遷移させる必要があるので、usb-modeswitchをセットアップします。
$ sudo apt-get install usb-modeswitch
ここでudevの再チェックをキックするか、Raspberry Piを再起動すると、/dev/ttyUSB*として認識するはずです。
(★2013/5/11修正追加)
PPP接続の設定は、wvdialを使用しました。まずはモジュールのインストールですがapt-getでサクッと行います。
$ sudo apt-get install wvdial次に設定ファイルを用意します。
以下のサイトを参考にさせていただきました。感謝!
http://coordinators.blog18.fc2.com/blog-entry-18.html
で、以下のような内容のファイルを/etc/wvdial.confとして保存します。
[Dialer Defaults] Modem = /dev/ttyUSB0 Baud = 3600000 Init1 = ATZ Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 Init3 = Area Code = Phone = *99***1# Username = em Password = em Ask Password = 0 Dial Command = ATDT Stupid Mode = 1 Compuserve = 0 Force Address = Idle Seconds = 0 DialMessage1 = DialMessage2 = ISDN = 0 Auto DNS = 1で、
$ sudo wvdial &とすれば3G回線にマイコンボードから繋がってくれました。
●テスト的にコード(ユーザー空間で実行するプロセス)をクロス環境でビルドしてみる
Raspberry Piのディストリビューションにはコンパイラ等も搭載していますが、PCのパフォーマンスを活かしてビルドしたいところです。
ここでは定番のSourcery g++ liteを使用しました。
以下のページから、ARM processor向けのGNU/Linux releaseを選択します。メールアドレスを入れるとすぐにダウンロードリンクが
入ったメールが届きますので、セットアップしてみて下さい。僕はUbuntuの64ビット版に入れてます。
http://www.mentor.com/embedded-software/sourcery-tools/sourcery-codebench/editions/lite-edition/
こんなのを書いて、
// test.c #include <stdio.h> int main(void) { printf("Hello,Raspberry-pi World\n"); }
$ arm-none-gnueabi-gcc test.c -o testなどとすればRaspberry PiのLinux上で動くプロセスを生成してくれました。
その他いろいろビルドしてオープンソースのモジュールを導入してみたいと思います。後ほど。。
●Linuxカーネルをダウンロードし、ビルドして起動する
カーネルはgithubのraspberrypiに上がっているものを使用してみました。
https://github.com/raspberrypi/linux
まずはツールチェインのセットアップですが、上記の「テスト的にコード(ユーザー空間で実行するプロセス)をクロス環境でビルドしてみる」でセットアップしたGNU/Linux用のARM EABIの
ものをそのまま使用します。
0.PC側に必要なツールをセットアップ(初回だけ)
$ apt-get install git gcc-arm-linux-gnueabi make ncurses-dev
1.ソースを入手
$ git clone https://github.com/raspberrypi/linux.git
2.設定ファイルを整備
$ cd linux
$ cp arch/arm/configs/bcmrpi_cutdown_defconfig .config
$
$ make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- oldconfig
もしカーネルの設定変更したい場合、
$ make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- menuconfig
3.ビルド
以下の-j8の8は環境に合わせて下さい。
$ make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- -k -j8
4.モジュールの書き出し/tmp/modulesを一時書き出し先に使用しています。
$ mkdir /tmp/modules
$ make ARCH=arm modules_install INSTALL_MOD_PATH=/tmp/modules
5.SDカードに書き出しRaspbian "wheezy"を書き出したSDカードをLinuxのPCに接続しますと、2つのパーティションが見えます。
一つはブート用パーティションで、もう一つはルートファイル・システムです。
ブート用は2012/10/28にダウンロードした
イメージの場合、58メガバイトでした。なので大抵の場合、小さいパーティションがブート、もう一方がルートファイル・システム
になるのかなと思われます。
ではまず、ブート側パーティションにOSカーネルを入れます。
ここでは、githubから取り出し、ビルド後のLinuxカーネルツリーが./linuxに、そしてSDカードのブート側が/media/sd_bootに
マウントされているものとして記載します。
$ cp ./linux/arch/arm/boot/Image /media/sd_boot/kernel.img
次に、モジュールもコピーします。
こちらはSDカードのルートファイルシステム側に入れます。
ルートファイルシステムが/media/sd_rootにマウントされているとしますと、
$ cp -R /tmp/modules/* /media/sd_root/lib/modulesみたいな感じでいけると思います。
BUFFALO Wi-Fiゲーム対応USBコネクター WLI-UC-GNT
posted with amazlet at 12.11.11
バッファロー (2009-12-26)
売り上げランキング: 9287
売り上げランキング: 9287
FTDI USBシリアル変換アダプター(5V/3.3V切り替え機能付き)
posted with amazlet at 12.11.11
スイッチサイエンス
売り上げランキング: 9314
売り上げランキング: 9314