白い弁当箱(TimeCapsule)
macbookの導入にあわせ、TimeCapsule(500GB)を購入。 NAS(AppleTalk)+WiFiルータ(11n)+自動バックアップで、現在導入実験中。
ただ、机周りの機器で8PortHUBが埋まりそう… (サーバ1,サーバ2,WinXP,TeraStation,TimeCapsule,LBP)
全国高専テクノフォーラムの発表原稿を…
以前からの福井県機械工業会様との連携での講習会などについて、 高専テクノフォーラムにて 発表する予定になっている。
といっても、発表は7日(金)に、8分+質疑応答2分の発表で、準備が大変という 程ではないが、そろそろ発表パワポ資料を作らねば…
創造工学演習の発表実施要領を説明
本日は実験の最終週を創造工学に振り替えて、 システム作成を行ってもらう。 これに先立って、創造工学演習の発表会を、どのように実施するのかを説明する。
日時:8月4日AM9:00-12:30まで 場所:4EI教室 発表時間: 各グループ20分、質疑応答5~10分 発表に当たって、各自30秒程度で自分の担当内容を 説明すること。
- 発想の優れたテーマであったか
- 説明の準備がきちんとされていたか
- 新しい技術にチャレンジしていたか
- 説明がわかりやすかったか
- プログラムがどこまで完成していたか
- 未完成の部分と、その問題点を説明していたか
実施方法を説明したあとであるためか、みんな時間内に熱心に課題に取り組んでいました。
高専大会バドミントン終了
バドミントン部は接戦で頑張りましたが結果は以下の通りとなりました。 団体戦男子4位、 団体戦女子3位、 個人戦女子ダブルス伊吹かせ田組3位 個人戦女子シングルス小椋ベスト4
2009年7月12日 (第120回)
- にしにしの部屋 長水先生の高専選抜サッカーチームのドイツ遠征について その3
nishi090712.mp3
GMC-4で初プログラム
先日購入の4ビットマイコンでプログラム。キー入力した2つの値を加えるだけ。
START:TIY 0 ; Y=0 ; L0: KA ; A = getc() ; JUMP L0 ; if ( flag ) goto L0 ; AM ; mem[ Y ] = A ; CAL SHTS ; short_sound() ; L1: KA ; A = getc() ; JUMP L1 ; if ( flag ) goto L1 ; M+ ; A = A + mem[ Y ] ; AO ; putc( A ) ; CAL ENDS ; end_sound() ; JUMP START ; goto START ;
アドレス | 命令 | 命令コード |
---|---|---|
00 | TIY | A |
01 | <0> | 0 |
02 | KA | 0 |
03 | JUMP | F |
04 | <0> | 0 |
05 | <2> | 2 |
06 | AM | 4 |
07 | CAL | E |
08 | _SHTS | 9 |
09 | KA | 0 |
0A | JUMP | F |
0B | <0> | 0 |
0C | <9> | 9 |
0D | M+ | 6 |
0E | AO | 1 |
0F | CAL | E |
10 | _ENDS | 7 |
11 | JUMP | F |
12 | <0> | 0 |
13 | <0> | 0 |
動作確認
実際に動かしてみる。 [reset]-1-[run] <入力> ピッ <入力> <数字LEDに答> ピロピロ の繰り返し。
キー入力でキーリリースやらチャタリングの心配をしなくていいのが、 4ビットコンピュータもどきである証拠。 でも、入力を伴う実験が簡単に書ける。
講習会:LEGO NXTに外部インタフェース
昨年度の外部の方を対象とした自律ロボット制御の 講習会を今年度も継続して実施している。 昨年度とは違った内容と思い、LEGOに外部インタフェースを つける内容で講習会を行っている。
内容は別日記に記載してあるが、 機械系の業種の方で電子回路などは詳しくない方が対象。 このため半田付けやブレッドボードの配線なども 体験して頂いた。 時間配分がどうなることかと心配したけれど、 予定時間どおりに無事終えることができた。
Listの挿入削除と、演習
先週でのリストの追加のネタの前に、いつもであればリストの挿入削除を説明していたのに、 説明が抜けていたので、挿入処理と削除処理を説明する。
昇順リストにデータを挿入
昇順にデータを保存しているリストに対し、与えられた値を挿入。 授業では、consを用いた例と使わない例をしめした。 ここでは、consを使わない例を記録しておく。
void insert( struct List* p , int key ) { struct List *q = p , *r ; while( p != NULL && p->data < key ) { q = p ; p = p->next ; } r = (struct List*)malloc( sizeof( struct List) ) ; if ( r != NULL ) { r->data = x ; r->next = q->next ; q->next = r ; } }
説明の後、挿入場所が先頭だったら、末尾だったらの確認をしないと、 動かない場合があるから、チェックは大切と「次の番兵」の伏線を…
リスト中の削除
リストの途中のデータを削除する処理。 処理を短く書くために、削除すべき場所を探す処理は、別に行うものとする。 pは消したいデータの1つ前の要素を指している。
void remove( struct List* p ) { struct List* del = p->next ; p->next = p->next->next ; free( del ) ; }
この説明の後、学生さんより「消したいデータが末尾だったら?」と質問される。
# 伏線の効果あり…
ということで、番兵のテクニックの概要を紹介しておく。
UML記法
オブジェクト指向のまとめとして、UML記法を解説中。 構造図と振る舞い図の一連のもので主要なものを解説。 特にクラス図は、宣言などを交え説明を行う。 下記のサイトの説明が、概要把握には記号と説明の対比と、具体例もあって、 短時間に理解するには判りやすかった。