月別アーカイブ: 2015年5月

2日目:ラズベリーパイ到着!早速試食。

商品到着予定の待望の翌日。。。

お昼ごろに、部屋のノックがして、ドアを開けると宅配業者がAmazonの箱を持っていた!

少しの時間も惜しむようにサインを済ませ、箱を開梱!

ラズバイ購入

早速、前日ダウンロードした2つのOSイメージを、予習した知識を元に、下記の手順でSDカードそれぞれに書き込んだ。

前提)作業用PC(ちなみに、SDカードスロットを持つThinkpad X40でWindowsXP SP3?)、SDカード(SDHC+SDカードサイズのアダプタのもの)。
なお、SDカードスロットがないパソコンには、SDカードリーダもしくはUSBメモリ型SDHC変換アダプタが別途必要になります)

1.下記サイトから、SDカードフォーマットツールをダウンロードする。

ダウンロードサイト>https://www.sdcard.org/ja/downloads-2/formatter-2/
ダウンロードファイル:SD Card Formatter <Ver.****> Setup.exe

2.作業用PCに、前手順でダウンロードしたSDカードフォーマットツールをインストールする。(DLしたファイルは、ZIP形式なので、いったん解凍してから、setup実行ファイルを実行する。

3.DHCが利用可能なPC(うちのPCやカードリーダは古くて認識できなかった)に、購入したSDHCカードを挿入して、OS(Windows XP SP3)で認識されたことを確認し、前手順でインストールしたSDカードフォーマットツール起動する。

4.当該ツールアプリの画面にて、下記の操作を行い、SDカードをフォーマットする。

5.次に、ダウンロードしたOSイメージを、イメージライティングツール(ここでは、作業用PCがWindowsXPなので、Windows用フリーソフトの”DD for Win”。ちなみに、LinuxPCなら、デフォルトで実装されている”dd”コマンドで)を使ってSDカードに書き込む。

6.ラズパイ本体に、前手順で生成されたOSブートディスクのSDカードの挿入、ならびにKVMの接続をし、電源を投入!

ラズパイ始動
(まずは、ラズビアンのほうのSDカードを挿入して起動)

 

7.OSが起動し、初期セットアップ画面が表示されることを確認する。

ラズバイ始動2
おおー!VGAディスプレイにラズビアンの表示が!!

 

8.OSの初期セットアップをとりあえず適当に行う。

初期セットアップ画面が、旧来のLinux CLI上での疑似的なGUI操作形式(マウス操作不可。カーソルキー(リスト内移動)とスペースキー(選択)とTABキー(画面内の項目間ジャンプ)を使って)で、慣れていないとやりずらいかも。。。。

まず、トップのメニュー画面で表示される設定項目としては、下記の通り。

  1. 「Expand Filesystem」
  2. 「Change User Password」
  3. 「Enable Boot to Desktop/Scratch」
  4. 「Internationalisation Options」
  5. 「Enable Camera」
  6. 「Add to Rastrack」
  7. 「Overclock」
  8. 「Advanced Options」

ここでは、”適当”というか、後の作業で面倒なことにならないように、最低限の設定をする。(とりあえず、ラズパイがどういったものなのかを早く知るために)

1.「Expand Fielsystem」

 現時点でシステムディスクのサイズは、使用したOSイメージのサイズ分しかない状態である。これを実際のシステムディスクの全容量にまでに使用可能な領域を拡張させる場合にこれを選択する。通常はフルに容量が使えたほうがいいので、この最初の段階で有効にしておく。ちなみに変更すると、この初期設定作業が完了したら、システムの再起動となる。

2.「Change User Password」

 デフォルトの作業用のローカルの一般ユーザ”pi”に対するパスワードを設定する。

3.「Enable Boot to Desktop/Scratch」

 これを選択すると、さらに3つの選択肢が表示され、以下のラズパイ起動後の状態を選択して設定する。
ラズパイを起動させるたびに、
1)「CLIモードでログインして、Linuxコマンドで操作する」(デフォルト設定)か、
2)「ラズパイをWindowsのようなGUI操作で作業するためにX windows Systemを立ち上げるか」、
3)「Raspbian標準実装のScratchを立ち上げ、特定のスクラッチ(プログラムコード)を自動実行させるか」のうちいずれかを選択する。

これからラズパイのOSの詳細設定や、サービスプログラムやツールアプリをインストールして環境構築作業を行うのであれば、2)を選択。一通りOSやインストールしたプログラムの設定も終え、直接ラズパイをローカルコンソールを使って操作することが不要になったら1)を選択のこと。なお、3)についてはやったことがないので不明。

4.「Internationalisation Options」

ここでは、OSのリージョン・タイムゾーンやキーボードの設定をおこなう。これらは、これからの作業で大きくかかわってくるところなので、最初の段階で正しく設定しておくことを推奨。
これを選択すると、次に以下の設定項目が表示される。
1)「Change Locale」
2)「Change Timezone」
3)「Change Keyboard Layout」
※いずれも選択実行すると、次の画面が表示されるまでに少し待つことになることを留意のこと。

1)の項目は、OSが扱う(表示など)人間の言語の種類を設定。デフォルトで”en_GB.UTF-8”(ラズパイ発祥の地のイギリス英語)のみが設定されている状態。日本人であれば日本語なので”ja_JP.UTF-8”を選択してこれをデフォルトとしたいところであるが、この直後の作業での操作を考えると、日本語は追加するだけに留め、当面の作業(日本語での入出力ができるようになるまで)のことを考えて、デフォルトとしてアメリカ英語の”en_US.UTF-8”を一時的に設定しておく。(デフォルトのイギリス英語でいいと思われますが、念のため)なお、ここでの設定操作は、まず上記のロケールをリストから探し出して、スペースキーを押して”[*]”の表示に切り替えたのち、<OK>を選択実行して、選択したロケールのうちどれをデフォルトにするかを選択して設定する、という流れになります。

2)の項目は、OSが扱うシステム時刻の設定。日本でラズパイを使うので、最初に世界地図上の地域名”Asia”を選択のうえ、”Tokyo”を選択して設定。

3)の項目では、現在ラズパイに接続して操作に使っているキーボードの設定。私はキーボードにラズパイ推奨?の「サンワサプライ製 コンパクトキーボード SKB-KG3WN」を購入したので、ここでは”Sanwa Supply SKB-KG3”を選択。それ以外の日本語キーボードなら、”Genius 105-key (Intl) PC”を。

あとは、この選択によって異なるが、、、日本語キーボードなので、言語=”Japanese”+キーボードレイアウト=”Japanese(OADG 109A)”、[AltGr]キー設定=”The default for the keyboard layout”、Composeキー=”No compose key”、[Ctrl]+[Alt]+[BS]キーの入力でX Window systemを終了させるか=”Yes”(これは好みで)

と設定しておく。(これが正しくキーボードにあっていないと、これからの作業に支障をきたすので注意!)

5~7は、ラズパイの用途によって、要/不要なところがあるので、ここでは省略。(必要になれば、その時に設定変更可能)

8.「Advanced Options」

これを選択すると、次に以下の設定項目が表示される。
1)「Overscan」
2)「Hostname」
3)「Memory Split」
4)「SSH」
5)「Device Tree」
6)「SPI」
7)「I2C」
8)「Serial」
9)「Audio」
10)「Update」

いずれも、ラズパイの用途によって要/不要なところがあり、後で変更することもできるので、ここではとりあえず、
2)「Hostname」で、ラズパイのホスト名(ご自由に命名)を、
4)「SSH」で、SSHサーバ機能を有効にするために<Enable>を
設定しておく。

なお、この初期セットアップ画面は、ログイン後にターミナルコンソールにて、”raspi-config”と入力して実行すれば、いつでも表示できる。

9.再起動後、システムにログインして、ラズビアンの操作ができることを確認する。

ラズパイ始動3

(お・おおー!!普通のLinuxマシンとして操作できた!!!)

以上、ここまでは何のトラブルもなくできました。

私はいままで、趣味でも仕事でもLinuxといったらRedHat系ディストリビューションのものを使用してきましたので、Debianだとコマンドがわからない!!なので、当面はPidoraで進めていこうと思います。

ラズパイ始動4
ラズパイでなく、Pidoraの初期画面

・・・と思ったのですが、いろいろ書籍やインターネット記事を見てみると、Raspbianでの操作で書かれているのがほとんどなので、Raspbianに修正。。。(Debian Linuxの勉強をしなきゃ・・・)

1日目:ラズベリーパイを注文

Amazon.comでとりえず、最低限度必要なものを購入。

1)ラズパイ本体(B+)
自走ロボットに実装するのでTypeAを考えたが、初めてということもあるので、ここは安パイにB+をチョイスしました。

2)Micro SDカード(8GB)
安パイな、ラズビアン用と、本来の目的のピドラ用として2つ購入

3)HDMItoRGB変換ケーブル
我が家にはHDMIモニタがないため、変換ケーブルを追加。当たりはずれがあるようなので、レビューを参考にしつつ、安い900円ぐらいのもので

以上を買い物籠に入れて、発注!

もちろん、GW中に始めたいこともあって、翌日配達で!!

翌日を待ちわびながら、すぐに使えるようにOSイメージのダウンロードや予習を行い、就寝。。。

はじめてのラズベリーパイのレシピ

まずは、初めてのラズパイをどういった仕様にするか考えてみることに。

目的は、「検証用の簡単な自律型ロボット」ということから、

①バッテリ内蔵でワイヤレスにする。

②できるだけそれだけで検証作業および環境を完結させたい。

③歩行だと歩行をさせることにかなりの労力を要するため、車輪による自律走行タイプのロボットとする

という要件と掲げた。

そこで、まず第一弾として、PWM速度制御方式の自走ロボットを実現させることにした。

そこで、早速材料の選定をおこなった。

1)ラズパイ本体

自走式なのでできるだけ小型で省電力にしたいという考えはあったが、初めてラズパイを使用するということで、自由度が低いと壁にぶち当たったときに回避策がなく挫折してしまう恐れ(LANポートがないとUSB無線アダプタが使えるようにならないと環境構築作業ができないとか、USBポートが少ないとUSBデバイスが使えず作業に手間がかかる)があるので、迷わずTypeB+とした。(低速の自律走行であれば、TypeAとBの寸法や重量は有意差はないと判断)

■ラズベリーパイTypeB+スペック
寸法:200 x 50 x 150 mm
重量:45g
電源電圧:DC5V
消費電力:600 mA (3.0 W)
電源コネクタ: microUSB または GPIO

自律型で一番の問題になるのが、重量の大きな割合を占めるバッテリ。

稼働時間を大きくとれば、その分容量が必要となり、重量やサイズも大きくなってしまう。

あくまで今回のロボットは、検証目的であるため、それほど連続での稼働時間はながくはない(長くても10分程度あれば十分)ことと、片手で持ち上げられる大きさと重さのものを想定しているため、移動用アクチュエータ(ギヤドモータ)もタミヤ工作キットの程度のもので十分と考える。

ちなみに、搭載機器としては、

ラズパイ本体

microSDカード

タッチパネル機能つきLCDディスプレイ

(ラズパイ初期構築時に)HDMI to VGA変換ケーブル

など。。。。

以上より、

<購入品リスト>

まず最初に購入するものとしては、

1)ラズベリーパイTypeB+×1・・・¥5,000
2)microSDカード8GB(microSDHC)×2個(ラズビアン用とピドラ用)・・・¥500×2
3)HDMI to VGA アダプタ変換ケーブル×1・・・・¥1,000

以上を使えるようになったら、次に、
4)L型microUSBコネクタケーブル(千石電商)×1・・・・¥500
5)ポータブルバッテリELECOM M02L-4710WH ¥1,540
61 x 107 x 14 mm ; 100 g

USB接続無線LANアダプタ
PLANEX 無線LAN子機 (USBアダプター型) 11n/g/b 150Mbps GW-USNANO2A (FFP) ¥1,010
1.3W

6)タッチパネル付きLCDモニタ×1・・・・¥5,500

130 x 114 x 25 mm
23g

ラズベリーパイの美味しいところ

大学時分、メカトロニクス技術を学び、マイコン制御についての若干のスキルと知識はもっておりました。
その頃は、やはりそれを行かせる仕事に就きたかったのですが、現実はうまくいかず、あえなく断念。(そもそも、仕事上で技術を習得するなんて、独学ではかなりの無理が。。。)
いまでは、趣味でやれればいいかなって思っていたのですが、なにせ学生のころに学んだ知識は薄れてきており、しかも環境を整えるのにお金と時間と労力をかなり費やすことになるため、敬遠してきました。
このため、ガンプラに電飾を施すためのLEDと抵抗と電源の簡単な半田付け作業と、週刊××といった付録もののロボットを作って楽しむ程度。。。

しかし、ラズパイが登場したことで、その問題が解決できたのではないかと思い、飛びつくことにしました。

私が思うに、従来のマイコン制御での手間としては、

ます、「・・・・」をする制御システムを作る!と思い立ったら・・・・

工程1)「・・・・」をするための、機械要素と電子回路要素の設計

・・・この段階は、完成形をイメージしながら、それを実現するために必要な材料を選定したり、知識や技術情報を集め、青写真として図にあらわすという一番モチベーションがあがる楽しいひと時!

工程2)工程1をさらに具体化して、構成や仕様がまとまったら図面にして、製作へ

・・・ここで、機械工作では、旋盤やフライス盤、いまでは3Dプリンタといった工作機械がないと難しかったり、電子回路工作の場合は、オシロスコープが必要だということに気づき、これを用意しなきゃと思いつつ、なかなか購入に踏み切れず、結局ここであきらめてしまうケースがほとんど。

工程3)プログラミングおよびマイコンボードへプログラムを書き込むための環境整備
・・・旧来だと、パソコンでプログラミングして、ボードに付属のクロスコンパイラを領して、バイナリを生成させて、ROMライターでROMに書き込み、製作したシステムのマイコンボードに装着となります。
いわずもがなROMイレーザも必要。
しかし現在の主流は、使用するマイコンボードの開発環境によって、USBやシリアルポートで、ROM焼きせず、メモリに直接書き込むことができるプログラマブルになりました。

工程4)制御プログラムの設計とプログラミング
ここで、プログラミング言語は、使用するマイコンボードに依存します。とはいえ、基本的にC言語(後若干のマシン語)がほとんど。
マイコンボードに付属のライブラリを使って、クロスコンパイルし、バイナリーコードを生成させる。
デバッグ環境はどうしても用意しておきたい。さもないと、せっかく作ったシステムが暴走して、破損する恐れがあるから。
とはいえ、デバッグ環境(回路エミュレータなど)が用意されていればいいが、ないこともしばしば。スイッチやLED点灯でチェックするような原始的なものまでしかつくれない。。。

5)バイナリーコード生成とシステムへのプログラム(バイナリー)の書き込み

ここでようやく実行!一番緊張と興奮する瞬間!!一発で決まればいいんだけど、やはりそうはいかない。むしろ、それが稀。たとえ、基本的なプログラムはOKだったとしても、パラメータの調整などの微調整は避けられない。

そうなると、旧来のROMライターを使った書き込み方式は、ここでも手間が。調整のたびに、ROMをイレーズしては、コードを修正して、コンパイルして、バイナリを生成して、ROMライターに書き込んでと、一発で成功すればいいが、ほとんどはそうはいかず、上記手順5~8を繰り返す。

しかも、下手すれば電子回路や機械要素の設計ミスがここで確認され、手順2に戻ることもしばしば。

社会人(かつ独身)であれば、資金を作ることも、時間を作ることも、ある程度で切るので、環境を整えるまでは、何とかできるかもしれないが、
そこで、疲れて1・2作品作って終わりってことも。。。
物を作るには、情熱といったエネルギーが必要!

これを、ラズバイに置き換えると、
工程3)ほとんどいらない。特に物理的なものはなくなる。
工程6)これもなくなる。

純粋に労力を要する、機械工作と電子回路工作に労力を集中できるようになると思えます。

あとは、UNIXプログラミングに精通していれば、さまざまなセンサ入力などの入力(イベント)に応じてプログラムを実行することや、あれをやりつつこれをやりつつといった複雑なシステムも簡単に実現できる!という目論見である。
あとは、機械・電子回路製作、プログラミングといった製作フェーズに労力を集中できるようになった。しかも、お安く手軽に!である。

とはいえ、最終的にシステムをカットオーバーさせるのであれば、マイコンに置き換えたほうが、あらゆる面で効率的だと思われる。(この場合は、Arduinoのほうがいい)
教育用や試作用途であれば、もってこいではないではないでしょうか。

そこで、わたしはこのラズパイを使って、さまざまな種類のセンサーやアクチュエータを使ったメカトロ制御の検証用自律型ロボットを製作することとしました。

 

ラズベリーパイ、食べちゃいました!

プロローグ

巷の一部で流行の”ラズベリーパイ”を、私も食べちゃいました。。。

以前から、ラズベリーパイ、もとい”Raspberry Pi(以下、ラズパイ)”については、その存在は耳にしており、当時は、近年のパソコンの小型化の延長線上にある単なるポケットに入るパソコン(ある意味、”ポケコン”)としてしか、認識しておらず、パソコンがいくら小型になろうがどうでもいいという印象でしかなかった。

一応、どんなユーザがどんなことにラズパイを使ってるんだろうと調べてみても、やはりWEBサーバやらNASサーバやらと、パソコンで実現できるようなことや、ちょっと気にはなったスマホをラズパイで自作するというきちがいなヘビーユーザもいたが、実際に自分もユーザになろうとは思えなかった。むしろ、ラズパイよりも”Arduino”のほうが電子工作の趣味を満足させるものと感じていた。

しかし、調べていくうちに、ラズパイの一般的なOS”Raspbian”にバンドルされている「Scratch」というGUIによるコーディングが可能なプログラミング開発基盤と、I/Oポートへのデジタル信号入出力が、OSコマンドで簡単に実現できてしまうということを知り、だったらいままで手間暇でてをこまねいていたマイコンを使った機械工作が手軽にできるのではないかと思えた。

さらに、Linuxなので、容易にマルチタスク処理を実現できるという点で、改めてラズパイの有用性を再認識した。

こうなったら、もう食べないわけには行かないでしょっ!ってことで、とうとうわたしも手を出すことにしました。(くれぐれも、つまみ食いで終わるようなことにはならないように)