« 2006年4月 | トップページ | 2006年6月 »

2006年5月31日 (水)

組み電池の作り方 (^-^)

マイクロマウスの動力源にはニッケル水素電池を組にした組電池を使っているのですが、以前作った電池が容量の半分も充電できなくなってきたので、新しく組みなおすことにしました。ついでなので、組電池の作り方を紹介します。

(注) 普通、電池に直接半田付けする方法はメーカーが禁止しています。安全のためにもタブつき電池で組み電池を作ることをお勧めします。

(1) まずは必要な道具と材料をそろえます。

Img_1707 Img_1708

道具は、半田ごて、ホットボンド(ホットメルトともいう)、適当な大きさの板、輪ゴム、ワイヤストリッパー、ニッパー、はさみ、ドライヤーを用意します。「適当な大きさの板」は、電池を組んだ大きさと同じくらいの大きさがベストです。

材料は、二次電池(必要本数)、熱収縮チューブ、半田、半田吸い取り線、2色ケーブル、コネクタを用意します。熱収縮チューブには、ホームセンターで売っている「物干し竿カバー」がベストです。ペットボトルのラベルで代用する人もいます。

(2) つづいて電池を組んで形を整えます。

Img_1709_1 Img_1711

先ほど用意した板に輪ゴムで電池を押さえつけます。私も以前は電池を(板無しで)セロハンテープで固定していましたが、セロハンテープでは電池をきれいにそろえて固定しずらいのです。電池を板に輪ゴムで押さえつけたら、ホットボンドで電池の間を埋めていきます。片面だけでもホットボンドで固めてしまえば、後は輪ゴムをはずしてOKです。心配でしたら裏面もホットボンドで固めましょう。

(3) 今度は半田吸い取り線で電池同士をつないでいきます。

Img_1713 Img_1714 Img_1715

電池に直接半田付けしようとしてもなかなか着いてくれません。かといって電池に熱を加え続けるのは危険です。ここら辺が難しいところです。効果があるかどうかわかりませんが、私はとりあえず電池の金属部分にサンドペーパーで傷をつけて、半田がうまく乗ってくれることを祈りつつ電池に熱を加えています。電池のつなげ方を間違えると事故につながる虞がありますから、何度でも配線の仕方を確認します。

(4) 最後に熱収縮チューブで組んだ電池をカバーします。

Img_1716 Img_1717 Img_1718 Img_1719

熱収縮チューブは、組んだ電池より左右5mm程度長めに切ります。チューブの中に電池を入れたら、平らなところ寝かせてドライヤーで熱を加えます。ドライヤーをかなり近づけないと熱収縮チューブは縮みません。片面で十分チューブを収縮させたら、裏面もドライヤーで熱を加えてチューブを引き締めます。

これで組み電池の完成です。今日の作業は、TVを見ながら写真を撮りながらの作業で、組電池を2組作って2時間ちょっとかかりました。

2006年5月30日 (火)

ハードウェア完成度95% (^-^)

毎日コツコツ、ってのはなかなか難しいですね。それでもちょっとずつマイクロマウス作りを進めて、ハードウェア的には「ほぼ」完成まで漕ぎ着けました。

今日の具体的な作業は、1.長すぎるステッピングモータの軸を適当な長さに切る。2.アルミシャーシに裏から止めてあるネジを皿ネジにして、シャーシにも皿ネジが飛び出さないように座繰り加工をする。3.ホイールにゴムタイヤを履かせる。てところです。Img_1706

壁センサ用LEDとフォトトランジスタの方向調整やシャーシ裏に「カグスベール」を貼り付ける作業が残っています。ハードウエア作りが終わったら、(すでにシミュレーションは済んでいるので)制御ソフト開発を進める予定です。今年こそは全日本大会(フレッシュマンクラス)で完走したいので、まずは地区大会に照準を定めて確実にフルサイズ迷路を走破できるプログラムに仕上げたいと思っています。

2006年5月29日 (月)

マサラダック

サラダマックを読み間違えて、マサラダックかと思ってしまいました。で、ひとりで受けて笑ってた(笑)

何じゃそのスパイシーそうな鳥料理は (^-^;A

2006年5月26日 (金)

物欲 (-_-)

前々からずっと欲しいと思っているものがあります。それは、デジタルオシロです。テクトロのTDS1002(モノクロ、2ch、60MHz)が、計測器ランドで14万円ちょっと。ノートPCと同じくらいの値段なので、買おうと思えば買えるのですが、なかなか思い切れません。

それから、板金工作の機械も。ホーザンのK-130 は持っていますが、曲げ加工中に台の部分がたわんでしまったりするのでいまいちです。デザイン的にはBG-20HSがよさげですが、結構いい値段がしたような覚えがあります。(こんなに大きいのはいらないのだけれど)値段的には Bellmex の 3-IN-1 305型あたりがよさそうに思います。試し曲げしてみたいなぁ。

・・・と思ったら! 先ほどのBellmexのページの一番下に、ミニ板金機 2-IN-1 (\28,500-)というのが載っていますね! これこれ、こんなサイズのを探していたのですよ。買っちゃおうかな。

2006年5月25日 (木)

ハードウェア完成度80%

会社から帰ったらばたっと寝てしまうこともありますが、コツコツとマイクロマウス作成を続けています。今週月曜日に仕事の小さな山を越えて今日は気持ち早めに帰宅しました。

マイクロマウスのハードウェアは、ブザー、ドットマトリクスLED、2色LED、アナログ壁面センサ、ステッピングモータの各回路の配線を済ませ、簡単なプログラムで動作を確認して、電気的な部分はほぼできました。後は細かいメカ的なところを仕上げればハードウェアが完成します。なので、今のハードウェア完成度は80%くらい。

Img_1164

5月中にハードが完成してしまえば、ソフトを練る時間がたっぷり取れそうです。

2006年5月20日 (土)

構造化分析・設計(要求モデリング復習)

「組み込みソフトウエア開発のための構造化モデリング」 Chapter 4、page 57より。

【問1】 イベントリストに非機能要件を書かない理由は、どのようなものが挙げられますか?

<< 私の答え >> 実現したい「機能」と「品質や性能、制約条件」(=非機能要件)を分けて管理するためです。イベントリストはシステムに対する入出力の関係を表します。非機能要件は入力にも出力にもならないので、イベントリストには非機能要件を書きません。

【問2】 機能要件と非機能要件を分離することにより、どのような効果がありますか?

<< 私の答え >> 機能要件と非機能要件を分離すると、機能として表現できないシステム(商品)全体にかかわる品質や使用条件などをまとめて管理することができます。

【問3】 要求モデリングをせずに設計に入ると、どのような問題が発生すると思いますか?

<< 私の答え >> 「要求モデリング」を「機能要件と非機能要件をまとめること」と定義します。機能/非機能要件をまとめずに設計を始めると、システムとして実現すべきモノが不明確なため、設計のアウトプットが本来システムとして実現すべきモノをカバーできているかどうか確認することが困難になります。

【問4】 要求モデリングには、いつ、どの程度工数をかけるべきだと思いますか?

<< 私の答え >> 要求仕様書のレビュー・修正が終わった後、設計に入る前に要求モデリングを行います。(開発の途中で要件が変化することもあって)最初から完璧に機能要件/非機能要件をまとめることは不可能なので、まずはざっくりと全体像を把握できる程度に作り、1度チェックリストを用いて精査・修正を行う程度にとどめてよいかと思います。

-----

こういう世界はいわゆる「正解のない世界」なので、経験的にそのほうがうまくいくよね、てのがある意味正解なのだと思います。私の答えは妥当でしょうか?>ベテランの皆様

構造化分析・設計 (イベントリスト)

一生懸命オブジェクト指向技術を学んでおきながら、普段のプログラム作成にはC言語を使っているので、プログラム設計に多少無理なところがあります。世の中オブジェクト指向で賑わっていますが、オブジェクト指向以前に主流だった(そして今でも普通に使われているはずの)構造化分析・構造化設計(SA・SD)について私は何も知りません。

どこで聞きつけた話だか忘れましたが、SESSAME(組み込みソフトウェア管理者・技術者教育研究会)から組込みソフトウェア開発のための構造化モデリング」という本が出ていたので、(そして買ったまま積読になっていたので)この本を読みながらマイクロマウスの構造化分析・設計をさくっとやってみることにしました。

以下、モデリングしながら疑問に思ったことを書き連ねます。

要求分析編。イベントリストの作成。イベントとして「バッテリ電圧低下」や「走行中止」を考えた場合、エフェクトはどうなるのでしょう?  「ユーザに電池交換を促す」や「危険を回避することができる」で妥当なエフェクトなのでしょうか??

とりあえずできたのはこんな感じ。(「event_list_2006_05_20.xls」をダウンロード

何か知らないけど、excel からコピーして張り付けたら勝手に振り仮名がつきました。すげー。遊べそう、と思ったら表示がめちゃめちゃになるのでこりゃだめです。なので、代わりに excel のファイル自体を載せておきます。

(チェックリストは組込みソフトウェア開発のための構造化モデリング」の p.56, 表4.1 に少し手を加えたものです。)

2006年5月16日 (火)

壁面センサまでできた (^-^)

連休前半で迷路探索アルゴリズムの検証を済ませて、連休後半ではアナログ壁面センサの組み立てをしていました。連休明けの週にはセンサの値をハイパーターミナルに表示させることができ、壁面センサ部分はこれでOK。

先週末(5/13,14)はモータ駆動部の組み立てに着手して、3割程度配線できたところです。

Img_1161_2

ちょっと恥ずかしい手配線。ECADで回路図作ってプリント基板つくれるようになりたい。

Img_1162   

2006年5月 3日 (水)

旅人 (^-^)

大学時代の先輩の結婚式があって、その2次会に参加するために茨城に帰省しました。高速を使って車で帰ったわけですが、海老名SAでヒッチハイクをしている人がいたので、めずらしいな~と思って乗せてあげることにしました。

なんでも、ギター一本で世界一周弾き語りの旅に出たいのだそうです。その手始めに、日本を一周するのだとか。武笠くん曰く、「詩は会話のようなもの」だそうです。細かい話は彼のblogを読んでもらうとして、私とはまったく生きる世界が違う人と話をするのもなかなか面白いと思いました。名刺代わりにCD1枚もらっときゃよかったかな。

ちなみに、私は滅多に旅しません。観光旅行も行きません。せいぜい、友人に会いにいくか京都までお墓参りにいくか、それくらいです。あるいみ、引きこもってます。世界が狭いかもしれません。でも、回路を組んだりプログラムを書いたりというコツコツと積み上げていく世界のほうが、「私にはこれがある」というものを築きやすいのではないかと思うので、クリエイティブでさえあれば無理して外に出なくてもいいかなと思っています。<他流試合は必要

迷路探索シミュレーション(3)

5/1(月)からCATV経由でインターネットにつなげるようになりました。ぼちぼち日記をアップしていきます。

4月末から迷路探索アルゴリズムのシミュレーションを行ってきました。単純な左手法、仮想壁を利用した拡張左手法、距離マップを利用したポテンシャル法(足立法?)の3通りのアルゴリズムを実装して、探索走行、自動帰還、最速走行(タイムアタック)、自動帰還までできるようになりました。使用しているシミュレータの都合上、1区画ずつ移動しては停止して壁を記録する走り方になっていますが、拡張左手法、ポテンシャル法どちらでも第1回~第20回大会の迷路をクリアできているので、(バグがないとはいいませんが)正常系に対して正しく動作することは verify できたものと思っています。

拡張左手法を実装して動かしてみた感想ですが、無駄な動きがかなり多いですね。仮想壁を利用しているせいで、経路の分岐点まで戻るときに余計にグルグル回って戻ってきます。これは俗に「枝刈り」と呼ばれる袋小路に仮想的に蓋をする処理を追加すれば、少しはましになるのではないかと思います。大会で使われた迷路自体が拡張左手法を意識して作られているのか、拡張左手法を使うとほぼ迷路を全面探索することになる迷路が多かった気がします。

一方、ポテンシャル法(と私が勝手に呼んでいる距離のマップを利用した手法)では「枝刈り」自体必要ない処理です。私は目的位置から迷路全体への距離マップを作り、マウスの現在位置から距離が短くなる方向を選択して移動する方法をとっているため、スタート地点からゴール地点に向かうときはゴール地点(x4つ)を目的地点に、ゴール地点からスタート地点に移動するときはスタート地点を目的地にすることで、一つのアルゴリズムでスタートからゴール、ゴールからスタートまでの処理を扱うことができます。ゴール地点からスタート地点に戻る際にも探索を行っていますが、最速走行(タイムアタック、第2走行ともいう)時でも未探索区画の壁がないものとして扱っているため、1回目のタイムアタックでは未探索区画に入ってしまいます。迷路はクリアできるので、とりあえずそれでいいかなと思っています。

今シミュレーションプログラムの実装はC言語なのですが、設計はオブジェクト指向的にやっているのでC++を使いたい、けれど、YellowSoftのコンパイラはCコンパイラしかないし、でも、(評価版の)ルネサスのコンパイラやGCCならC++が使える・・・といろいろ迷っています。

« 2006年4月 | トップページ | 2006年6月 »

最近の写真