<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/ME2.2.3" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>ITOLAB. Official Website</title>
	<link>http://www.itolab.com</link>
	<description>for better programming</description>
	<pubDate>Wed, 10 Feb 2010 13:13:50 +0900</pubDate>
	<generator>http://wordpress.org/?v=ME2.2.3</generator>
	<language>ja</language>
			<item>
		<title>RM-boardの開発環境整備4</title>
		<link>http://www.itolab.com/archives/258</link>
		<comments>http://www.itolab.com/archives/258#comments</comments>
		<pubDate>Wed, 10 Feb 2010 22:13:50 +0900</pubDate>
		<dc:creator>itoh</dc:creator>
		
		<category><![CDATA[RM-board]]></category>

		<guid isPermaLink="false">http://www.itolab.com/archives/258</guid>
		<description><![CDATA[しばらく浅草ギ研のS-Eyeの接続にハマっていました。
ボーレート設定の読み違えという初歩的なミスで、数日間を費やしてしまいました。サポートの方、ごめんなさい。
S-Eyeが接続できることがわかったのと、RM-eyeで二値化画像が得られることがわかったのとで、今度は開発環境整備の方を進めることにしました。
先日のlitte smalltalkはくせ者なのですが、せっかくSmalltalkで書けるのだからと採用を予定しています。
今日はPC上のsqueakとのネットワーク接続を試みました。little smalltalkにTCPの通信機能を実装している暇はないので、単純にstdinとstdoutを置き換える形で実装してみました。これで、squeak上からTCPで接続して、RM-board上のlittle smalltalkを操作できるようになりました。
サーボもつないで動かしてみたのですが、ホームポジションの設定がまずかったらしく、レレレのおじさんのような格好になってしまいます。下半身強化のため足部を外していたのでよかったですが、つながってたらかなり悲惨なことになっていそうです。
これからサーボ制御まわりに取りかかります。
]]></description>
		<wfw:commentRss>http://www.itolab.com/archives/258/feed</wfw:commentRss>
		</item>
		<item>
		<title>ScratchによるKHR-1HV(RCB-3)の制御</title>
		<link>http://www.itolab.com/archives/244</link>
		<comments>http://www.itolab.com/archives/244#comments</comments>
		<pubDate>Wed, 20 Jan 2010 20:45:49 +0900</pubDate>
		<dc:creator>e-itoh</dc:creator>
		
		<category><![CDATA[Scratch]]></category>

		<guid isPermaLink="false">http://www.itolab.com/archives/244</guid>
		<description><![CDATA[無事に学園祭が終わりました。今年の目玉の一つはKHR-1HVによるダンスです。おかげさまで、当日かなりの注目を浴びることができました。徹夜でモーションを完成させたロボットチームはお疲れ様でした。
２体のロボットを同時にスタートさせたいというところから、HTHやRCBCommander3では対応していないためにプログラムで制御しようということになり、せっかくだからScratchで制御しようと進んできました。
何とか使えそうなところまできたので公開いたします。
チェンジファイル：DefartNetworkConnection.cs
Scratchソース：Scratch Source Code
]]></description>
		<wfw:commentRss>http://www.itolab.com/archives/244/feed</wfw:commentRss>
		</item>
		<item>
		<title>RM-boardの開発環境整備3</title>
		<link>http://www.itolab.com/archives/257</link>
		<comments>http://www.itolab.com/archives/257#comments</comments>
		<pubDate>Wed, 20 Jan 2010 20:39:50 +0900</pubDate>
		<dc:creator>e-itoh</dc:creator>
		
		<category><![CDATA[RM-board]]></category>

		<guid isPermaLink="false">http://www.itolab.com/archives/257</guid>
		<description><![CDATA[前回は開発環境としてluaの組み込みに成功しましたが、やはりITOLABでの基本言語はSmalltalkだろうということで、RM-boardにSmalltalkを組み込むことに成功しました。
といってもSmalltalk/80の現在の主流であるSqueakやCincomではなく、Little Smalltalkを組み込みました。
Little Smalltalkはsumimさんのブログに詳しいですが、ティモシー・バッドの作成した学習用の実装です。
オリジナルのソース：small.v3.tar
これをubuntu上でARM用にクロスコンパイルし、RM-boardに移してsystemImageを構築しました。一部に手直しが必要だっただけで、ほとんどすんなりとコンパイルすることができました。
それからLua用に用意したRM-boardのサーボを制御するルーチンをプリミティブとして実装し、LittleSmalltalkからサーボの制御ができるようになりました。
LittleSmalltalkでどの程度本格的なプログラムが組めるのかまったく未知数ですが、面白そうなのでしばらくはこれで開発を進めてみようと思います。
]]></description>
		<wfw:commentRss>http://www.itolab.com/archives/257/feed</wfw:commentRss>
		</item>
		<item>
		<title>RM-boardの開発環境整備2</title>
		<link>http://www.itolab.com/archives/256</link>
		<comments>http://www.itolab.com/archives/256#comments</comments>
		<pubDate>Thu, 14 Jan 2010 20:51:06 +0900</pubDate>
		<dc:creator>e-itoh</dc:creator>
		
		<category><![CDATA[RM-board]]></category>

		<guid isPermaLink="false">http://www.itolab.com/archives/256</guid>
		<description><![CDATA[iXsリサーチから提供されているRM-boardの開発環境は、VMWare上のDebianを使ったC言語のクロスコンパイル環境です。
これならRM-boardのパフォーマンスを最大限に生かすプログラムを作れますが、まだ何から手をつけてよいかわからない段階では、いちいちコンパイルして転送して実行するのは面倒くさいです。
何か良い言語がないかと思ったのですが、ゼミでやっているLuaがちょうど良いのではないかと考えました。たしか、4足でJollyPochieチームもLuaを使っていたはずですし。
とりあえず最新の5.1.4をダウンロードすると216Kbyte程度しかありません。シンプルでよいですね。Macではあっけなくコンパイル＆実行できました。
次にVirtualBox上のUbuntuに転送し、先に構築したクロス環境でビルドしてみました。そのままではエラーやら出たので、src/Makefileに以下のような行を適当なところに挿入。
CC = arm-linux-gcc
LD = arm-linux-ld
さらにgeneric:の行をコピーして、以下のように変更。
rmboard:
$(MAKE) all MYCFLAGS="-I/usr/arm-linux/include -DLUA_USE_MKSTEMP"
こうしてビルドしてみると見事にluaとluacが出来上がりました。
恐る恐る実機に転送して実行してみると、ちゃんとLuaが起動して実行することができました。
サーボを制御するCモジュールとリンクさせればLuaからコントロールさせることもできそうです。
実験システムとしてはとりあえず満足なのですが、せっかくなので他の手も使えないかと模索中です。これは後ほど。
]]></description>
		<wfw:commentRss>http://www.itolab.com/archives/256/feed</wfw:commentRss>
		</item>
		<item>
		<title>RM-boardの開発環境整備</title>
		<link>http://www.itolab.com/archives/254</link>
		<comments>http://www.itolab.com/archives/254#comments</comments>
		<pubDate>Wed, 13 Jan 2010 10:17:09 +0900</pubDate>
		<dc:creator>itoh</dc:creator>
		
		<category><![CDATA[RM-board]]></category>

		<guid isPermaLink="false">http://www.itolab.com/archives/254</guid>
		<description><![CDATA[ようやく本格的にRM-boardに取り組むことにしました。
以前にやったことをおさらいしながら、最初はRM-boardでサーボを動かすことを目標に進めていきます。
まず必要なのは開発環境です。メインで使っているのがSnowLeopard/MacBookです。iXsリサーチから提供されている開発環境はVMware Player上のDebianです。Debian上の環境をそのままSnowLeopardに持ってくるのは面倒くさそうなので、同様に仮想化ソフトを使おうと思います。
RM-boardの開発環境
普段からVirtualBoxを使っているので、できればその上で開発したいと思います。VirtualBoxではVMware Playerのイメージを直接読み込むことができるので、仮想メディアマネージャでHDDのイメージを追加し、新しい仮想マシンを定義して起動させてみました。
しかし、何度起動させても途中でKernel Panicになってしまいます。/dev/consoleが開けないのが原因のようですが、よくわからないので直接的な起動はあきらめました。
VirtualBoxにはubuntuをインストールしていたので、これに先ほどのイメージをマウントし、ソフトウェアのビルドに必要なファイル一式をコピーして使うことにしました。RM-boardのベースになっているarmadilloに関係するファイルや、サンプルプログラムは/home/user配下にあるのでそのままコピーします。
これだけではarmのコンパイラやライブラリなどが不足するため、findなどでファイルを探しながら、ビルドに必要なソフトを見つけ出しました。必要なものは、/usr/lib/gcc/arm-linux/と/usr/arm-linux/のフォルダ一式と、/usr/bin/以下のarm-で始まるファイルおよび、genext2fsのようです。
これらをubuntuの同じディレクトリにコピーして、サンプルプログラムをビルドすると、test_appというファイルが出来上がりました。
（開発環境上で）
$ cd prog/sample
$ make
arm-linux-gcc -c  -o main.o main.c
arm-linux-gcc -c  -o sbus.o sbus.c
arm-linux-gcc -c  -o rmeye.o rmeye.c
arm-linux-gcc  -o test_app main.o sbus.o rmeye.o
$ 
サーボをつないでいない状態で、scpを使ってコピーし実行させてみると、とりあえず画面に何かしらのメッセージが出るので動いているようです。
（開発環境上で）
$ scp test_app guest@192.168.254.xx:~
（RM-boardにguestでログインした後、suでrootになった後）
$ /home/guest/test_app
SBUS INIT :OK
TEST LOOP [0]
AN0 = 403
AN1 = 489
AN2 = 490
AN3 = 497
AN4 = 464
AN5 = 473
AN6 = 481
AN7 = 469
(Ctrl-Cで停止)
サーボをS23に接続した状態で起動すると、サーボが動き出すことも確認できました。
]]></description>
		<wfw:commentRss>http://www.itolab.com/archives/254/feed</wfw:commentRss>
		</item>
		<item>
		<title>プロジェクト課題(4)</title>
		<link>http://www.itolab.com/archives/253</link>
		<comments>http://www.itolab.com/archives/253#comments</comments>
		<pubDate>Wed, 16 Dec 2009 09:43:03 +0900</pubDate>
		<dc:creator>e-itoh</dc:creator>
		
		<category><![CDATA[３年生研修]]></category>

		<guid isPermaLink="false">http://www.itolab.com/archives/253</guid>
		<description><![CDATA[後期に開発するソフトウェアは「４択問題集」です。
ソフトウェアの概要

問題とその選択肢（４つ）が表示され、利用者は選択肢の番号を入力していく。
全ての出題が終わると、点数（正解数÷出題数）や正答・誤答の詳細が表示される。
さまざまな学習に役立つように工夫する。

課題４

一組の４択問題（問題文、選択肢）を表す複合的データ（オブジェクト）を作成しなさい。
クラス定義が必要な言語ではクラスを定義した上でオブジェクトを作成しなさい。
課題３のプログラムのデータの扱いを、上記のオブジェクトを利用する形に書き換えなさい。

]]></description>
		<wfw:commentRss>http://www.itolab.com/archives/253/feed</wfw:commentRss>
		</item>
		<item>
		<title>プロジェクト課題(3)</title>
		<link>http://www.itolab.com/archives/252</link>
		<comments>http://www.itolab.com/archives/252#comments</comments>
		<pubDate>Sat, 12 Dec 2009 23:00:20 +0900</pubDate>
		<dc:creator>itoh</dc:creator>
		
		<category><![CDATA[３年生研修]]></category>

		<guid isPermaLink="false">http://www.itolab.com/archives/252</guid>
		<description><![CDATA[後期に開発するソフトウェアは「４択問題集」です。
ソフトウェアの概要

問題とその選択肢（４つ）が表示され、利用者は選択肢の番号を入力していく。
全ての出題が終わると、点数（正解数÷出題数）や正答・誤答の詳細が表示される。
さまざまな学習に役立つように工夫する。

課題３

問題文と選択肢（４つ）を、メモ帳などを使ってファイルに格納しなさい。
このとき、１行目が問題文、２〜５行目が選択肢となるようにしなさい。
ファイルから問題文と選択肢を読み込んで、４択問題を出題するように課題２のプログラムを改造しなさい。

]]></description>
		<wfw:commentRss>http://www.itolab.com/archives/252/feed</wfw:commentRss>
		</item>
		<item>
		<title>プロジェクト課題(2)</title>
		<link>http://www.itolab.com/archives/251</link>
		<comments>http://www.itolab.com/archives/251#comments</comments>
		<pubDate>Sat, 12 Dec 2009 22:58:02 +0900</pubDate>
		<dc:creator>itoh</dc:creator>
		
		<category><![CDATA[３年生研修]]></category>

		<guid isPermaLink="false">http://www.itolab.com/archives/251</guid>
		<description><![CDATA[後期に開発するソフトウェアは「４択問題集」です。
ソフトウェアの概要

問題とその選択肢（４つ）が表示され、利用者は選択肢の番号を入力していく。
全ての出題が終わると、点数（正解数÷出題数）や正答・誤答の詳細が表示される。
さまざまな学習に役立つように工夫する。

課題２

選択肢を適当にシャッフルして表示するように改良しなさい。

]]></description>
		<wfw:commentRss>http://www.itolab.com/archives/251/feed</wfw:commentRss>
		</item>
		<item>
		<title>プロジェクト課題(1)</title>
		<link>http://www.itolab.com/archives/250</link>
		<comments>http://www.itolab.com/archives/250#comments</comments>
		<pubDate>Sat, 12 Dec 2009 22:55:00 +0900</pubDate>
		<dc:creator>itoh</dc:creator>
		
		<category><![CDATA[３年生研修]]></category>

		<guid isPermaLink="false">http://www.itolab.com/archives/250</guid>
		<description><![CDATA[後期に開発するソフトウェアは「４択問題集」です。
ソフトウェアの概要

問題とその選択肢（４つ）が表示され、利用者は選択肢の番号を入力していく。
全ての出題が終わると、点数（正解数÷出題数）や正答・誤答の詳細が表示される。
さまざまな学習に役立つように工夫する。

課題１

適当な問題文と選択肢４つを考えなさい。 
問題と選択肢を表示し、（１〜４の）入力を即し、それが正解ならば「正解」、不正解ならば「不正解」と表示するプログラムを作りなさい。

実行例（表示の仕方は各自で工夫すること）
文字列中で同じ文字が繰り返される場合、繰り返し部分をその反復回数と文字の組に置き換えて文字列を短くする方法はどれか。
EBCDIC符号
巡回符号
ハフマン符号
ランレングス符号化
解答を入力してください＞＞＞ 1 ⏎ 
※不正解です。正解は4です。
（情報処理技術者試験より）
]]></description>
		<wfw:commentRss>http://www.itolab.com/archives/250/feed</wfw:commentRss>
		</item>
		<item>
		<title>伊藤ゼミのプログラミング課題(3)</title>
		<link>http://www.itolab.com/archives/249</link>
		<comments>http://www.itolab.com/archives/249#comments</comments>
		<pubDate>Sat, 12 Dec 2009 22:52:38 +0900</pubDate>
		<dc:creator>itoh</dc:creator>
		
		<category><![CDATA[３年生研修]]></category>

		<guid isPermaLink="false">http://www.itolab.com/archives/249</guid>
		<description><![CDATA[ゼミの３年生に対する課題をウェブにも残しておきます。
自分の選んだプログラミング言語について、課題１～２を解くプログラムを作りなさい。
次回のゼミで、作成したプログラムについて説明しなさい。
※入力の方法や画面への表示方法は、前回課題の解答例を流用しなさい。
課題１
３個の数値を入力し、３番目の数値の値が、１番目と２番目の数値の和に等しいとき「OK」を、そうでないとき「NG」を表示するプログラムを作りなさい。
課題２
正解した回数が３回に達するまで、課題１の動作を繰り返して実行するプログラムを作りなさい。
]]></description>
		<wfw:commentRss>http://www.itolab.com/archives/249/feed</wfw:commentRss>
		</item>
	</channel>
</rss>
