2012年1月4日水曜日

投稿にゴミが付く

なんかbloggerの投稿にゴミが付く。
http://www.blogger.com/img/blank.gif
とかいう文字列が勝手に書き込まれて困る。

既知の問題かも。

Blogger Problem: http://www.blogger.com/img/blank.gif Appearing

確かに、リンクを貼ったときに出現する。なにこれ。

AVRをいじる

ニコニコ動画をみていて、

ブレッドボードでArduinoを作ってみた

というのを見つけました。
まさかこんなに簡単にAVRが動かせるとは思わなかったので、
さっそく部品を購入し、動画の通りに試してみました。

材料:
秋月電子の通販ですべてそろった。3000円くらいですかね。

組み立て方法は動画のとおりなので割愛。
ピンの数え間違えさえしなければ問題ないと思われます。
動画ではライターを使わないでROMの書き込みを行なっていたが、
たまたまライターが手に入ったので、そこはライターを使って楽をしました。
周辺回路はそれほど複雑ではないが、それでも結構手間取りました。
乱暴な言い方をすると、AVRは電源さえ繋げば動くように見えます。知らなかった。
まあ電源周りが難しいのですが。

その他参考動画:

【マイコン編 1回】 零からの電子工作 第36回:前編 回路の準備
ライターの接続と、開発環境の入手の参考に。

【マイコン編 2回】 零からの電子工作 第37回:初めての書き込み
Hello worldともいえるLED点滅プログラムの書き込みを。

やったこと:
・LED点滅のプログラムをCで書いて書きこむ
・Arduinoのブートローダーを書きこんで、スケッチを動かしてみる

動画の説明通りなので特にコメントはありませんが、
ちょっとハマった点があります。
winavrというツールチェーンは名前が変更になり、avr toolchainに
なったようです。
avr studioの新しいバージョンではwinavrの方は認識してくれないようなので、
avr toolchainが必須となります。

米粒程のAVRマイコン・・・ 使ってみたい
こちらのサイトで直リンクが紹介されていたので、それを使用。

あと、配線ミスしてシリアル(FTDIのシリアルUSB変換経由)が使えないということもありました。
ピンはちゃんと数えましょう、ということで。

さらに、protothreadsも試してみました。
マルチスレッド風にプログラミングできます。
それほどコードサイズは増加しないように見えるので、
導入の検討の価値はありかと思います。
プログラムサイズは使わなかったときに比べて206 -> 394 bytesといった感じ。
OSを動かすのはちょっと厳しいかも、という感触です(根拠は無い)。

2012年1月3日火曜日

ARToolkitを試す

今更ながら、ARが気になったので、ARToolkitを試してみました。
参考にしたサイトは、
工学ナビ - 「攻殻機動隊」「電脳コイル」の世界を実現! - ARToolKitを使った拡張現実感プログラミング

です。
そのまま真似しました。
カメラの性能がいまいちで、ピントがなかなか合わないのですが、
それでもうまくいきました。

ただ、使ったコンパイラのバージョンが異なるので、それによる違いだけメモしておきます。
windows 7 (64bit)上のVC2008 expressを利用しました。
program files(x86)/Microsoft Visual Studio 9.0/VC
がインストールディレクトリにあたるようです。

ただビルドするだけではDebugになっているので、説明とあわないようです。
構成をreleaseにしてやると、説明通りの実行ファイルができました。

2011年10月28日金曜日

QEMUでarm環境、そして



QEMUでARMをエミュレートしてLinuxを動かしてみました。

ARMのQEMUにDebianをnetinstallする
http://blog.kmckk.com/archives/2233167.html

を参考にインストールを試みましたが、インストーラーが途中で止まったので断念。

ビルド済みのユーザーランドを探しました(あ~あ)。

http://people.debian.org/~aurel32/qemu/armel/

にありました。debian lenny, squeezeがあるみたいです。
armel(EABI?)となっているやつじゃないとまずそうなので注意が要りそうです。

ダウンロードして、
qemu-system-arm -redir tcp:2222::22 -m 128 -M versatilepb -kernel vmlinuz-2.6.26-2-versatile -initrd initrd.img-2.6.26-2-versatile -hda debian_lenny_armel_standard.qcow2 -append "root=/dev/sda1"

であっさり起動。
redirオプションで外からSSHでつなげるようにしておいた。

で、infernoを動かしてみたところ、色が変になった。

2011年10月22日土曜日

フレームバッファでwm

フレームバッファでwmを表示させることができました(表示のみで、タッチパネルからのインプットはまだ)。
インストールガイド通りですが、感動。
Inferno 関係の人はパッケージングもビシっとするからすばらしい。

・環境
armadillo 440 液晶モデル相当。

OS:debianインストール済み。
ネットワーク:有線

・導入

足りないパッケージをapt-getでインストール

x-window-system-core
libxext-dev
gcc
make
mercurial

arm-gccコマンドがいるので、ln -s gcc arm-gccでリンク。

本流のOSを持ってくる。
cd /
hg clone https://inferno-os.googlecode.com/hg/

ひとまずそのままビルド
vi mkconfig
HOSTとTARGETとROOTを変更。
Linux/arm/binにパスを通す。
./makemk.sh
mk -s nuke mkdirs install
mk install

とりあえずarmで動くinfernoが作られる。

次に、フレームバッファ対応のコードを持ってくる。

hg clone https://bitbucket.org/santucco/inferno-fb

この中の、inferno-os/emu/を本流のemuの下に上書きコピー。
Linux-fbのmkfileを編集しろとのことなので、
vi mkfile
TARGETをなんか選べとのことなので、
TARGET=t42
とか適当にしておいた。

Linux-fbの下でmk installでビルドできるとのこと。

・実行
emu-fb
でemu起動。
wm/wmを実行すると。。。



すばらしい。
入力を受け付けないので操作はできないのですが、

wm/wm wm/bounce

とすると



と、アプリが動きます。

ちなみに、タッチパネルの種類をTARGETで選んだ理由は、出力ではなくて、
入力の都合なのではないだろうか。
t42を選ぶと、キーボードが/dev/input/event0、マウスがevent2とか選ばれるようだ。
入力についてはこれから調査予定。
USBマウスをつないでみたけど、使えなかった。

9fansメーリングリストより

9fansに衝撃の投稿が。

infernoがandroidの上で動く。(nexus sとnook)
http://9fans.net/archive/2011/09/308

ソース等
https://bitbucket.org/floren/inferno/wiki/Home

スラッシュドットでも話題に
http://linux.slashdot.jp/story/11/09/25/0718249/%E3%82%A2%E3%83%B3%E3%83%89%E3%83%AD%E3%82%A4%E3%83%89%E6%90%BA%E5%B8%AF%E3%81%A7Inferno%E3%82%92%E8%B5%B7%E5%8B%95

過去の投稿で、inferno phoneの構想をねったが、
AndroidのdalvikをDisで置き換えるという発想は出来なかった。
どうやら電話も可能らしく、かなりの力の入れよう。
動作を紹介した動画もすばらしい。

armadilloでトライしようかと考え中。
だったが、どうもAndroidが落ちるので難航しそう。

なお、メーリングリストではその他に、wmをフレームバッファで動かす試みも
話題になっていた。
これが出来ればxがいらなくなり、
linuxカーネル + Dis という環境でいけるかも。
起動時間の予測は、ハイバネーションなしで、カーネル20秒 + Dis 5秒くらいかな。
まずは、fb + linux on armadilloを試してみる予定。

2011年6月28日火曜日

Cのコードを移植

特に有用な内容は無いです。

以前
Cでモジュールを書く
でCで書いたモジュールをLimboから呼び出す試みをしましたが、
Limboで書くより若干速いというメリットの他に、
既存のCのプログラムが移植しやすいというメリットが有るのではないかと思いました。

そこで、既存のCのコードをコンパイルできるか試してみました。

サンプルは
plan9のcatです。
Cと言っても、ansiではなく、ken ccのように見えるので、
plan9由来のコードが移植しやすいと判断しました。

plan9のコードからcat.cを見つけて、
中身を以前試したexample.cにコピーしたところ、
ビルド自体は通りました。
わりとそのまま行ける感じです。

ただ、ファイルシステムへのアクセス方法がよくわからず、
使えていませんが。

plan9のls.cを参考に、ディレクトリサーチを試みましたが、
dirreadが無いと怒られ頓挫(openはできたっぽい)。
ヘッダにはプロトタイプがあるのにね。