ラベル その他 の投稿を表示しています。 すべての投稿を表示
ラベル その他 の投稿を表示しています。 すべての投稿を表示

2014年8月3日日曜日

Firefox OS Flame を試してみた。

Firefox OS 開発者向けのリファレンス端末Flameが販売されたので、購入しました。

一度Firefox OSについてブログに書いたのですが、正直な所、見に来ていただける方も少なく、世の中の感心は低く、どの程度のシェアが取れるのかは微妙だと思っています。しかし、AppleやGoogleの独裁的な世の中になってもつまらないですし、頑張って欲しいところです。auも一応オシャレなFirefox OS端末を出すようですし。



見ての通り、大きさについてはNexus 5に比べて少々小さい程度です。重さはほとんど変わらないはずですが、持った時にFlameの方がずっしりとした感触がありました。また比較すると画面が少し暗いです(どちらも明るさは自動にしています)。その分かSIMを常時入れていなかったからかバッテリーの持ちは若干良いように感じました。

レビューについては他のサイトを参考にしていただいた方が良いかもしれません。注意点としては、現在は日本語には対応していおらず、各種表示が英語であったり、日本語入力ができません(しかしブラウザなどで、日本語のサイトを見ることは可能です)。最近としては当たり前ですが、Flash Playerのサイトを見ることもできません。

また、同梱物としてACアダプタが無いので、充電はPC等に接続する必要があります。

それと、初期のままではDTI Serversman LTEのSIMの使用ができませんでした。このサイトなどを参考に設定をすることで使用できるようになりますが、現状はWindowsでは設定できないようなので注意が必要です。

なお、Fedora21では以下を行う必要があります。
  1. ここを参考にして、Andoridの開発環境を入れてadbコマンドを使用できるようにする。
  2. ここを参考にして、51-android.rulesにFlame( idVender:05c6, idProduct:9025)を登録する。
普通に接続するだけでは、adb devicesコマンドにおいて、no parmissionになり、読み込みや書き込みが出来ないです。またFirefox OSがロック解除状態でないと接続できないことに注意してください。

接続ができたら、ここよりダウンロードしたpatch-apn.shを実行すれば良いです。後はDTI Serversman LTEの設定は初めはないため、custom settingsで設定をする必要があります。

下の画面のように、APN:dream.jp, Identifer:user@dream.jp, Password:dti, CHAPを設定すれば良いです。



上の通信のアイコンでH1と表示されていれば、繋がっていると思われます。

まだほとんど使っていないのでまと外れな点もあるとは思いますが、Andorid(Nexus 5)との比較で簡単にFirefox OSとの比較して気づいたことを書きます。
  • iOSっぽくホームボタンがあるが、機械式でないため、画面ONには使用できず、Androidと同様画面ONは不便でもある。
  • Androidのような戻るキーがなく、基本的にタイトルバー上の文字の左横の「<」キーや画面右下の「^」キーを使用することになるが、 範囲が狭く押しにくい。
  • 速度については悪くないが、タッチパネルが不意に反応してしまうことも多い。
  • ブラウザでサイトを見ると、モバイルと認識されず、PC用画面で表示される。
  • Google Map(ブラウザ版)では、ピンチズームの動作が変。
以上、色々と悪い所を書きましたが、まだ熟れておらず仕方ないのかもしれません。ただブラウザで色々なサイトを見ると言う点では十分な機能を持っています。

また気づくことなどがありましたらブログを書きたいと思います。

2014年7月20日日曜日

Chromeの不具合?とWindowsの仕組み

最近、Google ChromeがノートPCのバッテリを過剰消費しているという不具合が話題に上がっていました。

これはFirefoxやInternet Explorerでは起きない不具合となっているのですが、Windowsの仕組みの問題でもあるので、改善されるに越したことはないですが、Chromeを責めるのも少し可哀想な気がします。

OSの仕組み


WindowsなどのOSでは、起動している状態でもかなり多数のアプリケーション(プロセス)が起動しています。それに比べてCPUは多くても8つなど数が少なく、1つの場合もあります。よって、少ないCPUで複数のアプリケーションを切り替えながら実行する必要があります。

OSの中でその切り替えの役割を担っているプログラムをスケジューラと言います。このスケジューラは定期的に実行され、どのアプリケーションがCPUを必要としているかを判断し、実行するアプリケーションをCPUに割り当てます。

このスケジューラを定期的に実行する間隔が、記事に書かれている「システムティックレート」と言われているもので、割り込みコントローラと言うものが、CPUに定期的に実行するように指令しています。

Windowsの場合


Windowsの場合はスケジューラの実行間隔が15msと言うことです。ちなみに最近はあまり見かけないですが、1CPUのパソコンの場合には10msとなっています。

この15msと言う数字は一秒間に約67回スケジューラが動いていると言うことになり、人間から見ると、アプリケーションの切り替えが分からず、同時に複数のアプリケーションが動いているようにみえるわけです。

しかし、15msが速いかというと、コンピュータの世界では非常に遅く(例えば、CPUの1命令が1クロックで行われるとすると、1GHzのCPUでも1命令は0.000001msで完了する)、処理によっては、この間隔で切り替えられても困ることになります。特に動画や音楽関連などリアルタイムな処理をしたい場合は致命的です。

そこで、WindowsではtimeBeginPeriod()というマルチメディア用Win32APIによって「システムティックレート」を切り替えできるようになっています。以下のソースコードのように使い方は非常に簡単です(ビルド時にはwinmm.libをリンクしてください) 。


#include <windows.h>
#include <mmsystem.h>

int WINAPI WinMain(HINSTANCE hInstance,
                HINSTANCE hPrevInstance,
                LPSTR lpCmdLine,
                int nCmdShow)
{
        timeBeginPeriod(1);
        MessageBox(0, "ok end", "sysmtem tick test", MB_OK);
        return 0;
}


ダイアログが表示されますが、ここでOKを押してこのアプリケーションが終了するまで、「システムティックレート」が1msとなります。ちなみにWindows上に動いているアプリケーションの中でtimeBeginPeriod()に指定した値が一番低い値がシステムで使われることになります。

そして、以下のプログラムを上記のプログラムが実行している状態と実行していない状態で動作させてみてください。

#include <windows.h>

int main()
{
        int i;
        for (i = 0; i < 1000; i++) {
                Sleep(1);
        }
        return 0;
}


timeBeginPeriod(1)を実行している状態だと終了が速いはずです。Sleep(1)は少なくとも1msは別のアプリケーション(プロセス)の処理を行ってください、という指令です。しかし「システムティックレート」切り替え間隔が15msの場合には、アプリケーションの切り替えに15msかかってしまうためにSleep(1)は少なくとも15msの時間がかかるためです。

そしてあるCPUでSleep()指令を実行した後に、15ms経って他のアプリケーション切り替えするまでの間はというとCPUはどのアプリケーションも実行していない状態になり、非常に無駄な時間を使うことになります。

そのため頻繁なプロセスの切り替えを行うとパフォーマンスが大幅低下します。Google Chromeは昔から処理が速いことで評判でしたが、 単に消費電力よりパフォーマンスを取った結果と思っていました。

Internet Explorerはバージョン10の時に、消費電力が他のブラウザよりも低いとMicrosoftは宣伝していました。
この頃からChromeはtimeBeginPeriod(1)を使用しているはずですけど、それほどの差はありません。なぜ今ごろまた騒がれているのかが不思議です。もしかすると最近のCPUは省電力機能が発達してきているので、15msの間に積極的に休むようになってきたのかもしれません。

しかし、1つのアプリケーションの timeBeginPeriod(1)の1つの命令でシステム全体に影響を与えるWindowsの仕組みも少々怖い気がします。少なくとも短い間隔のSleep()でタイミングを合わすようなプログラムは書かない方がいいでしょう。

Linuxの場合


Linuxの場合は、tickless(ティックがない)と呼ばれる仕組みが2.6.21から使われています。Windowsのように15msというような一定の期間を設けず、動的に変更するようになっているので、dynaticks(dynamic ticks) (動的なティック)と呼ばれることもあります。

その動的な値を知るためにはPowerTopというソフトで得られます(sudo yum install powertop でインストール)。Fedora 20で確認したところ、色々な普通に使っている状態で一秒間に約800の割り込みが起きています。これを計算すると1.4msぐらいのティックになるので、Linuxは結構消費電力を使っているということになってしまうかもしれません。LinuxではChromeの不具合は起きないと言っても、消費電力を使うのであれば意味がない気がします。ただChrome自体の割り込みは全部合わせても100回/秒程度のようです。

それと、Fedora20ではLinux3.10から導入された完全なticklessであるFull ticklessが使用されていません。確認するには/boot/config-3.13-3-201.fc20.x86_64などのconfigファイルを見ると分かりますが、CONFIG_NO_HZ_FULLが設定されていません。これが使用されると更に消費電力がよくなるかもしれませんが、このティックの辺りはOSの基本の部分であり、少しでも割り込みを減らすのには課題が多そうです。

Mac OS Xも資料が少ないので詳細は判りませんが、ticklessのようです。

2014年5月4日日曜日

日経LinuxをPDF版に

今まで日経Linuxは雑誌を買っていたのですが、先月からPDF版を買うことにしました。

日経Linux「1冊まるごと!PDF版」2014年5月号

やはり雑誌は場所を取るので、その点電子書籍はいいですね。しかし電子書籍はDRMが掛かっていたり、特定のソフトウェアで無いと読めなかったりと不便な物が多くて残念です。日経Linux PDF版でその点は安心です。なお、サイズは98.3MBと少々大きいです。

Fedora 20 ではGNOMEのソフトであるドキュメントビューアー(Evince)で問題なく読むことができました。
設定で「見開きページ」と「奇数ページを左に」にチェックを入れると、2ページにまたがったページも見やすいです。

Nexus 5(Android)では、デフォルトのQuickofficeでも見ることは出来ますが、EbookDroidというアプリをGoogle Playからインストールして、それで読んでいます。

Android4.4(KitKat)からの機能であるステータスバーやシステムUIを隠して全画面表示する表示にも対応しており(Common Settingsより設定可能)、また(以前に要らないと書いたのですが)1920×1080のフルHD表示のためか、一ページを全画面に表示しても十分読めます。しかし、やはり拡大したいこともあり、ダブルタップを「Quick zoom」に割り当てて、片手でも拡大しやすいように設定しました。

これで電車に乗っている時など暇な時間にも読めるようになり、便利になりました。

2014年4月30日水曜日

低価格SIMフリー端末 freetel を使ってみた


低価格で節約してスマホを運用するためのMVNOがテレビや新聞などで紹介されてくるようになってきました。しかし、残念ながらSIMフリーの端末はあまり出ていないように思われます。なかなかSIMフリーの時代が来ないものです。

現在のMVNOはDTI Serversman SIM LTEなどもすべてdocomoの回線を使用しているため、docomoの端末でも低価格のメリットは得ることができると思いますが、SIMフリー端末が出ないと最終的に真に自由な競争による低価格化や発展はない気がします。

2014年4月現在に日本で買えるSIMフリー端末は以下だと思います。低価格を基準にしているので種類が多いのは安い物を選んでいます。また、一応タブレットでなく、電話の出来るスマホと言える端末のみです。もちろん技適マークが無い海外製のスマホは、安くても日本で使ってはダメなので、含みません。

使ったことが無い端末がほとんどなので、参考には全くなりませんが、簡単に知っている利点も書いてみました。

端末価格利点
freetel11,967円 (Amazon)日本でのサポートが非常によく、一番安い。2つのSIMが使えるので海外で使うのに便利。バッテリー交換可能。
ASUS Fonepad 7 TABLET 27,243円 (Amazon)量販店で買える?7inchと画面が大きい。
PolaSma27,999円(税抜)トイザらスで購入できる。子供用で、子供にも安心して使える機能が用意される。 2つのSIMが使える。
Nexus 5 16GB40,937Google謹製。Androidのアップデートが早い。開発者向けな情報が多い。約5inchの画面にFullHD(1920x1080)。
iPone 5c 16GB57,800日本では一番売れているApple製品の中では一番安い。




freetelを使ってみた


上記の中で圧倒的に低価格なfreetelを買ってみました。もちろんNexus 5の方が全てにおいて良いですし、安物であることには変わりないでしょう。しかし、どの程度の事をスマホに求めているかにもよりますが、あまりスマホに依存していない私としては、これで必要十分な機能を持っているのではないかと思いました。




最初から入っているソフトウェアは以下のみでした。Nexus 5よりも少ないです。
  • カメラ
  • カレンダー
  • ギャラリー
  • ダウンロード
  • タスクマネージャー
  • ブラウザ
  • メール
  • メッセージ
  • ユーザー
  • 音楽
  • 音声レコーダー
  • 検索
  • 時計
  • 設定
  • 電卓
  • 電話
  • 動画プレイヤー
  • GMail(マイアプリにも表示)
  • Google設定
  • Google日本語入力(マイアプリにも表示)
  • Playストア
個人的には音声での検索(Google Now)、地図はAndroidを使いやすくするには必須と思ったため、以下を追加してインストールしました。音声でのアラームや通知の設定や、電車の時刻の検索もできますし、ナビももちろん使えます。
  • Google検索
  • Googleマップ
その他、Youtubeも入れています(ブラウザで見るより読み込みが速く思えたため)。優先インストール先がSDカードになっているので、だいたいこの時点で141MB使用、79MBの空きとなっています。SDカードに入らないアプリを使用しない工夫が必要そうです。しかし、大量に入れたいアプリがある人(特にゲームなどをする人)でなければ大丈夫でしょう。

スペック表などで分かりにくい欠点としては以下があります。
  • USB接続用コード、イヤホンが専用となっている。
  • 裏蓋が外しにくい。
  • 内蔵メモリが少ないので、どのアプリを入れるか考える必要がある。
  • 液晶の視野角が上下方向に非常に狭い。
  • バッテリーがあまり持たない(持って1日程度)。
  • 同じDTI ServersMan SIM LTEを使用してもNexus5より遅い?(対応周波数が狭いため?)。Youtubeなどを見ると遅くて止まるのですが、その頻度が高い気がする。なお、DTI ServersMan SIM LTEの設定はプリセットで入っているので、設定はNexus 5より簡単で選ぶだけです。
  • GPSのつかみが非常に遅い(いつまでも終わらない)。ただし、A-GPSを使えばだいたいの位置はすぐに表示される。
  • ピンチイン、ピンチアウトが縦方向で効かない。
  • タッチの反応が少し下側にずれる(ボタンなどを気持ち上側を押す必要がある)。
  • 付属のSDカード(8GB)がすぐ(2週間程度)で壊れる。 
  • ボタンを押す音が少々うるさい。
たくさん悪い所を書いてしまいが、逆に言えばこれ以外は普通によく出来たAndroid端末で、速度もそれほど悪くはありません。性能と価格を考えるとこれで十分と思えてしまいます。今後、もっとこういう端末が増えて、更に安く高性能になって行って欲しいです。


freetelでAndroidのソフトウェア開発


freetelは性能的には、Nexus 5よりかなり劣りますが、逆にそれがAndroidのソフトウェアのテストにも使えて良いかもしれません。

Windowsでは、freetelをUSB接続したときに表示される「USB settings」の画面で、「USBバーチャルドライブ」を接続したときに入っているファイル"ADB.RAR"を解凍して、adb_install.batを実行すると、開発できるようになるようです。

Fedora 20では、下記を実行することでfreetelがUSB接続で認識され、Eclipseからプログラムを実行できるようになりました。最後のadb devicesコマンドにおいてListにxxxxxxxx(この部分は数字です)が表示されていれば大丈夫だと思います。Ubuntuでもsystemctl以外は大体同じで大丈夫だと思います。

$ echo 'SUBSYSTEM=="usb", ATTR{idVendor}=="1782", ATTR{idProduct}=="5d04", MODE="0666"' > 51-android.rules
$ sudo cp 51-android.rules /etc/udev/rules.d/
$ sudo systemctl restart systemd-udevd
$ echo 0x1782 > ~/.android/adb_usb.ini
$ adb kill-server
$ adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached 
xxxxxxxx        device


前にNexus 5 で作成したプログラムをfreetelで実行すると以下のようになります。


2014年3月17日月曜日

RAPIRO(ラピロ)

RAPIRO(ラピロ)というロボットを購入してみました。

ロボットというとディアゴスティーニの週刊ロビが有名かもしれません。ロビに比べてラピロは以下のような特徴があります。
  1. 安い(ラピロは約45,000円、ロビは全部で約150,000円)
  2. 組み立てが簡単(ラピロはモーター数が12軸、ロビは20軸程度らしい)
  3. シンプル(音声認識、会話、ゲーム機能など一切なし)、初期の動きも8種類のみ。
  4. Raspberry Piが搭載できる
  5. 勉強用(プログラミングが可能)
目的はロビと違っており、ロビがロボット自体を楽しむことに主眼が置かれているのに対して、ラピロは5番にあるように、ロボットを勉強することに主眼が置かれています。

さらに、Raspbery Piが搭載できたり、モータ制御にはオープンソースハードウェアであるArduinoが使用されていたり、パーツを3Dプリンタで作成出来たりと汎用性を最大限に考えられています。

悪く言えば、機能はロビに比べて非常に劣っていますが、勉強し、工夫することによっては色々なことができるようになる可能性を持ったものがラピロと言えるかもしれません。

ラピロの購入に際して


ラピロ自体はAmazonやスイッチサイエンスから購入が可能です。

組み立てにはNo.0,No.1のプラスドライバーが必要です。奥の細い所のネジ締めをするところが数カ所あるので、軸の長さが少し長めのがあった方が良いです。また少し力がいる所もあるので、グリップは太めの方がいいです。

また、単3電池5本が必要ですが、大きな電流が必要なようで、eneloopが奨励されています。私の場合通常の単3電池ではモーターが動かなかったため、下記の8個入りのeneloopを買い足しました。


ラピロを組み立ててみる


組み立て方法については、公式サイトに詳しく書かれているので、ざっくりと感想を含めて書いてみます。

中身全部は以下のようになっています。ガンダムなどのプラモデルより簡単そうに見えます。



まずは、モーターにシールを貼っていきます。大きいモータ6つ、小さいモーター6つにモーター側と端子側で同じ名前のシールを貼っていきます。大きい方には青いシールを小さい方にはピンクのシールを貼ります。なかなか綺麗に貼ることができず、いらついてしまいましたが、だいたい15分ぐらいです。


次は電池ボックスを組み立て、モータを接続し、軸の位置の初期化を行います。ここで公式サイトの説明ではモーターを全部繋いているのですが、とりあえず使った電池ではウィーンと音が鳴り続けて軸が動作する様子がなく、結局2つのモータずつをつないで初期化することにしました。上手く初期化されるなら一瞬で軸は動作します。抜き差しを何度もしたためか20分ぐらいここで、かけました。



ここまでが準備で、本体の組み立てに入ります。まずは腰にモーターを3つとりつけ、その後に、足を取り付けて足の中にモーターを2つ入れます。モーターのネジ締めは締め過ぎるはダメとのことですが、グラグラしなければOKと思っています。足の中のモーター取り付けは少し苦戦しました。モーターの軸を初期化した位置から回転させずに理想の傾きで取り付ける必要があるためですが、私が不器用なだけで普通は問題ないと思います。50分ぐらい掛けて、腰下が完成です。


次に、腰の上に胸を取り付け、肩のモータを取り付け、腕を取り付けます。いきなり写真が完成に近づくのは、作るのに夢中になって写真を撮り忘れたためです。腕の辺りは苦戦はしませんでしたが、後から後悔することが2点ありました。一つは肩パーツの取り付け位置。公式の説明では「水平にはめ込めない場合は、後ろ手になる側に傾く角度で」とあるのですが、意識して後ろ手になる側に傾く角度で取り付けたほうが良かったです。もう一点はモーターを取り付け間違えたところです。きちんと確認したつもりだったのですが・・・。結局腕を作りなおして時間ロスすることになりました。ここでは40分ぐらいの時間が掛かっています。



そして、Arduinoの胸部に基板を取り付け、その基板にモーターを接続、背中にバッテリーを接続して、胸部の蓋を閉めます。モーター線が多いので挟まないように胸部に収めるのが少し難しいです。完成が見えてきました。ここで先ほど失敗した腕の作り直しも含めて50分ぐらい掛かっています。


残りの頭部は難しい取り付けもなく、20分ぐらいで完成です。


不器用な私でもだいたい3時間ぐらいで組み立てることができました。失敗などがなければもっと早く組み立てられたと思います。

Arduino IDEを使ってラピロを動かす


パソコンとラピロをつないで、プログラムを書き込んだり、指示をすることでラピロが動きます。プログラムを書き込むにはArduino IDEというソフトウェア開発環境を使います。まずは、Arduino IDEをインストールします。

Fedoraの場合は以下でインストール完了です。ドライバはインストールする必要は無かったです。Ubuntuでもyumではなくapt-getコマンドを使えば同等と思われます。FedoraでArduino IDEを起動したときに、dialoutとlockの権限の追加を聞かれた場合には、Addで追加してログインしなおしてください。

$ sudo yum install arduino

Windowsの場合には、Arduinoのダウンロードページから、最新版のWindows Installerをダウンロードして、インストールします。

ラピロの背中にあるmicroUSB端子からUSBケーブルでパソコンに繋ぎます。スマホとパソコンを接続するときにケーブルがそのまま使用できます。つなぐとラピロの目が光ります。 ここでラピロのバッテリーの電源を入れるとラピロのモーターが初期位置に移動します。

Arduino IDEのメニューの「ツール」→「シリアルポート」→「/dev/ttyUSB0」にチェックを入れてください。次にメニューの「ファイル」→「開く」からダウンロードしたRAPIRO_ver0_0.inoを開きます(このとき、RAPIRO_ver0_0.inoはRAPIRO_ver0_0のフォルダ内にある必要があります)。


ここで、trim[MAXSN]の部分でモータの微調整をします。入力する値はDegreeの角度のようです。ラピロの腕や足などが綺麗に正しい位置になるように数値を変更します。正しい位置になったかどうか確認するには、メニューの「ファイル」→「マイコンボードに書き込む」を実行します(ツールバーの左から2つ目のボタンも同じ意味です)。コンパイルが行われ、ボードにプログラムが書かれ、ラピロのモーターの位置か変わります。

微調整が終わったらメニューの「ツール」→「シリアルモニタ」でモニタ画面を開きます。ここで#M8を入力して、「送信」ボタンを押してください。赤く目がひかり、左手を降る動作をすればOKです。


#M0で初期値に戻ります。#M1〜#M9まで動作がありますので、試してみてください。歩く動作もあります。

ところで、普通に立っているだけでもモーター音がジーと鳴り続けることがあるのが気になります。調整がうまくいっていないからだろうか・・・

Raspberry PIを接続する


ここから頭脳であるRaspberry Piを接続します。まずはRaspberry PiがRAPIROで使えるようにセットアップをします。 OSはRaspberry Piで一番一般的なRaspbianを入れます。OSの入れ方はここなどを参考にしてください。

Raspberry PiとラピロのArduinoとはUARTというシリアルポート(ピンはTXD,RXD)を使用します。このシリアルポートは初期状態ではコンソールでログインできるように設定されているので無効化して、ラピロのみに使えるようにします。

/boot/cmdline.txtが以下のように

dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait

なっているのを

dwc_otg.lpm_enable=0 rpitestmode=1 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait

と変更します。また、/etc/inittabにおいて、以下の

TO:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100

なっている行を

#TO:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100

のように先頭に#をつけて無効化します。

また、ラピロが無線で動作するように、WiFiの設定をしておきます。私が使用したWiFiアダプタはPLANEXの無線LAN USBアダプタ 150Mbps GW-USNANO2Aです。これはドライバのインストールも要らず楽です。また白色で小さいのでラピロの外観にも合うのではないかと思います。RAPIRO公式ではBT-Micro3H2Xが使われていたようでしたが、残念ながら売り切れでした。





Wifiの設定はデスクトップにある「Wifi Config」アイコンから起動するソフトで行えば簡単です。Scanボタンで無線LANアクセスポイントのリストが出るので、選んでパスワードの設定を行うのみです。



IPアドレスは自動で振られますが、大体同じ番号になるのでIPアドレスを控えておくと後で接続しやすいです。例えばIPアドレスが192.168.1.10であるとして今後説明をします。

設定が終わったら、一旦電源を切り、ラピロの頭の中にRaspberry Piをセットします。6本ケーブルの黒い部分を奥にして、一番手前左側の6本のピンに指します。ちなみにここから電源供給もされるようです。



これで、ラピロの電源をいれるとRaspberry Piも起動します。WiFiでネットワークが繋がっていれば、SSHでRaspberry Piに入れるため、遠隔操作ができるようになります。

Fedora等のLinuxからSSHでラピロのRaspberry Piにつなぐには以下のようにします。パスワードが聞かれますので初期のままであればraspberryと入れてください。WindowsではTera Term等のSSHクライアントソフトを使ってください。

$ ssh pi@192.168.1.10

動作をさせるためにRaspberry PiからラピロのArudinoにコマンドを送るにはシリアル通信をしますが、今回はcuコマンドを使ってみます。まずはcuコマンドをインストールします。

$ sudo apt-get install cu

cuコマンドを使ってArduinoに接続します。

$ cu -s 57600 -l /dev/ttyAMA0

Connectedと表示され、接続がされたら後は#M8など先ほどのようにコマンドを打ち込んでください。打ち込んだ文字が表示されないタイミングがありますが、気にしないでください。 cuコマンドを終了したい場合には、Enterキー,~(チルダ)キー、.(コンマ)キーを順に押してください。それとラピロの電源を切る前に、sudo haltのコマンドでRaspberry Piを終了しておいたほうが安全です。 これでラピロが遠隔操作できたと思います。Nexus5のようなAndroidスマホでは、ConnectBotというSSHクライアントがGoogle Playから無料でインストールできますので、Androidからラピロを操作することもできます。

ラピロの基本的な設定は以上です。この後はカメラを付けたり、センサーを付けたり、Raspberry Pi側やArduino側のプログラムを変えて動作を増やしたり、色々と楽しめるのではないかと思います。

2014年3月9日日曜日

子供用PCとしてRaspberry Piをすすめてみる

Raspberry Pi をおすすめする理由


春、新しい学年に、そろそろ子供用にパソコンでも買おうか、と考える人もいるかもしれません。しかし、どんなのを買おうかと悩むかもしれません。選択肢の一つとしてRaspberry Piをおすすめしてみます。

こんな方にRaspberry Piをおすすめします。
  1. 子供に価格の高いものは不要と考えている方
  2. パソコンばかりになって勉強しなくなるのではないかと心配な方
  3. コンピュータに慣れさせるだけでなく、コンピュータを学び、勉強させたい方
  4. ソフトウェアだけでなくハードウェアも勉強させたい方
Rapberry Piは、もしテレビがあり、USBキーボード、USBマウスがあるようであれば、本体のみの購入でよく、全部で1万円もかかりません。非常にリーズナブルです。万が一子供が使わなくても損とは感じないかと思います。

パソコンでンターネットやゲームで遊んでばかりになるのではないかと言う点では、色々と出来てしまいますが、Flash Playerが出来なかったり、遅かったりとWindowsではなく、大したことができないので不便なところが逆に役に立つのではないかと思います。 使ってくれない可能性もあるのですが・・・。

それと危ないWebサイトに行かせないためのフィルタリングなどは無いので、ルーター側で制限する必要があるかもしれません。

コンピュータの知識は今や必須です。Raspberry Piは元々教育用で、子供用のプログラミングから、本格的なプログラミングまでできるようになっています。プログラマーにならなくても事務等の仕事でもマクロなどで知識は活かせます。それに「プログラム」自体が物事の手順などの考え方を教えてくれます。

Raspberry Piが他のパソコンと違う点として、GPIO(General Purpose Input/Output)と言う端子などハードウェアと簡単につなぐ仕組みがあることです。このことで、電子工作の勉強にも繋がります。

Raspberry Piがどんなものか紹介しますので、参考にしてください。

Raspberry Pi の購入は?


Raspberry Piは家電屋さんでは売っていません。Amazon等のサイトで購入できます。Raspberry Piはパソコン本体のみしか無いため、必要であれば、USBキーボード、USBマウス、HDMIケーブル、SDHCカード(4GB以上)、電源を買ってください。以下は例です。

一緒の物を買う必要はないですし、すでに同種のを持っているのであれば、それを使用してください。私はすでに持っている物を使用したので、下記の動作保証はできません。


必要な物説明
Raspberry PiRaspberry Pi 本体です。裸でも問題ないと思いますが、気になるのであれば、ケースもありますので購入してください。
Raspberry Pi その2Raspberry Pi 本体とOSインストール済みのSDカードのセットです。ケース有りも選べます。OSインストール済みは私は買ったことがないので、使用方法はこのブログとは異なるかもしれません。
電子工作キット 電子工作の勉強用です。白い板がブレッドボードといい、ハンダ付けなどが無しで簡単に電子工作が試せます。

必須ではないですが、今回のRaspberry Piの使用例に使用します。私はキットでなく、個別で買っているのでブログでの紹介は別物を使っていますが、同等のことが出来ると思われます。
電源microUSBで5Vで700mA以上の供給ができる物であれば、何でも良いです。大抵のスマホ用のAC充電器であれば、問題ないです。例(→)のAC充電器は1Aです。
SDカード32GB4GB以上であれば、良いですが値段も安いですし、大きめのほうがいいです。
ネットワークケーブル無線も可能ですが、今回は有線ケーブルでネットワークを接続することとします。
SDカードリーダーWindows、Mac OS X、Linux等でSDカードにOSを入れます。SDカードスロットがある機種の場合には、それを使えばよいですし、無い機種の場合には、USBのアダプターがありますので、それを使用します。Amazonでは安いのが無かったのですが、アダプターは例の(→)よりもっと安い物もあります。安物で十分です。
モニタまたはテレビRaspberry Piのセットアップ時に表示を行います。PCのモニタまたはHDMI端子のあるテレビでも良いです。地デジ対応テレビであれば、大抵HDMI端子が付いていると思われます。もう無いかもしれませんが、アナログコンポジットでも良いです。
HDMIの接続ケーブルテレビにつなぐ場合にはHDMIの通常のケーブルで良いです。PCのモニタにつなぐ場合には、HDMIをDVIに変換するケーブルが必要になるかもしれません。私はPCのモニタにDVIで接続したため、例の(→)ケーブルを持っていたので使用しました。
USBマウスUSBマウスなら何でも良いです。トラブルを避けるなら有線の方が良いです。例(→)はなるべく安いを選びましたが、もっと安いのがあるかもしれません。
USBキーボードUSBキーボードなら何でも良いです。トラブルを避けるなら有線の方が良いです。例(→)はなるべく安いを選びましたが、もっと安いのがあるかもしれません。


Rasberry Pi のOSをSDカードに入れるには?


通常のパソコンを購入すると、WindowsなどのOSが入っています。Raspberry Piの場合は最初にOSが入っていないので、親御さんのPCでOSを入れてあげる必要があります(面倒な方はインストール済みSDカードを購入してください)。その手順について説明します。
  1. SDカードをフォーマットするソフトをダウンロードして、解凍したフォルダのsetup.exeを実行してインストールします。
  2. 上記ソフトを起動して、SDカードをフォーマットします。時間はかかりますが、オプションで上書きフォーマット,論理サイズ調整ONにした方が確実です。
  3.  Raspberry Piのサイトから、NOOBS_v1_3_4.zipをダウンロードしてください。色々とダウンロードする種類がありますが、このNOOBSというのは、もし何かあったときにはOSの再インストールが簡単にできます。子供だからと管理者権限を奪うと勉強にならないこともありますが、壊してしまう危険性も大きいので、この方法が便利です。
  4. NOOBS_v1_3_4.zipをSDカード上に解凍してください。
  5. これでSDカードの準備は完了です。

Raspberry Piのセットアップは?


  1. 以下の画像を参考にして、それぞれを接続してください。Raspberry Pi は電源スイッチが無く、電源線をつなぐとすぐに起動します。そのため、電源は最後につないでください。

  2. 電源を入れるとSDカードの容量拡張が始まります(時間がかかります)。その後にRaspberry PiのNOOBSが起動します。 ここの下側のところで言語の設定ができるので、日本語に設定をして、真ん中のメニューではRaspbianを選択してインストールを行ってください。
  3. インストールが始まり、以下のように完了します。OKを押すと再起動します。
  4. 以下のように画面が出たら何もせず、Tabキーで<Finish>を選択してEnterキーを押してください。
  5. これで完了です。(日本語入力ができませんが、それについてはまた後で) 

Raspberry Pi の使い方は?


(1)起動
起動するとメッセージが流れて、「raspberrypi login:」と表示されます。ここで「pi」と入力しEnterキーを押すと、「Password:」と表示されるので「raspberry」と入力し (入力した文字は見えません)、Enterキーを押します。次に「pi @raspberrypi ~ $」と表示されるので、「startx」と入力してEnterを押してください。
Windowsに似た画面が表示されたと思います。Windowsと操作も似ているので、特に順応性の高い子供であれば、使用に問題ないと思います。

(2)終了
画面上のシャットダウンアイコンから、終了できます。または、コマンド入力画面において「sudo halt」と入力してEnterキーを押します。

(3)インターネット
Midoriと言うブラウザが入っていますので、それを使用します。Google chromeのフリー版であるchromiumもインストールすれば使えます。どちらにしても非常に遅いです。

(4)ソフトウェアのインストール
LXTerminalというコマンドライン表示ツールがあります。ここでapt-getと言うコマンドを使うことで様々なソフトウェアをインストールすることができます。

(5)日本語入力のインストール
「sudo apt-get install scim-anthy」と実行して、一度ログアウトして「startx」でウィンドウ画面にすると日本語が入力できるようになります。


日本語入力は Windowsと同様で全角/半角キーで切り替えることができます。

Raspberry Pi でGPIOを試してみる


電子工作の初歩でLチカ(LEDチカチカ)と言うものがあります。それを行います。昔は電子工作というとハンダづけなどが必要でしたが、今はブレッドボードという白い板に線を挿すだけ安全に電子工作が行えます。

GPIOの端子については以下のURLに図があります(今はRevision2です)。

http://www.raspberrypi-spy.co.uk/2012/06/simple-guide-to-the-rpi-gpio-header-and-pins/

この図のGROUND(PINの6番)とGIPO17(PIN11番)の間にLEDが挟まるように配線してみましょう。下の画像です。見にくくてすみません。念の為、抵抗をいくつか入れています。


ブレッドボードは上側a〜f, 下側g〜lまでが内部で縦側につながっています。また下の2段は横側につながっています。

この画像ではRaspberry PiのPIN6番とブレッドボードのf30をつなぎ、それが内部でLEDの足の短い側(LEDには向きがあり、短い側がGROUNDである必要があります)のa30につながります。LEDの足の長い方がa29に刺さっており、そこからd29〜d25間が抵抗で繋がり、e25からg25までがまた抵抗でつながっています。そしてl25からPIN11番につながっています。

LEDをチカチカさせる方法は色々とあるのですが、一番簡単なのがコマンドで行う方法です。下の画像のように入力してください。最初の2行は準備です。3行目でLEGが点灯するはずです。4行目でLEDが消灯します。


少しコマンドを解説します。Linuxではハードもファイルとして表現されます。それが"/sys/class/gpio/〜"です。そこに書き込みをすることで、ハードへの出力ができます。

"sudo"は、管理者権限で実行することを意味しています。ハードへの出力は管理者権限がいるためです。

"echo"は通常は表示のコマンドです。その後に指定した文字を画面に出力するのですが、">"のリダイレクトによって、"/sys/class/gpio/gpio17/value"等にに出力をするようにしています。

他にもC言語などのプログラミング言語でLチカをさせるプログラムを書いたり、ドライバーと作ったりと色々派生できると思います。
私は電子工作は得意でないので、この後どう進むとよいのかわかりませんが、勉強のお役にたてたら幸いです。

2014年3月2日日曜日

Firefox OS を試してみる

Firefox OS の状況


Mobile World Congress 2014というモバイル関連の世界見本市が行われました。先進国にはスマートフォンが行き渡ったこともあり、新興国向けのスマートフォンが注目を浴びています。

その中でもFirefox OSで25ドル(約3000円)のスマートフォンが出ると言うことで、大きなニュースにもなっていました。Nexus 5は性能もよく満足していますが、ここまでの機能が必要かと問われると少なくとも私は不明です。時代が進むうちに安い端末もそれなりの性能となり、電卓が100円で買えるように、スマホもとんでもなく安いものになるのかもしれません。

低価格というとAndroidもKitkat(Android 4.4)では512Mバイトのメモリでも動作するようになり、低価格向けに進んでいます。Firefox OSがAndroidに勝つのは非常に難しいでしょう。しかし、以下の利点があります。
  • Firefox OSは真のオープンソース。Androidは、OSのバージョンの互換性のために「Google Play開発者サービス」 に使用しているが、これはオープンでない。さらにGoogleの様々なサービスを使うには契約が必要で無料でもない。Androidのソースへの介入もGoogle以外は基本的にはできない。
  • FirefoxOSはWebベース。Webの知識は多くの人が持っており、アプリ開発が楽。
現在Androidのシェアは約80%で非常に強いです。しかしオープンなWebと言うのも強いです。ブラウザと言えば、Internet Explorerが90%以上のシェアの時代がありましたが、Firefoxはそれを崩してきた過去の実績があります。Firefox OSでも長く続ければ活路が見つかるかもしれません。

使いたいアプリがあるかが重要でしょうが、日本では定番のLINEもすでに出ていますし、今後に期待したいです。

パソコンに Firefox と Firefox OS Simulatorをインストールする


Firefox OSでもNexusシリーズの様な開発用ハードウェアであるFirefox OS Flameが発表されました。日本でも使えるといいのですが、技適の問題もあり出ない可能性が高いです。Nexus 5にFirefox OSを入れる方法もあるのですが、ネットもできなさそうです

できることは限られますが、簡単にFirefox OSを試すのであれば、パソコンで試すのが一番です。WinodwsでもMac OS XでもLinuxでも試すことが可能です。

まずはFirefoxのサイトよりFirefoxのダウンロードをし、インストールします。指示に従えば簡単だと思います。画面は英語表示ですが、Windowsでのインストール手順はここに書いてあります。

次にFirefox OS Simulatorのアドオンのサイト「Firefoxの追加」を行いダウンロードしてインストールします。



ダウンロードには時間がかかりますが、以上で完了です。

Firefox OS Simulatorを使ってみる


FirefoxのメニューのWeb開発の中に「Firefox OS Simulator」が追加されているので選択します。




するとFirefox OS SimulatorのSimulator Dashboardタブが出るので、ここで左側のSimulatorがStoppedの所をクリックするとFirefox OS Simulatorが起動します。



操作感はiPhoneに似ている気がします。一番下の家のアイコンマークがホームボタンです。左右にフリックしてみたり、ブラウザを起動してみたり、してみてください。なんとなく使い方は分かると思います。英語ですが、残念ながら日本語には対応していませんでした(中国語には設定できます)。
 
それと私のWindows XPの環境では動作が不安定でした。Fedora 20では問題ないのですが。

Firefox OS のアプリを試してみる


「Marketplace」のアイコンからアプリがインストールできます。


Pacman Canvas(Beta)(少し著作権的に危なそうですが)を試してみました。操作がしにくかったりはありますが、問題なく動作します。



なお、Firefox OSのアプリだけなら、 PC版FirefoxやAndroid版Firefoxでも使用可能です。PC版では、Firefox Marketplaceのサイトから。Android版では、メニューの「ツール」→「アプリ」ー「Firefox Marketplaceを閲覧」からインストールして使用することができます。(Android版ではLINEはインストールできないようでした。)





Firefox OS のアプリを作ってみる


非常に簡単にですが、Firefoxのアプリも作ってみます。いつものHello Worldです。C:¥testのフォルダを作成し、その下に、2つのテキストファイルindex.htmlとmanifest.webappを作成してください。また128x128の画像ファイルicon-128.pngを作成してください。

index.htmlは以下のようにHello Worldを表示するのみのHTMLファイルです。Webページを作成したことがある方なら内容は問題なく理解できると思います。

<html lang="ja">
  <head>
     <meta charset="UTF-8" />
     <title>Hello</title>
  </head>
  <body>
    Hello World!
  </body>
</html>


manifest.webappはFirefox OSのアプリでアプリの情報を記述するJSON形式のファイルです。

{
  "name" : "Hello",
  "description" : "Hello アプリケーション",
  "launch_path" : "/index.html",
  "icons": {
    "128" : "/icon-128.png"
  }
}

2つのファイルはUTF-8の文字コードで保存するようにしてください。icon-128.pngは適当に作成してください。私はGIMPでonoonoと描いただけの画像を作成しました。

ファイルが作成されたら、Firefox OS Simulator のSimulator Dashboardタブの上中にある「Add Directory」でC:¥test¥manifest.webappを選択します。


するとシミュレータに起動して、アプリがインストールされ、アプリが実行されます。


もし、なんらかのWebアプリがあるのであれば、Firefoxアプリにするにはmanifest.webappを追加するのみです。一度お試しください。

私は「HTML5でつくるFirefox OS アプリケーション開発入門」を購入しました。アプリの作成方法/デバッグの仕方/アプリのリリースなどの基礎知識や、電話帳/アラーム/アプリ連携/バックグラウンド処理/通知/位置情報のサンプルもあり充実した本になっています。



その他、詳しくはMozillaの開発者用ののWebページを参照してください。

2014年2月23日日曜日

Chromium OSを試してみる

Windowsの代わりとしてMac OSやLinuxだけでなく、Google Chrome OSというOSが存在しています。

このChrome OSは、以下のような特徴があります。
  • ブラウザに機能を絞っている
  • Googleのサービスに頼っている
  • 機能を絞っているので速い
  • 機能を絞っているのでセキュリティに強い
  • アップデートが容易
  • 安い
このOSを乗せたChromebookが米国の法人市場で2013年11月に9.6%のシェアを獲得したそうです

この数字はAndroidタブレットの8.7%を凌ぐものとなっています。

Chrome OSのフリーソフト版であるChromium OSが存在し、Chromebookのような専用ハードで無く、普通のPCでも使えるようになっています。今は日本では発売もされておらず有名ではないですが、今後成長する可能性もあり、古いPCで使ってみるのも良いかと思います。


以下のサイトから、USBメモリから起動するためのイメージや、VirtualBoxの仮想環境で動作させるためのイメージがダウンロードできます。

http://chromeos.hexxeh.net/
http://chromium.arnoldthebat.co.uk/

私はEee PC 901-Xを持っているのですが残念ながら、どちらのUSBメモリ用のイメージもkernel panicになってしまい、動作しませんでした。Eee PC 1015PEMでは動作するようなのですが

USBメモリへのイメージの書き込みはRaspberry Piでの記事で紹介した、 Win32 Disk Imagerで出来ますので、挑戦してみてください。

私はVirtualBox上で動かしてみました(古いPCは使えませんでしたが)。ただしViratulBoxもhttp://chromeos.hexxeh.net/側のイメージしか使えませんでした。こちらのほうが少し古いです。

Viratual Box の新規でダウンロードしたvdiファイルを選択するとChromius OS の環境ができます。たぶんタイプはUbuntuで良いと思われます。





作成したら、起動します。最初に言語を設定します。日本語にも対応しています。ただマウスが正しく動きませんでした。ViratualBoxのメニューの「仮想マシン」-「マウス統合の無効化」をしてください。


次にGoogleのアカウントでログインします。


アカウントの画像を選択します。



画面が起動します。


キー入力の設定において、日本語入力にmozcを使用することができます。mozcはGoogle日本語入力のフリー版で、非常によい日本語変換ができるようになっています。







Ctrl+Alt+Tキーを押すと、croshという、コンソールが環境が起動します。ここでshellと入力すると、通常のLinuxのシェルのようなものが使えるようになります。

Googleのサービスをよく利用している人、ネット利用が主なPCの用途の人にはそれなりに使えるのではないかと思います。一度お試しください。


なお、私のPCでは動きませんでしたが、もしかすると自分でビルドをすれば動かすことも出来るのかもしれません。以下の環境で自分でChromium OSがビルドができるようです。
  • Ubnutu 12.04 LTS(64bit版)
  • メモリ 4Gバイト以上
  • ストレージ 10GB以上の空き容量
日経Linux 2013年12月号にて、Chrimoum OSのビルドの仕方や、その他の設定方法について書かれているので、力のある人は試してみてはいかがでしょうか。