Google

2013年5月31日金曜日

お得意様と会食

昨晩は秋葉で会食でした。
お仕事で大変お世話になったお客様と飲み会でお話できるチャンスなので大喜びで参戦。
場所は秋葉でも最近できた「チョムチョム」という飲み屋だらけの複合ビル。
お店の名前は鳥良さんです。

お客様が来る前の店舗。
このビルは個室も多く秋葉で飲む際はどの店もお勧めです。
このお店で面白いのは、注文方法がメニューへペンをタッチして行うという点。

写真を撮り忘れたのでこれは拾い物。
新しいんだか古いんだか良く解りませんw。

それはそれとして、久々に非常に楽しい時間を過ごせました。
しかしお得意様へのご接待、、、、とは行かず更にお世話になってしまう始末。
お礼にアキバ系のお店に連れて行って恥ずかしい気分、、いやいやw楽しんで頂かないといけないと感じました。

Raspberry Pi:TinyBasicを入れてみた

この実機での仕事はPythonを使うのがよくあるケースかと思っていましたが、ふとこんな記事があるのを思い出しました。

 10 Print "TinyBASICのRaspberry Piへの移植が完了"、20 GOTO 10、RUN

私自身も昔はX1のBASICから入り、授業そっちのけでBASICを組み、ベーマガで遊び、表計算を組んでみたりと、BASICとは切っても切れないご縁がありました。
という事で、移植してくれた方に感謝しつつインストールに挑戦。

 公式サイト
 tinyBASIC2


サイトはとてもシンプル。
Raspberianに使用可能なdebパッケージとソースが落とせます。

まずはBASICのパッケージ、tinybasic_2.1-1_armhf.debを普通にダウンロードして下さい。
このファイルは実機に転送しましょう。
Raspberry Piのブラウザから直接ダウンロードするという手もあります。
もしWindowsから保存して転送する場合は、前回の記事を参考にしてください。
転送箇所は適当に/home/pi等の適当な場所で構いません。
ただ、入れた場所は憶えておいて下さい。

続いて依存関係のライブラリ等を準備します。
今回はlibsdl-gfx1.2-4が必要です。
ネットワークに繋がれた状態で実機を起動し、ターミナルから以下を打ち込みます。

  sudo apt-get install libsdl-gfx1.2-4

しかしここ最近の状況で上記コマンドでダウンロードを試みると、404 Not Foundになってしまいました。
検索してみると、どうやらアドレスが変わったみたいですね。
そこでこう打ち込んで下さい。

  sudo apt-get update

新しいインストール先を更新してくれます。
終わったら再度前述のコマンドでライブラリを落としましょう。これはそこそこ時間が掛かります。

終わったらお待ちかねのBASICインストールです。
先程ダウンロードしておいたファイルがある場所をカレントにし、このように打ち込みます。

  sudo dpkg -i tinybasic_2.1-1_armhf.deb

ライブラリがちゃんと入ってればインストールは成功します。
ただ、このままではどこから起動していいか解りません。
続けてX-Window上にショートカットを作成します。

cp /usr/share/applications/tinybasic*.desktop /home/pi/Desktop

これでX-Window上にショートカットが2つ生成されました。
startxでウィンドウシステムに移行し、以下の画像のアイコンをクリックして下さい。

TinyBASIC2という黄色とピンク色のアイコンです。
クリックすると、、、、X-Window上でBASICキター

無事にBASICコンソールが起動できました。
画面上にはもう一つ、BASICのアイコンがあったと思います。
そちらを起動するとこんな感じ。

ピンぼけですが、レトロな雰囲気のコンソールが起動します。
どちらも性能としては一緒のようです。
コマンドを大分忘れている気もしますが、RUN、LIST等で懐かしい思い出が蘇ります。
なお、公式のExamplesには単純なサンプルも存在します。
お子さんと楽しく試してみては如何でしょうか。

2013年5月29日水曜日

Raspberry Pi:実機の転送とログイン

前回WinSCPでQEMUで動くRaspberianに転送した訳ですが、今回は実機の場合の例も細かく備忘録も兼ねて記載してみます。

Raspberry PiはモデルによってLANのRJ-45端子の有無に違いがあります。
私が購入したのは付いているModel Bだったので、線を繋いで電源を入れて、DHCPサーバがあればそのまま使えてしまうというゆとり仕様ですw。
Model Aには存在しないため、別途USBデバイスが必要なのですが現物がないのでModel B前提で進めます。

では先程の通り、Model BのボードにLANケーブルを刺します。

右下のコネクタに接続。
写真ではランプが光ってますが、電源を入れる前にさして下さい。
そしてコンセントを挿して起動。
ログインしたら、「ifconfig」と入れて実機のローカルIPアドレスを確認しましょう。

これはQEMU上での実行例です。
今回はルータ越えとか面倒なことはせず、同一LAN内のWindowsPCからWinSCPを起動します。
前回同様WinSCPを起動して、新規ボタンを押したら以下のように設定します。


 プロトコル:SCP
 ホスト名:先程ifconfigで表示されたローカルIPアドレス
 ポート番号:22
 ユーザID:pi
 パス:raspberry

ログインボタンを押せば、これで前回同様につながります。
後はWinSCPで自由自在に操作して下さい。

また、PCが違う関係上、遠隔からのコンソールログインも必要になるのが常ですが、私はPuTTyごった煮版をよく利用させて頂いています。

 PuTTy ごった煮版
 http://yebisuya.dip.jp/Software/PuTTY/

Win7/Raspberry Pi等の環境でも問題なく動作してくれます。
インストール等は簡単なので端折りますが、起動したらこのように設定しましょう、

 IP:先程ifconfigで表示されたローカルIPアドレス
 ポート:22
 プロトコル:SSH



実機側は、初回電源ONから特に何も設定していなければ、追加設定の必要はありません。
設定したら開くボタンで開始です。

初回に限り、セキュリティの警告ダイアログが表示されます。


ここでは「はい」を選択して下さい。
次回からは表示されません。

すると普通にコンソールのログインを促す画面になります。
ここも最初から存在するアカウントである、piとraspberryを入れましょう。


これで実機に遠隔ログインできました。
VNCの方が近代的ではありますが、やはりこちらの方がしっくり来ます。

2013年5月27日月曜日

Raspberry Pi:QEMUとの通信

QEMU上でRaspberianを動作させてる時、なんらかの理由でファイルを中に転送したいというケースがあるかもしれません。
そんな際にWindowsとQEMUで通信する方法をご紹介。

まず、前回インストールしたQEMUのルートディレクトリを見ると、このように、内部にまたqemuというディレクトリがあるのが解ります。


このqemuディレクトリの中に入るとファイルが多々あるので、その中からrun.batというファイルを探します。
決して上の画像にあるrun.batではありませんのでご注意を。


こんな感じで存在するはず。
これをテキストエディタで開きましょう。


初期状態の中身はこうなっているはず。

qemu-system-arm.exe -M versatilepb -cpu arm1176 -hda 2012-07-15-wheezy-raspbian.img -kernel kernel-qemu -m 192 -append "root=/dev/sda2"

この末尾に以下のようなコードを追加します。

 -redir tcp:10022::22

合わせると以下のようになります。

qemu-system-arm.exe -M versatilepb -cpu arm1176 -hda 2012-07-15-wheezy-raspbian.img -kernel kernel-qemu -m 192 -append "root=/dev/sda2" -redir tcp:10022::22

これは何をしているかというと、ポートフォワーディングという処理です。
ローカルの22番ポートを外部の10022番にリダイレクトするという設定を追加していることになります。
素の状態では閉じられてしまっていてファイル転送等の通信ができないので、その対策と考えて下さい。

修正したらそのままセーブして大丈夫です。
しかしこれはバッチファイルなので修正してセーブしても即変化はでません。
前回紹介した方法でインストール先のルートにあるrun.batから起動しましょう。
今編集したrun.batでもどちらでも起動はします。

起動すると、OS設定状況によってはWindowsがファイアウォールの警告を出してくるはずです。
その場合は許可してあげましょう。

こんな感じで出るはずです
起動しても何も変わってはいませんが、ここからエミュレータ上のRaspberianと通信をしてみたいと思います。
通信なのでQEMUが起動しっぱなしで無くてはならない点は留意して下さい。

そしてできるだけ簡単なGUI操作を重視しているので、今回使うのはWinSCP。

WinSCP
http://winscp.net/eng/docs/lang:jp

SCP、SFTP、FTPをGUI操作できる優れたツールで、仕事で幾度と無くお世話になりました。
もし無ければリンクからインストールして下さい。
インストーラ付きで作業も簡単なのでその部分は割愛します。
コマンダー、エクスプローラのどちらかを選べという質問は、個人的には前者を選んでます。

起動すると初期状態はこんな画面。


そしたら右上の新規ボタンを押しましょう。


左の一覧部分のセッションという部分にカーソルが当たり、上記のようになります。
上から順番に指定した値を入れて下さい。

ファイルプロトコル:SCP
ホスト名:127.0.0.1
ポート番号:10022
ユーザ名:pi
パスワード:raspberry

ホストは自分自身で、10022ポートを使用しています。
これは先程のバッチに適用したポート開放部分と一致しなければなりません。
簡単に言うと、自分のPCの10022ポートを、QEMUの22番と繋いでいるが故にこういう指定となるわけです。
ユーザとパスはRaspberianの初期パスと一緒です。
全て入れたらログインボタンを押して下さい。
その際、初回ログイン時のみ、警告が表示されますのでOKをして下さい。

これが経過画面。少し時間が掛かります。
これがログインした画面。
このような画面になれば成功です。
コマンダータイプの場合、左半分は自分のローカルPC、右が接続先です。
上半分はディレクトリで下半分がカレントディレクトリのファイル一覧になります。

要はエクスプローラ宜しくRaspberianの中身をそのままGUIで見ている訳で、piユーザでアクセスできる場所ならどこでも自由自在です。
rootでログインし直せば当然なんでもやり放題。
ファイルの転送も簡単で、D&Dも受け付けてくれます。

これでWindowsから必要なファイルの出し入れがOKになりました。

2013年5月24日金曜日

Unityサブスクリプション

UnityがMSやAdobeのようにサブスクリプションライセンスを開始したようなので簡単なまとめ。
先日のiOS/Android無料化発表もいいニュースでした。

Create with Unity Pro for just $75/month


サイトにでかく書いてますが、こういう価格形態のようです。

  • Unity Pro $75/month
  • Android Pro +$75/month
  • iOS Pro +$75/month
  • Team license +20/month

ざっと英語を呼んでみましたが、注意点は最低12ヶ月間払い続けること、応募締め切りは標準時の7/31 23:59(日本時間は8/1 8:59)であること、通常の永久ライセンスと一緒の購入はできない事でしょうか。
解釈に間違いがあったらご指摘下さい

細かい点はこちらにも掲載されてました。

サブスクリプションFAQ

私の環境では既にUnity4 Proライセンスを購入してしまっていて、残りはチームライセンス位だったのですが、ここにサブスクリプションで追加とかはできないようです、残念。
あと、実際にやる人はいないかと思うのですが、購入済みの永久ライセンスとこのライセンスの交換はできないという一文がFAQに掲載されてました。

ご参考まで。

Raspberry Pi:QEmuで仮想環境

起動はしたものの、常に実機でテストするのは結構面倒です。
キーボードはついてるのでXWindow等からエディタ編集も当然可能ですが、Windowsの膨大な資産恩恵も捨てがたいもの。
家電組み込みの世界でも、デバイス操作に直結しないものは焼きこみせずにデスクトップで単体テストを繰り返すのが普通です。
VNCで通信するという手もありますが、今回は全く実機が無い場合でもある程度の開発が可能な方法でやってみたいと思います。

という事でVNCで抜きで考えられるのは仮想環境。
となると、Win上でのエミュレーションあたりが妥当です。

そこで、オープンソースで利用できるプロセッサエミュレータといえばやっぱりQEMU
テストサーバ環境設定にも役立つ素晴らしいツールです。

QEMU


最新版は1.5で、ARMやKVMに対応と要件を満たしてくれています。
しかし環境設定などはある程度の手間が面倒。
ひとつひとつやればいいのでしょうが、Windowsで簡単にできる手段が望ましいところ。

検索した結果、SourceForgeで既に良い構成でまとめてくれている人がいました。
今回はそのまま利用させて頂いて実験してみます。

Raspberry Pi emulation for Windows
http://sourceforge.net/projects/rpiqemuwindows/



これはQEMUとRaspberianの組み合わせで動作確認できているものをアーカイブしたものです。

インストールはとても簡単、まず右側に見える緑色のボタンを押すと、qemu.zipというファイルが落ちます。
解凍するとファイルが多々できますが、解凍されたルートはこんな感じ。


簡易さやトラブル回避を考慮し、C:\Qemu等をルートにするのがお勧めです。
あとはこのrun.batを実行するだけ。


このようにRaspberianがそのまま起動します。
バッチなので後ろにコマンドプロンプトが起動しますが、これを消すとQEMUまで終了してしまいますので放っときましょう。


実機での初回ブート時と同じように初期メニューが表示されます。
前回行った「expand_rootfs」は必要ありません。
このままタブキーを2回押して<Finish>に移動させ押下すれば、後は同じ。
初回はpiユーザでログイン済という親切設計。

もちろんstartxコマンドでちゃんとXWindowも起動可能です。


マウスに関してQEMUを知らない方はちょっとだけ注意を。
この手のエミュレーション系によくある仕様ですが、マウスをこのウィンドウ内で押してフォーカスを合わせると、マウスカーソルがウィンドウの外に出なくなってしまいます。

これを戻すにはCtrlとAltを同時に押しましょう。
(ウィンドウタイトルにも書いてますが)
同時とは言っても順番に押せば大丈夫です。
もしくはWindowsショートカットのAlt+Tabによるタスク切り替えでもOKです。

ということで無事に仮想環境が実行できました。
次はこの環境をもう少しいじってみます。

2013年5月22日水曜日

Raspberry pi: 初回起動

前回はカードに焼きこみをしました。
SDカードにOS焼きこみが完了したら全ての準備は完了。
初回起動を試みます。

これがボードの裏側。左にカードスロットが見えます。
SDカードを差し込みます。
最奥までしっかりと差し込みましょう。
続いて準備しておいたケーブル類を全て差し込みます。

むき出しなので座りが悪いのは仕方ないところ。
マイクロUSBの電源はつないだ瞬間にスイッチオンとなりますので、先にディスプレイをオンしておいた方がいいかもしれません。
電源を繋げるとボード右上部分のランプが赤く点灯し、Raspberry pi用のLinux起動が開始します。

ラズベリーマーク以外は至って普通のシーケンス。
このような初回ブート画面になります。
初回時はブルーバックにメニューという形の初回ブート画面が表示されます。
この画面はカーソルをキーボードで動かすコンソールGUIになります。

まず起動したSDカードのパーテーション領域修正を行うために、キーボードの下を押して2番目の項目「expand_rootfs」を選択し、リターンキーを押しましょう。



すると一瞬処理ログが表示され、以下の様な画面になります。

無事にパーテーション調整が完了しました。
OKを押すと先程の画面に戻ります。

後はタブキーを2回押すことで、右下のFinishの部分にカーソルが移動します。


パーテーション領域調整はブート後に有効になるため、ここでリターンキーを押してリブート。

これは確認画面。Yesリターンで再起動開始です。
これで準備が完了し、2回目の起動になります。
初期設定画面は一端不要なので忘れてよく、今度はログインしなければなりません。

usernameを要求されます。
Raspberry pi用にカスタマイズされたこのRaspbianでは、最初から登録済みのユーザが準備されています。

 username : pi
  password : raspberry

これを入れるとログイン完了。


色々入ってるので、例えば「startx」と入れればXWindowが起動します。

なんと、愚息が初めてゲームを作った「Scratch」が最初から入ってたりします。
これで起動まで完了しました。
ちなみに電源を切るときはUSBケーブルを引っこ抜くしかありません。
箱に入れないと怖いのが難点ですかね。

2013年5月20日月曜日

Raspbeerry Pi:SDカードにOS焼きこみ

このボードは単体でOSとストレージがないので、SDカードにその役割をもたせます。
まずPCに準備したSDカードを差し込んでおきましょう。
安価なUSBメディアリーダーがコンビニ等でも売っていたりするので、このへんは割愛。
次はOSの選定です。

このボードでは主にLinux系が使用可能です。
実は最近の日本家電も組み込みLinuxで開発する会社が増えており、複雑な機器ほど採用されるケースが多いようです。
私が組み込みの仕事をしていた際はAV機器のOSにカスタムHardHat Linuxを使っていました。

で、Raspberry Piの公式サイトに行くと専用に準備されたOSイメージの一覧があります。


初心者におすすめなのはDebianカスタムのRaspbianなんだそうです。
なので、上の画像にもあるRaspbian"wheezy"を選択。
Direct Downloadのzipリンクを押してダウンロードして解凍します。


解凍して出てくる中身は上のような馬鹿でかいimgという拡張子。
これはOSがインストールされた状態のまま固められたバイナリです。
次にこれをSDカードに入れるのですが、ファイルコピーでは動作してくれません。
起動デバイスとして書き込んでくれる専用ツールを使って行います。
ddというLinux用コマンドがありますが、WindowsなのでGUIで簡単にできるツールを選択。

Win32 Disk Imager


今回はWin環境なのでダウンロードの項目からWindow版を選択します。



上のような広告入りの画面になって、自動ダウンロードが始まります。
始まらない場合はリンクがあるので手動ダウンロードも可能です。
ダウンロードしたら全て解凍しましょう。中身一覧はこんなかんじです。


この中からWin32DiskImager.exeを実行します。


image File部分は焼きこむイメージファイル、Deviceは書き込み先ドライブです。
このデバイスはPCのHDD等は選択肢に列挙しないよう作られているようで安心設計。
Image Fileのボタンを押して、先ほど落としておいたOSイメージを当てはめます。


こんな感じになります。
サイトではSHA1でしたらこのツールはMD5しかないので、私の環境での値もそのまま載せておきます。
ここまできたら後はWriteボタン。



警告ダイアログが出て、Yesを押せば書き込みが始まります。
あとはじっくり待つだけ。


全て終わればこのようにメッセージがでます。
これでOSの準備も整ったので、次はいよいよボードの立ち上げです。