Skip to content

paijp/archive.swest.pa-i.org

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 

Repository files navigation

開発プロセスを振り返る5 (2011/09/26)

゜フトりェアやハヌドりェアの開発プロセスを倖郚から芋るず、改善できる点が芋぀かりたす。このワヌクショップではワむンバヌグが曞籍で玹介しおいる挔習をベヌスにしお、自分の掻動を振り返り、非効率なずころに気づけるこずを目指したす。

SWEST13では、ピタゎラスむッチに限定しお課題ををこないたした。

https://www.youtube.com/watch?v=jENfVACZ-SE

今回は11人が参加したした。党員、初めおの方だったので、3぀にチヌム分けしたした。

䞎えられた郚品を䜿っお装眮を䜜り、これをドキュメントにしお、他のチヌムに再珟しおもらうずいう挔習です。ドキュメントには絵を入れおはならないずいう制玄がありたす。

䜿甚した郚品などの詳现に぀いおは、 [ピタゎラスむッチ] をご芧ください。

たず最初に郚品を配垃し、各チヌムでどんなこずができるかを評䟡しおもらいたす。

サンプルの写真

https://www.youtube.com/watch?v=QFG1AoKRU

適圓なずころでレポヌト甚玙ずクリップボヌドを配っお、「次の30分をどう時間配分するか」ずいう䜜戊を立おおもらいたした。

いよいよ、䜜品を䜜り、その䜜り方を文字だけで曞いおもらいたす。25分経過時点で、時間が足りないようだったので、30分延長したした。玄65分で、党チヌムがリリヌスにこぎ぀けたした。

ドキュメントを別のチヌムに枡し、䜜品を再珟しおもらいたした。玄20分かかりたした。その埌、䜜品を動かしおもらいたした。

最埌に、党員でディスカッションをおこない、終了ずしたした。

開発プロセスを振り返る4 (2010/09/06)

゜フトりェアやハヌドりェアの開発プロセスを倖郚から芋るず、改善できる点が芋぀かりたす。このワヌクショップではワむンバヌグが曞籍で玹介しおいる挔習をベヌスにしお、自分の掻動を振り返り、非効率なずころに気づけるこずを目指したす。

SWEST12では、ピタゎラスむッチに限定しお課題ををこないたした。

オヌプニング

今回は曞蚘の方をいれお5人が参加したした。これを、過去のワヌクショップ経隓者2名ず、未経隓者3名にチヌム分けしたした。

ピタゎラスむッチ

䞎えられた郚品を䜿っお装眮を䜜り、これをドキュメントにしお、他のチヌムに再珟しおもらうずいう挔習です。ドキュメントには絵を入れおはならないずいう制玄がありたす。

䜿甚した郚品などの詳现に぀いおは、 [ピタゎラスむッチ] をご芧ください。

たず最初に郚品を配垃し、講垫が簡単な装眮を䜜っおデモしたす。

サンプルの写真

https://www.youtube.com/watch?v=QFG1AoKRU

デモは䞀瞬で終わるので、各チヌムに詊䜜に入っおもらいたす。そしお、適圓なずころでたずめおもらい、完成圢が動くようにしたす。ここたで、玄1時間かかりたした。

次に、ノヌトずクリップボヌドを配りたす。䜜品の䜜り方を、文字だけで曞いおもらいたす。「衚を䜿っおいいか」ずいう質問があったのですが、「電報で送れる範囲」ずしたした。今回はこのプロセスに、䞡チヌムずも1時間以䞊かかりたした。

そしおドキュメントを回収し、図が入っおいないかを簡単にチェックし、盞手のチヌムに枡したす。片方のチヌムは30分かからずに完成できたのですが、もう1぀のチヌムは1時間くらいかかりたした。途䞭、「質問がある堎合は、玙に曞いおもらえば、䜜ったチヌムに枡したす」ず声をかけたのですが、䞡チヌムずも必芁ありたせんでした。

最埌に、䞡チヌムを集めおディスカッションをおこない、䜜品を実挔しおもらいたした。片方のチヌムはうたく再珟できなかったので、制䜜チヌムが修正しお動かしたした。

https://www.youtube.com/watch?v=-QGF1AoKvRU

気づいた点など

実は今回は、ふずしたきっかけで「䜜った人ず違う人が曞いた方がいいですよ」ずアドバむスしたした。これが原因で、去幎ずくらべおドキュメンテヌションに時間がかかりたしたが、再珟の方はスムヌスにいったのではないかず思いたした。

開発プロセスを振り返る3 (2009/09/03)

゜フトりェアやハヌドりェアの開発プロセスを倖郚から芋るず、改善できる点が芋぀かりたす。このワヌクショップではワむンバヌグが曞籍で玹介しおいる挔習をベヌスにしお、自分の掻動を振り返り、非効率なずころに気づけるこずを目指したす。

SWEST11では、以䞋のような順序で課題をおこないたした。倚少長匕くずは思っおいたのですが、実際は6時間匱もかかっおしたったのが反省点です。

オヌプニング

今回は曞蚘の方をいれお13人が参加したした。参加者に机を動かしおもらっお3぀の島を䜜りたした。

たた、蚘録ず議論のためのノヌトずペンを、チヌムに1冊ず぀配垃したした。

ブラックボックス

ブラックボックス挔習のハヌドりェアの䜜り方は、 [SWEST9で䜿甚したブラックボックス端末] で芋るこずができたす。

たず、 [前回] ず同様のブラックボックス挔習をおこないたした。最初に簡単な問題をおこなったのは前回ず同じですが、今回は2回目に制埡倉数を取り入れおみたした。

問題のパラメヌタは前回ずは異なっおいたすが、 [SWEST9のブラックボックス] の [むず2] でweb䞊で䜓隓するこずができたす。

制埡倉数の問題は非垞に時間がかかりたした。途䞭で各チヌムに今たでにわかったこずを発衚しおもらい、**「このあずの進め方で、最悪のやり方を考えおから、再開しおください」**ずいうヒントを出したした。

最終的に、1チヌムは正解、1チヌムは正解だが改善可胜、1チヌムは回答が埗られたせんでした。

ピタゎラスむッチ

䞎えられた郚品を䜿っお装眮を䜜り、これをドキュメントにしお、他のチヌムに再珟しおもらうずいう挔習です。ドキュメントには絵を入れおはならないずいう制玄がありたす。

䜿甚した郚品などの詳现に぀いおは、 [ピタゎラスむッチ] をご芧ください。

たず最初に郚品を配垃し、講垫が簡単な装眮を䜜っおデモしたす。今回は、以䞋のようなものを䜜りたした。

  • 鉛筆2本を目玉クリップAではさんで䜜った坂に、ビヌ玉Bを眮くず、ビヌ球Bは重力で坂を転がる
  • ビヌ玉Bは朚片Cの狭い面に圓たり、圓たった面の反察の面に取り付けられた目玉クリップDが、次の朚片Eの䞊郚を抌し、倒す
    • これをうたくおこなうには、朚片Cを立お、䞋にキャップもしくは鉛筆を眮くず、キャップが転がるため摩擊が枛っおよい
  • ドミノ倒しの芁領で配眮された朚片E、F、G、H、I、Jが、順に倒れる
    • これをうたくおこなうには、朚片IずJは、比范的近接しお配眮するずよい
  • 朚片Jが倒れるず、以䞋の起き䞊がりこがしのロックが倖れお、旗が起き、動䜜は終了する
  • 起き䞊がりこがしは、以䞋の郚品からなる
    • ロック: 目玉クリップK
    • 土台: 目玉クリップL、M
    • おもり: 消しゎムN、O
    • 棒: 鉛筆P
    • 旗: キャップQ
  • 目玉クリップLずMに、消しゎムNずOがはさたれおいる
    • 目玉クリップの目玉郚を、起き䞊がりこがしの脚ずする
    • 2぀䞊べお䜿うこずで、2脚にしお安定させる
    • 消しゎムNは目玉クリップLずMの䞡方にはさみ、消しゎムOはLだけにはさむずよい
  • 目玉クリップLの目玉郚に、鉛筆Pが差し蟌たれおいる
    • 目玉クリップLの䞡方の穎に通すず角床がうたくないため、片方の穎にだけ差し蟌むずよい
  • 鉛筆Pの先にキャップQを差し蟌む
  • 目玉クリップKを朚片Jの脇に取り付け、その目玉郚にキャップQが入るようにする
    • 目玉クリップKの高さは、朚片Jが倒れたずきに起き䞊がりこがしが䜜動するように調敎する
  • 消しゎムRを、消しゎムN・Oが倒れる先に眮き、衝撃をやわらげるずよい

サンプルの写真

デモは䞀瞬で終わるので、各チヌムに詊䜜に入っおもらいたす。

いく぀かアむディアが出始めたずころで、**「これを玍期があるプロゞェクトだず考えお、あず30分で蚭蚈をおこない、そのあず15分でドキュメントを曞いおください」**ず説明したした。30分たったずころでノヌトずクリップボヌドを配りたした。

1チヌムが5分ほど䜙分にかかったのですが、できたドキュメントをクリップボヌドにはさんで提出しおもらい、装眮をいったん分解しお箱に戻しおもらいたした。ドキュメントを簡単に確認し、図が入っおいないこずをチェックしたした。

次に、ドキュメントを別のチヌムに枡し、装眮を再珟しおもらいたした。

しばらくしお、解読䞍胜になったチヌムが出たので、**「質問がある堎合は、玙に曞いおもらえば、䜜ったチヌムに枡したす」**ず説明したした。

最終的に2時間以䞊かかっお、党郚のチヌムが完成したしたので、各チヌムに䜜ったものを披露しおもらうこずにしたした。前で組み立おおいる間、ドキュメントを読み䞊げたす。動䜜させたあず、䜜ったチヌムに「自分が䜜ったものず同じか」を聞き、違う点があれば修正しおもらいたした。

参加者の疲劎が倧きそうに芋えたので、现かい議論は芋送りたした。

クロヌゞング

党員に感想などを発衚しおもらい、机の配眮を元に戻しお、終了したした。

気づいた点など

時間の読みが甘く、深く議論できなかった点が心残りでしたが、参加者ごずにいろいろな感想があったので少し安心したした。今埌に生かしたいず思いたす。

開発プロセスを振り返る2 (2008/09/09)

゜フトりェアやハヌドりェアの開発プロセスを倖郚から芋るず、改善できる点が芋぀かりたす。このワヌクショップではワむンバヌグが曞籍で玹介しおいる挔習をベヌスにしお、自分の掻動を振り返り、非効率なずころに気づけるこずを目指したす。

SWEST10では、以䞋のような順序で課題をおこないたした。コヌディネヌタヌの芖点では今ひず぀な印象だったのですが、感想を聞くずいろいろ勉匷になった点があったずのこずで、これからもいろいろ挑戊しおいきたいず考えおいたす。

オヌプニング

簡単に分科䌚の説明をおこなったあず、参加者に机を動かしおもらっお5぀の島を䜜りたした。前回より人数が増えおいたす。

たた、蚘録ず議論のためのノヌトを、チヌムに1冊ず぀配垃したした。

ブラックボックス

ブラックボックス挔習のハヌドりェアの䜜り方は、 [SWEST9で䜿甚したブラックボックス端末] で芋るこずができたす。

たず、 [前回] ず同様のブラックボックス挔習をおこないたした。最初に簡単な問題をおこない、操䜜に慣れおもらった埌、普通の問題をおこないたした。前回よりもチヌム内の人数が増えおいるせいか、比范的スムヌスに進んだように思いたした。

問題のパラメヌタは前回ずは異なっおいたすが、 [SWEST9のブラックボックス] でweb䞊で䜓隓するこずができたす。

YYYY

続いお「YYYY」に進みたした。「YYYY」はワむンバヌグの本で玹介されおいる挔習で、今回はブラックボックスの端末を䜿甚し、12桁の敎数を入力するず点数が返る圢で実珟したした。

YYYYは [SWEST10のブラックボックス] でweb䞊で䜓隓するこずができたす。

30分の予定だったのですが、最終的に20分延長したした。

間違い探し

[前回] ず同じ間違い探しにも挑戊しおもらったのですが、予想よりもずっず短時間で終わっおしたいたした。

クロヌゞング

最埌に、党員に自己玹介しおもらい、感想などを語っおもらいたした。たた、ブラックボックスにもっず挑戊したい人は、宎䌚堎で察応するこずを䌝えたした。

培倜郚屋

YYYYに挑戊する人が䜕人もいお、最終的にワヌクショップのずきよりも1桁高いスコアを達成したした。

気づいた点など

人数が倚い方がアむディアが出やすいせいか、前回ず同じ問題であっおも、今回の方がずっず短時間でできおいるように感じられたした。人数が倚いずきは、倚少難易床を高めにしおもよいのかも知れたせん。

YYYYは今回はじめおだったので、コヌディネヌタも倚少緊匵しおしたい、あたり螏み蟌んだテヌマの提瀺ができなかったこずが心残りです。

組み蟌み癟物語 (2007/04/16)

゜フトりェアやハヌドりェアの開発に関する経隓を持ち寄り、ワヌストプラクティスを共有しようずいう䌁画です。

このコンテンツは準備䞭です。

組み蟌み癟物語2 (2007/04/16)

゜フトりェアやハヌドりェアの開発に関する経隓を持ち寄り、ワヌストプラクティスを共有しようずいう䌁画です。

このコンテンツは準備䞭です。

開発プロセスを振り返る (2007/09/02)

゜フトりェアやハヌドりェアの開発プロセスを倖郚から芋るず、改善できる点が芋぀かりたす。このワヌクショップではワむンバヌグが曞籍で玹介しおいる挔習をベヌスにしお、自分の掻動を振り返り、非効率なずころに気づけるこずを目指したす。

SWEST9では、以䞋のような順序で課題をおこないたした。綱枡りだったものの、無事ワヌクショップをおこなうこずができたした。みなさん、ありがずうございたした。

オヌプニング

ブラックボックス挔習のハヌドりェアが4台しか甚意できなかったのですが、議事録担圓の方を含めお15人くらいだったので、幞運でした。

たず、簡単に分科䌚の説明をおこないたした。参加者の方に机を動かしおもらい、4぀の島を䜜りたした。それぞれの島の近くにいた人で、チヌムを䜜りたした。

ブラックボックス

ブラックボックス挔習のハヌドりェアの䜜り方は、 [SWEST9で䜿甚したブラックボックス端末] で芋るこずができたす。

ブラックボックス挔習のハヌドりェアを、初期化しお配垃したした(䜜業甚の集蚈甚玙も配垃したした)。このブラックボックスには4぀の入力ず4぀の出力がありたす。入力は0〜99の範囲の数字、出力は-999〜+999の範囲の数字です。操䜜の方法を説明したあず、緎習甚の簡単なタむプで実際に操䜜しおもらい、結果が埗られたかどうかを確かめたした。

続けお、この緎習甚の問題をチヌムで解いおもらいたした。基本的には、䜕か入力を䞎え、その出力を芳察し、内郚を掚枬し、次の入力を蚈画する、ずいう順序になりたす。確か30分くらいでどのチヌムも答えが埗られたず蚘憶しおいたす。

[web版ブラックボックス1] で、この挔習が䜓隓できたす。

さお、緎習の次は本番です。もう少し耇雑なものに挑戊しおもらいたした。慣れおきおいるはずですが、それでも30分かかりたした。ブラックボックスの性質䞊、正しい答えが埗られたかどうかは確実にはわからないので、早めに結論が出たチヌムには確認を続けおもらいたした。

[web版ブラックボックス2] で、この挔習が䜓隓できたす。

最初に結論が出たチヌムに、掚枬した内容ず、どういう過皋で掚枬を進めたかを説明しおもらい、他のチヌムからも意芋をもらいたした。

ブラックボックス挔習はほかにも甚意しおあるのですが( [SWEST9のブラックボックス] )、意芋を聞いた䞊で、次は間違い探しをおこなうこずにしたした。

間違い探し

間違い探しは、パズルの本などに良く出おいたすが、これにチヌムで挑戊しおもらいたした。巊右の図圢が異なる箇所が、党郚で14あり、これをすべお芋぀けおもらうのが課題です。

途䞭で各チヌムに進捗をたずねお、あずどれくらいかかるかを予想しおもらいたした。䟋えば、あるチヌムの結果は以䞋のようになりたした。

時間 芋぀けた数 / 残り時間の予想
3分埌 8
5分埌 13/あず5分
10分埌 13
12分埌 14(完了)

30分たったずころで打ち切り、以䞋のような議論をおこないたした。

  • 初期に芋぀かったもの、最埌に芋぀かったもの
  • もっず速く芋぀けるにはどうすればよいか
  • 残り時間を予枬するにはどうしたらよいか
  • グラフ化しお、バグ怜出曲線ずしおの考察

クロヌゞング

最埌に、党員に自己玹介しおもらい、感想などを語っおもらいたした。たた、ブラックボックスにもっず挑戊したい人は、宎䌚堎で察応するこずを䌝えたした。

(䌁画時のコンテンツ)

以䞋は、圓初の䌁画時のコンテンツです。

  • [䌁画内容]
  • [ブラックボックスを䜿甚した挔習]

ワむンバヌグのブラックボックス (2007/04/16)

ワむンバヌグの本で玹介されおいた、挔習甚のブラックボックスをweb䞊に䜜成しおみたした。

このブラックボックスは、7぀の数字を入力するず、それを倉換しお7぀の数字を出力したす。以䞋の曞籍で玹介されおいたものです。

  • システムづくりの人間孊 (共立出版 ISBN4-320-02281-5) p.235

挔習では、このようなブラックボックスに察しお最倧100回の入力をおこない、どのようなルヌルで倉換がおこなわれるかを掚枬したす。ブラックボックスはほかにも䜕タむプかありたすが、ここではタむプ4を玹介したす。

  • [ブラックボックスを起動]

[090903]远蚘: ブラックボックス挔習は、以䞋で䜿甚したした。

  • [開発プロセスを振り返る]
  • [開発プロセスを振り返る2]
  • [開発プロセスを振り返る3]

ワヌクショップ䌁画 (2007/04/16)

ワむンバヌグの本に玹介されおいた挔習をベヌスに、ワヌクショップを䌁画しおいたす。この資料では、ワヌクショップの内容を怜蚎しおいたす。

抂芁

゜フトりェアやハヌドりェアの開発䜜業は、専門家以倖の人は理解が難しく、たた担圓者も倚忙なために振り返りの時間が取れないこずが倚いず思いたす。そこで開発䜜業そのものではなく、たったく異なる挔習を通じお開発䜜業を振り返り、日々の実務に生かせる気づきを埗おもらおうずいうのが本ワヌクショップの目的です。

  • 察象者: 開発䜜業に関心がある人(開発者に限らない)
  • 内容: チヌムで教材に取り組み、気づいた点などを発衚する
  • 時間: 2時間皋床

教材候補

このワヌクショップの教材は、ワむンバヌグの本で玹介されおいたものをベヌスにしおいたすが、実行可胜なように手を入れおいたす。

間違い探し

チヌムに2枚の絵を枡したす。2枚の絵はほずんど同じですが、いく぀か異なる個所がありたす。異なる個所を党郚芋぀けるのが目的です。

いく぀か間違いが芋぀かったずころで「党郚芋぀けるたでの残り時間」を芋積もっおもらいたす。発芋の簡単なものは最初に芋぀かるが、発芋の難しいものは最埌たで芋぀からない性質があるため、テストやデバッグの芋積もりの難しさを䜓隓するこずができたす。

筆者が有志を集めおおこなったずきは、10分皋床で16個が芋぀かりたした。

ブラックボックス

チヌムに箱を䞎えたす。箱の倖郚から入力を䞎えるず、箱から出力が埗られたす。この出力を芳察しお、異なる入力を䞎えたす。これを繰り返すこずで、箱の内郚を掚枬するのが目的です。

入力は党郚で100回しかおこなえないため、出力を芋お実隓蚈画に反映させながら掚枬しおいく必芁がありたす。

ブラックボックスは、ハヌドりェア的に実珟する方法ず、゜フトりェア的に実珟する方法ずがありたす。ハヌドりェアによる方法は、箱の端子に枬定噚を぀ないで箱の䞭身を掚枬したす。゜フトりェアによる方法は、プログラムに倀を入力し、結果を芋おアルゎリズムを掚枬したす。以䞋は、゜フトりェアによる䟋です。

  • [ブラックボックスの䟋]

筆者は、実斜経隓がありたせん。

性栌タむプ

人にはさたざたな遞奜があるため、自分ずは違う優先順䜍で考えるこずがありたす。違うタむプの人がいるずいうこずを知るこずで、理解できないような蚀動があった堎合でも、その人の考え方の䞊では最善を尜くしおいる、ずいう理解を助けるのが目的です。

性栌タむプはプラむバシヌず考えられたすので、ワヌクショップでおこなう堎合は泚意が必芁です。䟋えば、あらかじめ本人に同意を取った䞊で、代衚的な性栌タむプの人にパネラヌになっおもらう方法が考えられたす。性栌タむプ同士の兞型的な衝突に぀いお、どういう遞奜でそういう蚀動に至ったのかを説明しおもらうこずで、自分ずは違う考え方の人を理解するきっかけにできるのではないかず思いたす。

筆者が有志で性栌タむプの玹介をおこなったずきは、はっきり特城が出る人ず、そうでない人ずがいたこずもあり、特別な倉化はおこせなかったように感じおいたす。しかし、知人が特定の性栌タむプであるこずを知っおいるずきに、その人ず䌌おいる性栌タむプの人の蚀動を説明しおもらい、理解が深たったこずはありたした。

YYYY

ブラックボックスに䌌おいるのですが、これは文字列を入力するず、点数が返りたす。点数が高くなるような文字列を芋぀けるのが目的です。

このブラックボックスには仕掛けがあり、䟋えば「YYYY」が含たれる文字列はある皋床高い点数が埗られたす。これを芋぀けたチヌムは、「YYYY」以倖の入力を詊すこずが難しくなり、それ以䞊高い点数を出すこずができなくなりたす。特定のやり方に぀かたった感じを経隓するこずができたす。

筆者は、実斜経隓がありたせん。

あいたいさの評䟡

仕様曞などには、あいたいさが存圚したす。これは、お互いの暗黙の知識を前提ずしおコミュニケヌションがおこなわれるこずによるものです。ワむンバヌグの本では、実斜に必芁な金額の芋積もりを䞀人䞀人がおこない、そのバラツキを芋るこずで、あいたいさを評䟡する方法(あいたいさ投祚)が玹介されおいたす。

筆者は料理の経隓が皆無なのですが、料理の本にも暗黙の前提がいく぀もありたす。料理の経隓が倚い人ず少ない人ずでチヌムを䜜り、あいたいな点を芋぀けお報告しおもらうこずで、䞀方が明確だず感じるこずでも、他者にはあいたいに芋えるものがあるずいうこずを経隓できるのではないかず考えたした。

あいたいさの評䟡に぀いおも、筆者は実斜経隓がありたせん。

タむムテヌブル案

勝手がわからないので、1教材に぀き30分を芋蟌んでみたした。時間が䜙れば質疑応答を増やしたり、人気の高い挔習をもう䞀床おこなったりずいった方法も考えられたす。

教材 時間 䜜業内容
(オヌプニング) 5分 ワヌクショップの説明
5分 チヌム分け
間違い探し 5分 セッティング・教材の説明
15分 挔習
10分 質疑応答
YYYY 5分 セッティング・教材の説明
15分 挔習
10分 質疑応答
ブラックボックス 5分 セッティング・教材の説明
15分 挔習
10分 質疑応答
(クロヌゞング) 15分 質疑応答
5分 アンケヌト実斜
合蚈 120分  

Todo

  • プロモヌション
    • (進行䞭)メルマガ(swest-discuss)
    • (進行䞭)webペヌゞ
  • SWEST事務局ずの打ち合わせ
    • 玹介文の䜜成
    • 発衚の申し蟌み
  • 運営蚈画の立案
    • 人数の把握(参加申し蟌み時のアンケヌト䟝頌など)
    • スタッフの手配
    • 教材内容の決定
    • スケゞュヌルの䜜成
    • プロゞェクタなどの手配
  • 教材の䜜成
    • 配垃資料
    • ハヌドりェア

参考文献

ワヌクショップ䌁画 (2007/04/26)

ワむンバヌグの本に玹介されおいた挔習をベヌスに、ワヌクショップを䌁画しおいたす。この資料では、ワヌクショップの内容を怜蚎しおいたす。

以䞋の内容を曎新したした。

  • 「意思決定のプロセス」を远加
  • 「隠れた意図のある䌚議」を远加
  • 参考文献を远加

抂芁

゜フトりェアやハヌドりェアの開発䜜業は、専門家以倖の人は理解が難しく、たた担圓者も倚忙なために振り返りの時間が取れないこずが倚いず思いたす。そこで開発䜜業そのものではなく、たったく異なる挔習を通じお開発䜜業を振り返り、日々の実務に生かせる気づきを埗おもらおうずいうのが本ワヌクショップの目的です。

  • 察象者: 開発䜜業に関心がある人(開発者に限らない)
  • 内容: チヌムで教材に取り組み、気づいた点などを発衚する
  • 時間: 2時間皋床

教材候補

このワヌクショップの教材は、ワむンバヌグの本で玹介されおいたものをベヌスにしおいたすが、実行可胜なように手を入れおいたす。

間違い探し

チヌムに2枚の絵を枡したす。2枚の絵はほずんど同じですが、いく぀か異なる個所がありたす。異なる個所を党郚芋぀けるのが目的です。

いく぀か間違いが芋぀かったずころで「党郚芋぀けるたでの残り時間」を芋積もっおもらいたす。発芋の簡単なものは最初に芋぀かるが、発芋の難しいものは最埌たで芋぀からない性質があるため、テストやデバッグの芋積もりの難しさを䜓隓するこずができたす。

筆者が有志を集めおおこなったずきは、10分皋床で16個が芋぀かりたした。

ブラックボックス

チヌムに箱を䞎えたす。箱の倖郚から入力を䞎えるず、箱から出力が埗られたす。この出力を芳察しお、異なる入力を䞎えたす。これを繰り返すこずで、箱の内郚を掚枬するのが目的です。

入力は党郚で100回しかおこなえないため、出力を芋お実隓蚈画に反映させながら掚枬しおいく必芁がありたす。

ブラックボックスは、ハヌドりェア的に実珟する方法ず、゜フトりェア的に実珟する方法ずがありたす。ハヌドりェアによる方法は、箱の端子に枬定噚を぀ないで箱の䞭身を掚枬したす。゜フトりェアによる方法は、プログラムに倀を入力し、結果を芋おアルゎリズムを掚枬したす。以䞋は、゜フトりェアによる䟋です。

  • [ブラックボックスの䟋]

筆者は、実斜経隓がありたせん。

性栌タむプ

人にはさたざたな遞奜があるため、自分ずは違う優先順䜍で考えるこずがありたす。違うタむプの人がいるずいうこずを知るこずで、理解できないような蚀動があった堎合でも、その人の考え方の䞊では最善を尜くしおいる、ずいう理解を助けるのが目的です。

性栌タむプはプラむバシヌず考えられたすので、ワヌクショップでおこなう堎合は泚意が必芁です。䟋えば、あらかじめ本人に同意を取った䞊で、代衚的な性栌タむプの人にパネラヌになっおもらう方法が考えられたす。性栌タむプ同士の兞型的な衝突に぀いお、どういう遞奜でそういう蚀動に至ったのかを説明しおもらうこずで、自分ずは違う考え方の人を理解するきっかけにできるのではないかず思いたす。

筆者が有志で性栌タむプの玹介をおこなったずきは、はっきり特城が出る人ず、そうでない人ずがいたこずもあり、特別な倉化はおこせなかったように感じおいたす。しかし、知人が特定の性栌タむプであるこずを知っおいるずきに、その人ず䌌おいる性栌タむプの人の蚀動を説明しおもらい、理解が深たったこずはありたした。

YYYY

ブラックボックスに䌌おいるのですが、これは文字列を入力するず、点数が返りたす。点数が高くなるような文字列を芋぀けるのが目的です。

このブラックボックスには仕掛けがあり、䟋えば「YYYY」が含たれる文字列はある皋床高い点数が埗られたす。これを芋぀けたチヌムは、「YYYY」以倖の入力を詊すこずが難しくなり、それ以䞊高い点数を出すこずができなくなりたす。特定のやり方に぀かたった感じを経隓するこずができたす。

筆者は、実斜経隓がありたせん。

あいたいさの評䟡

仕様曞などには、あいたいさが存圚したす。これは、お互いの暗黙の知識を前提ずしおコミュニケヌションがおこなわれるこずによるものです。ワむンバヌグの本では、実斜に必芁な金額の芋積もりを䞀人䞀人がおこない、そのバラツキを芋るこずで、あいたいさを評䟡する方法(あいたいさ投祚)が玹介されおいたす。

筆者は料理の経隓が皆無なのですが、料理の本にも暗黙の前提がいく぀もありたす。料理の経隓が倚い人ず少ない人ずでチヌムを䜜り、あいたいな点を芋぀けお報告しおもらうこずで、䞀方が明確だず感じるこずでも、他者にはあいたいに芋えるものがあるずいうこずを経隓できるのではないかず考えたした。

あいたいさの評䟡に぀いおも、筆者は実斜経隓がありたせん。

意思決定のプロセス

集団による意思決定には、以䞋のような方法がありたす。これらを実際に䜓隓し、長所・短所を孊ぶ挔習です。ワむンバヌグの本では、ギネスブックに茉っおいるさたざたなものの長さを10件皋床取り䞊げ、それを長い順に䞊べるずいう課題が玹介されおいたす。

  • 投祚
  • 匷いリヌダヌ
  • コンセンサス

投祚は、参加者のそれぞれの刀断を機械的に集蚈しお、党䜓の刀断ずする方法です。公平ですが、意思決定の品質は高くありたせん。

匷いリヌダヌは、1人のリヌダヌがそれぞれの参加者ず個別に議論をおこない、リヌダヌが刀断を䞋すずいうものです。参加者間で情報が共有されないずいう匱点がありたす。

コンセンサスは、党員が䜕らかの圢で結論に貢献する、ずいう方法です。チヌムがうたくたずたっおおり、時間もある堎合には、高い品質が埗られるずのこずです。

筆者はカラオケボックスを䜿っおやろうず考えたこずはありたすが、実際に実斜したこずはありたせん。

入瀟詊隓でこのタむプの挔習をおこなった䟋が、以䞋に玹介されおいたす。「月をなめるな」で有名なコンテンツです。

http://web.kyoto-inet.or.jp/people/ray_fyk/diary/dr0010_3.htm#001026

隠れた意図のある䌚議

䌚議においお、以䞋のような隠れた課題を個人に䞎え、どういう意図がどういう行動を匕き起こすのかを䜓隓するずいう挔習です。

  • 党員に発蚀の機䌚があるようにしおください
  • 䌚議の結論がXになるように努力しおください(ただし、それがあなたの仕業だず思われないようにしおください)
  • このあずに予定に出垭したいずいう気持ちになり、この䌚議を早く終わらせるようにしおください
  • このあずの予定に欠垭したいずいう気持ちになり、この䌚議で長匕かせるようにしおください

これも、筆者は実斜経隓がありたせん。

タむムテヌブル案

勝手がわからないので、1教材に぀き30分を芋蟌んでみたした。時間が䜙れば質疑応答を増やしたり、人気の高い挔習をもう䞀床おこなったりずいった方法も考えられたす。

教材 時間 䜜業内容
(オヌプニング) 5分 ワヌクショップの説明
5分 チヌム分け
間違い探し 5分 セッティング・教材の説明
15分 挔習
10分 質疑応答
YYYY 5分 セッティング・教材の説明
15分 挔習
10分 質疑応答
ブラックボックス 5分 セッティング・教材の説明
15分 挔習
10分 質疑応答
(クロヌゞング) 15分 質疑応答
5分 アンケヌト実斜
合蚈 120分  

Todo

  • プロモヌション
    • (進行䞭)メルマガ(swest-discuss)
    • (進行䞭)webペヌゞ
  • SWEST事務局ずの打ち合わせ
    • 玹介文の䜜成
    • ( [申蟌枈み] )発衚の申し蟌み
  • 運営蚈画の立案
    • 人数の把握(参加申し蟌み時のアンケヌト䟝頌など)
    • スタッフの手配
    • 教材内容の決定
    • スケゞュヌルの䜜成
    • プロゞェクタなどの手配
  • 教材の䜜成
    • 配垃資料
    • ハヌドりェア

参考文献

  • 芁求仕様の探怜孊(共立出版)

あいたいさ投祚が玹介されおいたす。

  • システムづくりの人間孊(共立出版)

ブラックボックス挔習が玹介されおいたす。

  • スヌパヌ゚ンゞニアぞの道(共立出版)

YYYYの挔習、チヌムによる意思決定の挔習が玹介されおいたす。

  • コンサルタントの道具箱

隠れた意図のある䌚議(玢匕では「隠れた意図」)が玹介されおいたす。

  • ワむンバヌグのシステム思考法(共立出版)

間違い探しの挔習が玹介されおいたす。

  • ワむンバヌグのシステム行動法(共立出版)

性栌タむプの1぀であるMBTIが玹介されおいたす。

SWEST9のブラックボックス (2007/09/02)

SWEST9の分科䌚で䜿甚した挔習甚のブラックボックスをweb䞊に䜜成したした。

このブラックボックスは、4぀の数字を入力するず、それを倉換しお4぀の数字を出力したす。以䞋の曞籍を参考にしたした。

  • システムづくりの人間孊 (共立出版 ISBN4-320-02281-5) p.235

このブラックボックスは、以䞋の仕様になっおいたす。

  • 入力は4぀で、それぞれ0〜99の範囲の数字です。
  • 出力は4぀で、それぞれ-999〜+999の範囲の数字です。
  • 入力は50回たで可胜です(これはweb版では実装されおいたせん)。

党郚で5皮類甚意したしたが、挔習で䜿甚したのは最初の2皮類です。

  • [やさしい]
  • [ふ぀う]
  • [むず1]
  • [むず2]
  • [むず3]

[090903]远蚘: ブラックボックス挔習は、以䞋で䜿甚したした。

  • [開発プロセスを振り返る]
  • [開発プロセスを振り返る2]
  • [開発プロセスを振り返る3]

SWEST9で䜿甚したブラックボックス端末 (2007/09/20)

SWEST9の分科䌚で䜿甚した、挔習甚のブラックボックス端末の蚭蚈デヌタです。

抂芁

このハヌドりェアは、テンキヌず液晶を備えおおり、入力したデヌタに挔算をおこなっお衚瀺するようになっおいたす。これを利甚しお、ブラックボックスの挔習をおこなうこずができたす。

補䜜䟋の写真

web䞊でこのアルゎリズムを再珟したものが、 [SWEST9のブラックボックス] のペヌゞで䜓隓できたす。

補造マニュアル

  • デヌタ䞀匏ダりンロヌド: [bb070919.lzh]
    • プリント基板のガヌバヌデヌタ
    • PICの゜ヌスコヌド
    • 写真・図版

本ドキュメントは含たれおいたせんので、このペヌゞを印刷するか保存しおください。

なお、珟バヌゞョンのプリント基板(BB070902-A)の巊䞋には、䞍芁なビアがありたす。これは筆者の蚭蚈ミスで、最初は抵抗が入っおいたした。ナニバヌサル基板のずきに抵抗を぀けお動䜜確認をおこない、そのたた基板を補造しおしたったのですが、実際にはこの抵抗は必芁ありたせん。そこでデヌタに最䜎限の修正を加えお、ゞャンパヌにしおありたす。もっずきれいなデヌタも準備できおいたすので、補造しお動䜜を確認できしだい公開する予定です。

完成芋本

() ---- SWEST9で䜿甚

補䜜䟋1の写真

補䜜䟋2の写真

補䜜䟋3の写真

回路図・郚品衚

皮類 品番 数量 備考
IC PIC16F648A 1
LCD SD1602HULB-XA 1 SC1602BS-B等でも可
D 1S1588 2 たたは盞圓品
R 47Ω 1
1kΩ 4
C 0.1ÎŒF 3
SW タクトスむッチ 18
その他 18ピンIC゜ケット 1
ピン゜ケット 1 LCD接続甚
ピンヘッダ 1 LCD接続甚
電池ボックス 1
CR2032 1
基板 1 䞋蚘の基板たたはナニバヌサル基板
A-one 31031 1 キヌパッド甚フィルム
ゎム足 4

回路図

LCDモゞュヌルは5V駆動なので、PICのクロック出力を倍電圧敎流しお玄4.5Vにしおいたす。この電圧だず、特にコントラスト調敎も必芁ないようです。

回路䞊はスキャン線がフロヌティングになりたすが、゜フトりェアでフロヌティング状態が続かないようにし、特にハヌドりェアでの察策はおこなっおいたせん。気になる方は、スキャン線をプルアップしおください。

基板

電池ボックス・LCDモゞュヌルは、それぞれ2皮類のタむプに察応しおいたす。

  • [プリント基板PDF] (ガヌバヌデヌタは [bb070919.lzh] に含たれおいたす)

ナニバヌサル基板で䜜る堎合は、以䞋の写真を参考にしおください。

ナニバヌサル基板郚品面

ナニバヌサル基板半田面

マむコン

゜ヌスコヌドは [bb070919.lzh] に含たれおいたす。PIC-STARTなどでマむコンに曞き蟌んでください。

PIC16F648Aは秋月電子通商などで入手できたす。3Vで駆動でき、クロック内蔵です。党䜓の消費電流は実枬で2mAほどでしたので、200mAhのCR2032で100時間皋床駆動できるこずになりたす。

キヌパッド

レヌザヌプリンタ察応の癜色フィルムのラベルに、以䞋のPDFを印刷しお、切り取っお貌り付けおください。衚面のかすれが気になる堎合は、この䞊に透明なフィルムを貌っおしたうのもよいず思いたす。

  • [キヌパッドPDF] ---- 写真のものずは少し異なりたす。

最初はフィルムのねじれを心配しお瞊䞀列に切っおいたしたが、特に気にしなくおも良いようです。

キヌパッドの貌り付け䟋

ナヌザヌズマニュアル

以䞋は、操䜜方法の説明です。

リセット

電池を入れるず、以䞋の画面が衚瀺されたす。 Menu code:_

「1147」ず入力したす(これは起動パスワヌドです)。以䞋の画面が衚瀺されたす。 Press Enter key (Long)

ワヌクショップの堎合は、ここで参加者にブラックボックス端末を枡すずよいず思いたす。

教材の遞択

どの状態でも、Enterキヌを3秒以䞊抌すず、「教材の遞択」の画面になりたす。 Menu code:_

  • 起動パスワヌドの画面ず同じですが、Clearキヌを抌すず元の画面に戻りたす。

4桁の教材番号を入力したす。

  • 「3922」を入力するず、教材「やさしい」が実行されたす。
  • 「0647」を入力するず、教材「ふ぀う」が実行されたす。
  • 「9423」を入力するず、教材「むず1」が実行されたす。
  • 「2711」を入力するず、教材「むず2」が実行されたす。
  • 「3235」を入力するず、教材「むず3」が実行されたす。
  • 起動パスワヌド「1147」を入力するず、教材の実行カりントがクリアされ、さらに50回入力できるようになりたす。

数倀の入力

教材を遞択するず、以䞋の画面になりたす。 (-49)Input 00 00 00 00 Ok -「-49」は、入力できる残りの回数を瀺しおいたす。0番たで入力するこずができたすので、あず50回入力できたす。回数は、教材ごずに独立しおカりントされたす。

2桁の数倀を4組入力したす。

  • テンキヌを抌すず、カヌ゜ル䜍眮に数字が入力され、カヌ゜ルが右に移動したす。
  • ←→でカヌ゜ルを動かすこずができたす。
  • ↑は、盎前に実行した結果の画面に戻りたす(1回目のずきは、垞に0が衚瀺されたす)。
  • 「Ok」にカヌ゜ルを合わせおEnterキヌを抌すず、入力した数倀で蚈算がおこなわれ、「結果の確認」に進みたす。

結果の確認

蚈算がおこなわれるず、次の画面になりたす。 (-49)01 02 03 04 +002+005-002+001

  • 「-49」は、入力したずきの番号です。
  • 「01 02 03 04」入力した数倀がそのたた衚瀺されたす。
  • 「+002+005-002+001」は、2、5、-2、1の組が蚈算結果であるこずを瀺しおいたす。

叀い蚈算結果を呌び出すこずはできないので、ノヌトなどにメモした䞊で、次の数字を入力しおいきたす。

  • ↓は、数倀の入力画面に進みたす。ただし、すでに50回入力しおしたった堎合は、それ以䞊入力できたせん(番号が「0」になりたす)。

SWEST9で䜿甚したブラックボックス端末 (2007/10/29)

SWEST9の分科䌚で䜿甚した、挔習甚のブラックボックス端末の蚭蚈デヌタです。プリント基板の無駄な郚分を修正したした。

抂芁

このハヌドりェアは、テンキヌず液晶を備えおおり、入力したデヌタに挔算をおこなっお衚瀺するようになっおいたす。これを利甚しお、ブラックボックスの挔習をおこなうこずができたす。SWEST9の [開発プロセスを振り返る] で、この端末を利甚したワヌクショップをおこないたした。

補䜜䟋の写真

web䞊でこのアルゎリズムを再珟したものが、 [SWEST9のブラックボックス] のペヌゞで䜓隓できたす。

補造マニュアル

  • デヌタ䞀匏ダりンロヌド: [bb071029.lzh]
    • プリント基板のガヌバヌデヌタ
    • PICの゜ヌスコヌド
    • 写真・図版

本ドキュメントは含たれおいたせんので、このペヌゞを印刷するか保存しおください。

完成芋本

() ---- SWEST9で䜿甚

補䜜䟋1の写真 () ---- 叀い基板デヌタです

補䜜䟋2の写真 () ---- 叀い基板デヌタです

補䜜䟋3の写真 () ---- 基板巊䞋のゞャンパヌが修正されおいたす。

補䜜䟋4・5の写真

回路図・郚品衚

皮類 品番 数量 備考
IC PIC16F648A 1
LCD SD1602HULB-XA 1 SC1602BS-B等でも可
D 1S1588 2 たたは盞圓品
R 47Ω 1
1kΩ 4
C 0.1ÎŒF 3
SW タクトスむッチ 18
その他 18ピンIC゜ケット 1
ピン゜ケット 1 LCD接続甚
ピンヘッダ 1 LCD接続甚
電池ボックス 1
CR2032 1
基板 1 䞋蚘の基板たたはナニバヌサル基板
A-one 31031 1 キヌパッド甚フィルム
ゎム足 4

回路図

LCDモゞュヌルは5V駆動なので、PICのクロック出力を倍電圧敎流しお玄4.5Vにしおいたす。この電圧だず、特にコントラスト調敎も必芁ないようです。

回路䞊はスキャン線がフロヌティングになりたすが、゜フトりェアでフロヌティング状態が続かないようにし、特にハヌドりェアでの察策はおこなっおいたせん。気になる方は、スキャン線をプルアップしおください。

基板

電池ボックス・LCDモゞュヌルは、それぞれ2皮類のタむプに察応しおいたす。

  • [プリント基板PDF] (ガヌバヌデヌタは [bb071029.lzh] に含たれおいたす)

ナニバヌサル基板で䜜る堎合は、以䞋の写真を参考にしおください。

ナニバヌサル基板郚品面

ナニバヌサル基板半田面

マむコン

゜ヌスコヌドは [bb071029.lzh] に含たれおいたす。PIC-STARTなどでマむコンに曞き蟌んでください。

PIC16F648Aは秋月電子通商などで入手できたす。3Vで駆動でき、クロック内蔵です。党䜓の消費電流は実枬で2mAほどでしたので、200mAhのCR2032で100時間皋床駆動できるこずになりたす。

キヌパッド

レヌザヌプリンタ察応の癜色フィルムのラベルに、以䞋のPDFを印刷しお、切り取っお貌り付けおください。衚面のかすれが気になる堎合は、この䞊に透明なフィルムを貌っおしたうのもよいず思いたす。

  • [キヌパッドPDF] ---- 写真のものずは少し異なりたす。

最初はフィルムのねじれを心配しお瞊䞀列に切っおいたしたが、特に気にしなくおも良いようです。 () ---- 叀い基板デヌタです

キヌパッドの貌り付け䟋

ナヌザヌズマニュアル

以䞋は、操䜜方法の説明です。

リセット

電池を入れるず、以䞋の画面が衚瀺されたす。 Menu code:_

「1147」ず入力したす(これは起動パスワヌドです)。以䞋の画面が衚瀺されたす。 Press Enter key (Long)

ワヌクショップの堎合は、ここで参加者にブラックボックス端末を枡すずよいず思いたす。

教材の遞択

どの状態でも、Enterキヌを3秒以䞊抌すず、「教材の遞択」の画面になりたす。 Menu code:_

  • 起動パスワヌドの画面ず同じですが、Clearキヌを抌すず元の画面に戻りたす。

4桁の教材番号を入力したす。

  • 「3922」を入力するず、教材「やさしい」が実行されたす。
  • 「0647」を入力するず、教材「ふ぀う」が実行されたす。
  • 「9423」を入力するず、教材「むず1」が実行されたす。
  • 「2711」を入力するず、教材「むず2」が実行されたす。
  • 「3235」を入力するず、教材「むず3」が実行されたす。
  • 起動パスワヌド「1147」を入力するず、教材の実行カりントがクリアされ、さらに50回入力できるようになりたす。

数倀の入力

教材を遞択するず、以䞋の画面になりたす。 (-49)Input 00 00 00 00 Ok -「-49」は、入力できる残りの回数を瀺しおいたす。0番たで入力するこずができたすので、あず50回入力できたす。回数は、教材ごずに独立しおカりントされたす。

2桁の数倀を4組入力したす。

  • テンキヌを抌すず、カヌ゜ル䜍眮に数字が入力され、カヌ゜ルが右に移動したす。
  • ←→でカヌ゜ルを動かすこずができたす。
  • ↑は、盎前に実行した結果の画面に戻りたす(1回目のずきは、垞に0が衚瀺されたす)。
  • 「Ok」にカヌ゜ルを合わせおEnterキヌを抌すず、入力した数倀で蚈算がおこなわれ、「結果の確認」に進みたす。

結果の確認

蚈算がおこなわれるず、次の画面になりたす。 (-49)01 02 03 04 +002+005-002+001

  • 「-49」は、入力したずきの番号です。
  • 「01 02 03 04」入力した数倀がそのたた衚瀺されたす。
  • 「+002+005-002+001」は、2、5、-2、1の組が蚈算結果であるこずを瀺しおいたす。

叀い蚈算結果を呌び出すこずはできないので、ノヌトなどにメモした䞊で、次の数字を入力しおいきたす。

  • ↓は、数倀の入力画面に進みたす。ただし、すでに50回入力しおしたった堎合は、それ以䞊入力できたせん(番号が「0」になりたす)。

関連項目

[090903]远蚘: ブラックボックス挔習は、以䞋で䜿甚したした。

  • [開発プロセスを振り返る]
  • [開発プロセスを振り返る2]
  • [開発プロセスを振り返る3]

GPSデヌタロガヌの解析 (2008/02/27)

GPSデヌタロガヌのデヌタ解析甚PHPのデモです。

  • [起動する]
    • [゜ヌスの衚瀺]
    • [ダりンロヌド]
  • [GPSデヌタロガヌのドキュメント]

SWEST10のブラックボックス (2008/09/09)

SWEST10の分科䌚で䜿甚した挔習甚のブラックボックスをweb䞊に䜜成したした。

このブラックボックスは、前回のもの( [SWEST9のブラックボックス] )に加え、12桁の数倀を入力するずスコアが衚瀺されるプログラムを甚意したした。以䞋の曞籍を参考にしたした。

  • スヌパヌ゚ンゞニアぞの道 (共立出版 ISBN4-320-02563-6) p.264

挔習ではチヌムで入力する倀を考え、制限時間内でできるだけ高いスコアを埗られるように詊行錯誀したす。なお、入力回数は無制限です。

web版が、以䞋で䜓隓できたす。

  • [yyyy]

[090903]远蚘: ブラックボックス挔習は、以䞋で䜿甚したした。

  • [開発プロセスを振り返る]
  • [開発プロセスを振り返る2]
  • [開発プロセスを振り返る3]

DJ甹CDプレヌダヌ(PDF) (2009/05/07)

swest10でデモしたDJ甹CDプレヌダヌの、解説資料をダりンロヌドできたす。

別のむベントで配垃した資料のPDFを、以䞋に甚意したした。内容がただ少ないので、今埌充実させおいこうず考えおいたす。

  • [cdjpam0.pdf]

倧倉お埅たせしお申し蚳ありたせん。

[090903]画面に瞞暡様が出るこずがありたすが、この堎合はAcrobat Readerの線集メニュヌの環境蚭定で「画像のスムヌゞング」をOFFにしおください。

ピタゎラスむッチ (2009/09/03)

SWEST11の分科䌚で䜿甚した挔習甚セットを玹介したす。

正確には「ピタゎラスむッチ」ずいうテレビ番組の1コヌナヌずしお「ピタゎラ装眮」があるのですが、ここでは知名床が高いので「ピタゎラスむッチ」ず呌んでいたす。ドミノ倒しのように、最初に小さなアクションを起こすず、別の郚品に動きが䌝わっおいき、最埌に倧きなアクションが起こるずいうものです。

以䞋の曞籍の挔習を実珟しようずしおいろいろ悩んだのですが、最終的にピタゎラスむッチを䜜るずいう圢を思い぀きたした。

  • スヌパヌ゚ンゞニアぞの道 (共立出版 ISBN4-320-02563-6) p.133

たず各チヌムに、以䞋のセットが配られたす。

  • 朚片 ×16 (ゞェンガ)
  • 鉛筆 ×12
  • 目玉クリップ ×10 (透けるトンCLIP http://www.velos.co.jp/sub9500-skc22cy.html )
  • 鉛筆のキャップ ×8 (内1぀は旗が぀いおいる)
  • キヌリング ×6
  • ビヌ玉 ×4
  • 消しゎム ×4
  • 定芏(20cm)
  • これらを入れる箱

セットの写真

チヌムは、これを䜿っおピタゎラスむッチを䜜りたす。

完了するず、以䞋のものが配られたす。

  • ノヌト
  • クリップボヌド
  • ペン

チヌムは、装眮の䜜り方をノヌトに曞いおドキュメントずし、クリップボヌドにずめたす。ただし、ドキュメントに絵を含めるこずはできたせん。

ドキュメントを回収し、いったん装眮を分解しおもらったあず、他のチヌムにドキュメントを枡しお装眮を再珟しおもらいたす。

ドキュメントでわからない点がある堎合は、ノヌトに曞いおもらえば、講垫が䜜ったチヌムに枡しお回答をもらうこずができる、ずしたした。

この挔習は、以䞋で䜿甚したした。

  • [開発プロセスを振り返る3]
  • [開発プロセスを振り返る4] (動画あり)

GPSデヌタロガヌ (2008/02/28)

暡型ロケットに搭茉可胜で、保守の容易な、GPSによる䜍眮蚘録システムの開発をおこないたした。

ダりンロヌド

  • マニュアルを含む党デヌタ: [gl080227.tgz]
    • プリント基板デヌタのみ: [gl050617.lzh]
    • PIC゜ヌスのみ: [gpslog3.src]

以䞋のコンテンツは、SWEST7で印刷配垃したドキュメントを、このサむト甚にフォヌマット倉換したものです。

GPSロガヌ オペレヌションマニュアル

システムの抂芁

このGPSロガヌは、モデルロケットに搭茉され、GPSによっおモデルロケットの䞉次元の飛行経路を芳枬・蚘録したす。GPSロガヌは、以䞋の3぀の郚分から構成されおいたす。

芳枬蚘録郚は、モデルロケットに搭茉する郚分です。防氎のためのフィルムケヌスに栌玍され、GPSから受信したデヌタをメモリカヌドに蚘録したす。

充電郚は、芳枬蚘録郚のバッテリヌを充電する郚分です。亀流100Vの電源を䜿甚しお、8時間のタむマヌによりバッテリヌを充電したす。

解析衚瀺郚は、芳枬蚘録郚によっお蚘録されたメモリカヌドのデヌタを解析し、画面に衚瀺する郚分です。この郚分はサヌバ゜フトりェアずしお提䟛され、ナヌザヌのPCからネットワヌク経由でアクセスしたす。なお、サヌバ゜フトりェアをナヌザヌのPC䞊にむンストヌルし、スタンドアロヌンで動䜜させるこずも可胜です。

芳枬蚘録郚の仕様

|芳枬方法|12チャンネルGPS| |芳枬デヌタ|緯床、経床、高床、衛星捕捉数、時刻| |準備時間|最倧10分| |蚘録媒䜓|mini-SDカヌド(付属) 10分版×1、1時間版×1| |蚘録圢匏|FAT16(制限あり)| |蚘録間隔|1秒ごず| |入出力|メモリカヌドスロット×1、LED×1、充電/テスト甚コネクタ×1| |電源|内蔵バッテリヌ(3.6V 70mAh)| |動䜜時間|20分(準備時間を含む)| |圢状|盎埄33mm×高さ53mmの円筒圢| |重量|35g(メモリカヌドを含む)|

充電郚の仕様

|電源|亀流100V| |充電時間|8時間(0.2C充電)| |充電制埡|電流制限抵抗、メカニカルタむマヌ| |入出力|充電コネクタ×2|

解析衚瀺郚の仕様

|動䜜環境|むンタヌネットブラりザ、mini-SDカヌドむンタヌフェヌス、カラヌディスプレむ| |サヌバの動䜜環境|PHP4+GD2が䜿甚できる環境(兞型的には、WindowsたたはLinux䞊でapacheを䜿甚)| |入出力|蚘録ファむルの入力、画像デヌタ(PNG)の出力、PDFファむルの出力(オプション)| |出力内容|䜍眮ず高床の軌跡を立䜓衚瀺した俯瞰図、緯床・経床・高床・衛星捕捉数を時間軞にそっお衚瀺したグラフ|

䜿甚方法

以䞋の手順でGPSロガヌを䜿甚したす。

充電

| |

充電䞭の写真

  1. 芳枬蚘録郚のゞャンパスむッチがOFFになっおいるこずを確認したす。
  2. 芳枬蚘録郚ず充電郚のコネクタを接続したす。
  3. タむマヌを8時間にセットしたす。
  4. 充電郚をコンセント(亀流100V)に接続したす。
  5. タむマヌが終了したら充電完了ですので、コネクタを倖したす。

動䜜テスト

  1. メモリカヌドをメモリカヌドスロットに挿入したす。
  2. 芳枬蚘録郚のゞャンパスむッチをONにしたす。
    • →少ししお、LEDが1秒ごずに点滅したす。
  3. 動䜜を確認したら、ゞャンパスむッチをOFFにしたす。

芳枬蚘録の開始

  1. 芳枬蚘録郚のゞャンパスむッチをONにしたす。
    • →少ししお、LEDが1秒ごずに点滅したす。
  2. 10分以内に衛星が捕捉され、珟圚䜍眮がメモリカヌドに蚘録されおいきたす。

10分版のメモリカヌドを䜿甚した堎合には、衛星捕捉たではLEDが短く点滅し、メモリカヌドぞの蚘録はおこなわれたせん。衛星を捕捉するず、通垞の点滅になり、メモリカヌドぞの蚘録がおこなわれたす。

芳枬蚘録の終了

  1. ゞャンパスむッチをOFFにしたす。
  2. メモリカヌドをメモリカヌドスロットから取り出したす。持ち䞊げおロックを倖し、匕き抜いおください。

解析衚瀺

  1. メモリカヌドをナヌザヌのPCに接続したす。
    • →環境によっおは、メモリカヌドに関する衚瀺がおこなわれたす。
  2. むンタヌネットブラりザを起動し、サヌバ゜フトりェアのURLを入力したす。
    • →デヌタの登録画面が衚瀺されたす。
  3. メモリカヌドのデヌタ(GPS.LOG)を遞択し、送信したす。
    • →解析画面が衚瀺されたす。
  4. メモリカヌドを停止したす。
    • →メモリカヌドが取り出せるようになりたす。
  5. メモリカヌドをナヌザヌのPCから取り出したす。

解析画面の芋方

解析画面では緯床ず経床は、デヌタ党䜓の最倧倀ず最小倀の䞭間をれロずしお、メヌトルに倉換されお衚瀺されたす。緯床がy座暙、経床がx座暙になりたす。 | |

解析画面の写真

䞋偎には、時間の経過による、緯床・経床・高床・衛星捕捉数の倉化が、グラフずしお衚瀺されたす。蚘録開始が巊端で、瞊線は1分ごずに匕かれおいたす。䞭倮がれロで、暪線は100mごずに匕かれおいたす。経床(x)は青の線で、緯床(y)は緑の線で、高床は赀の線で瀺されおいたす。衛星捕捉数は黄色の面で瀺され、䞋端がれロ、䞭倮が6、䞊端が12です。

䞊偎には、䜍眮ず高床の倉化が俯瞰図で衚瀺されおいたす。灰色の亀差しおいる線は地衚(高床れロ)を瀺し、100m間隔で匕かれおいたす。緯床・経床・高床の倉化が赀の線で、それを地衚に投圱した緯床・経床の倉化が黒の線で瀺されおいたす。

トラブルシュヌト

芳枬蚘録郚で異垞が怜出された堎合には、LEDが以䞋のように点滅したすので、点滅の回数を数えおください。 2桁の゚ラヌ番号の堎合は 「十の䜍→短い䌑み→䞀の䜍→長い䌑み」 のように瀺されたす。 1桁の゚ラヌ番号の堎合は 「䞀の䜍→長い䌑み」 をくり返したす。 GPSロガヌ甚に初期化されおいないメモリカヌドを䜿甚するず、このような゚ラヌになりたす。 |11|メモリカヌドの認識(CMD0)で゚ラヌになりたした。| |12|メモリカヌドの認識(CMD1)で゚ラヌになりたした。| |13|メモリカヌドの認識(BLEN)で゚ラヌになりたした。| |2|ファむルの最埌たで蚘録したので、終了したした。| |31|メモリカヌドの読み蟌み(MBR)で゚ラヌになりたした。| |32|メモリカヌドのフォヌマット(M-SIG)が正しくありたせん。| |41|メモリカヌドの読み蟌み(PBR)で゚ラヌになりたした。| |42|メモリカヌドのフォヌマット(FAT16)が正しくありたせん。| |43|メモリカヌドのフォヌマット(P-SIG)が正しくありたせん。| |51|メモリカヌドの読み蟌み(RDE)で゚ラヌになりたした。| |52|蚘録するファむル(gps*.log)がありたせん。| |53|蚘録するファむル(gps*.log)が先頭16゚ントリにありたせん。| |61|ファむルの曞き蟌みで゚ラヌになりたした。| |71|メモリカヌドの読み蟌み(FAT)で゚ラヌになりたした。| |72|メモリカヌドのフォヌマット(FAT0)が正しくありたせん。| |73|メモリカヌドに䞍良セクタがありたす。|

それ以倖の堎合は以䞋のように刀断しおください。 |1秒ごずに短く点滅する|衛星捕捉を埅っおおり、正垞な状態です。| |1秒ごずに点滅する|芳枬蚘録がおこなわれおおり、正垞な状態です。| |ONにしたずきに点灯したたたになる|メモリカヌドが入っおいないか、接觊䞍良です。| |䞀瞬点滅したあず消灯したたたになる|GPSモゞュヌルからデヌタが受信できたせん。たたはバッテリヌがなくなりたした。| |途䞭から点灯したたたになる|バッテリヌがなくなりたした。| |途䞭から暗く点灯したたたになる|バッテリヌがなくなりたした。|

解析衚瀺郚の異垞は、以䞋のように刀断しおください。 |サヌバに接続できない|ネットワヌクが動䜜しおいるか、URLが間違っおいないか、サヌバが動䜜しおいるか、サヌバ゜フトりェアがむンストヌルされおいるかを確認しおください。| |メモリカヌドが読めない|メモリカヌドを接続したたたPCを起動するず認識しないこずがありたす。たた、環境によっおは認識に時間がかかるこずがありたす。| |画面に゜ヌスコヌドが衚瀺される|PHPがむンストヌルされおいるか確認しおください。| |画面に゚ラヌが衚瀺される|URLが間違っおいないか、ファむルやディレクトリのパヌミションが蚭定されおいるか、GDやPDFLIBがむンストヌルされおいるか確認しおください。| |衚瀺されるグラフが異垞|芳枬蚘録がうたくできなかった可胜性がありたす。|

䜿甚䞊の泚意

  • メモリカヌドはGPSロガヌ甚に初期化したものを䜿甚しおください。
  • GPSモゞュヌルの金属郚分はマむナス端子になっおいたすので、他の郚品に接觊させないようにしおください。
  • 充電コネクタを接続するずきには、コネクタの向きに泚意しおください。

GPSロガヌ 補造マニュアル

郚品衚

芳枬蚘録郚

皮別 型番 数 重量
バッテリヌ 3HB70 1 11.2g
GPSモゞュヌル GH-80 1 10.6g
フィルムケヌス 富士写真フィルム補 1 5.7g
プリント基板 - 1 1.3g
メモリカヌドアダプタ miniSD→SD 1 1.1g
メモリカヌド miniSDカヌド 1 0.9g
マむコン PIC12C509A 1
C 0.1ÎŒF 1
R 200Ω 1
LED - 1
ゞャンパスむッチ 2P 1
コネクタ SM09B-SSR-H-TB 1
ピンヘッダ 3×1P 1
スズめっき線
絶瞁テヌプ
合蚈 32.3g

充電郚

皮別 型番 数
タむマヌ AC100V 8時間 1
ACアダプタ AC100V→DC12V 1
DCゞャック 1
R 470Ω 2
ピンヘッダ 4×1P 1
コネクタ 3P 2
コネクタ 4P×1 1
リヌド線
熱収瞮チュヌブ

基板の仕様

基板は軜量化のため0.8mm厚にしたしたが、これは重芁ではありたせん。パタヌンが耇雑なのは、ピン配眮を詊䜜版(片面基板)ず同じにしたためです。倧きい䞞は、圓初ボタン電池を䜿う蚈画だった名残りです。

  • garber data : [gl050617.lzh] ()

プリント基板の画像

回路図

DIP版/衚面実装版

基板は、DIP郚品でも衚面実装郚品でも取り぀けられるようになっおいたす。 | | |

DIP版の基板写真

衚面実装版の基板写真

マむコン(PIC12C509A)は、DIP版の堎合は倖偎の穎を、衚面実装版であれば内偎のパタヌンを䜿っおください。

GPSコネクタは、DIP版の堎合は4Pのピンヘッダを、衚面実装版であればパタヌンを䜿っおください。DIP版の堎合、GPSモゞュヌルからの配線を4Pのコネクタに倉換する必芁がありたす。

CRずLEDは、DIP郚品ず衚面実装郚品のどちらでも䜿えるようになっおいたす。Cに぀いおは穎の間隔も2皮類甚意しおありたす。

GPSモゞュヌルの金属郚分が基板ず接觊しないように、絶瞁テヌプを貌っおください。

プログラムの曞き蟌み

マむコンは、プログラムを曞き蟌んだ状態で取り぀けおください。DIP版の堎合はIC゜ケットを䜿甚するこずもできたす。

  • [gpslog3.src]
  • [gpslog3.lst]
  • [gpslog3.obj]

なお、コネクタずメモリカヌドに䜕も接続しない状態であれば、曞き蟌みに必芁な端子はオヌプンになりたすので、実装埌の曞き蟌みも可胜です。なお、筆者の環境ではV+(ピン1)をラむタヌに接続した状態では、パスコンの圱響かうたく読み曞きできたせんでした。

レギュレヌタ

蚭蚈倉曎の経緯により、3端子レギュレヌタのパタヌンが残っおいたす。単3電池などで駆動する堎合には、3端子レギュレヌタを実装するず3.3Vを䜜るこずができたす。電源は充電コネクタから䟛絊したす。

3端子レギュレヌタのピン配眮に合わせられるように、2皮類の穎が甚意しおありたす。センタヌグランドのタむプであれば、衚面実装にも察応しおいたす。 | |

レギュレヌタの実装写真

メモリカヌドアダプタ

端子郚にスズめっき線を半田付けしおおき、これを基板に半田付けしたす。党郚の郚品の半田付けが終わったら、スズめっき線の郚分で2぀に折るようにしお、基板に重ねたす。 | |

メモリカヌドアダプタ実装途䞭の写真

メモリカヌドアダプタには、熱に匱い皮類もあるようなので、泚意しおください。

バッテリヌの実装方法

珟状の基板では、バッテリヌの足をうたく曲げる必芁がありたす。面倒であれば、メモリカヌドアダプタのマむナス端子に぀ないでしたっおも構わないず思いたす。 | | |

バッテリヌ実装の写真

バッテリヌ実装の写真(別アングル)

充電郚

DCゞャックのマむナス端子を少し现く加工しお、4Pのピンヘッダを差し蟌み、半田付けしお固定したす。DCゞャックのプラス端子から、ピンヘッダの䞡偎の端子に、それぞれ抵抗を半田付けしたす。絶瞁のため、この状態で熱収瞮チュヌブをかけるずよいでしょう。あずはコネクタを配線しお完了です。芳枬蚘録郚のコネクタは、䞭倮のピンがマむナスです。 | |

充電郚の写真

タむマヌは、家庭甚の12時間タむマヌを䜿いたした。「オフのみ」が指定できるタむプであれば、24時間タむマヌも䜿甚できたす。

メモリカヌドの初期化

メモリカヌドはあらかじめFAT16でフォヌマットし、gps.logずいう蚘録甚ファむルを栌玍しおおきたす。gps.logは自動的には倧きくならないので、あらかじめ蚘録するサむズに合わせお倧きくしおおきたす。

  • [gps.log] (1時間版)
  • [gpsd.log] (10分版)

gps.logはルヌトディレクトリの最初の16゚ントリ以内に眮く必芁がありたすが、フォヌマット盎埌に1ファむルだけコピヌすれば、問題ありたせん。たた、FAT16でフォヌマットする環境が甚意できない堎合は、確実にFAT16でフォヌマットされおいる256MBのメモリカヌドを䜿甚する方法もありたす。

ファむル名がgpsd.logになっおいるず、衛星捕捉たではメモリカヌドぞの蚘録がおこなわれたせん。

サヌバ環境の構築

PHPずGD2が動䜜するHTTPサヌバが必芁です。無償で入手できるものずしおはApacheがあり、商甚サヌバなどで数倚くの実瞟がありたす。 Windows版もUNIX版もありたすので、環境に合ったものを遞択しおください。なお、いわゆるホスティングサヌビスでは、これらがはじめから提䟛されおいるものも倚数ありたす。

PHPはサヌバサむド蚀語で、HTTPサヌバからCGIで起動するか、たたはHTTPサヌバにモゞュヌルを組みこんで䜿甚したす。たた、PHPにはGD゚クステンションを組みこんでおく必芁がありたす。ここたでの䜜業は、むンタヌネットや曞籍にさたざたな情報が出おいたすので、参照しおください。

蚭定が正しければ、glogana.phpをHTTPサヌバからアクセスできるディレクトリに眮き、webブラりザからアクセスするず、解析画面が衚瀺されたす。

  • [glogana.php]

GPSロガヌ 蚭蚈メモ

開発の動機

このシステムは、2004幎8月に実斜されたSWEST6䌚堎で、Surveyorチヌムが耇雑な蚭蚈のGPSロガヌの調敎に苊劎しおいたのを芋お、もっず単玔で誰にでも䜜れるGPSロガヌを蚭蚈しようず考えたこずがきっかけずなっお生たれたした。

そのずき苊劎しおいたのは、フラットパッケヌゞの半田付けず、DC-DCコンバヌタのラッチアップでした。GPSロガヌを、誰でも補造できるように再蚭蚈(リファクタリング)するこずが、このプロゞェクトの目的です。

芁件

GPSロガヌは、モデルロケットの飛行埄路を蚈枬するのに䜿甚したす。モデルロケットは、火薬を燃焌しお埗られるガスの噎射により、高床100m皋床たで䞊昇したす。その埌、モデルロケットはパラシュヌトを開いお地䞊たたは氎䞊に降䞋したす。GPSロガヌを䜿うず、高床も正確に枬定するこずができたす。

モデルロケットに搭茉する以䞊、GPSロガヌはできるだけ小さく、軜いこずが望たしいのですが、前回は防氎を兌ねたフィルムケヌスを䜿甚しおいたしたので、このプロゞェクトでも同じものを䜿甚するこずにしたした。倧昔の雑誌の蚘事(初歩のラゞオ?)で、コニカ(圓時はサクラカラヌ)よりもフゞのフィルムケヌスの方が防氎性が高いず読んだ蚘憶があり、富士写真フィルムの䜎感床甚フィルムケヌスを䜿甚しおいたす。

電源は内蔵する必芁がありたすので、電池を䜿甚したす。

それ以倖の芁件ずしお、䜜りやすいこずず、郚品が入手しやすいこずを重芖したした。なお、GPSモゞュヌルの郚品に぀いおは、前回ず同じものを䜿甚しおいたす。

蚭蚈コンセプト

芁件を満たすために、どのような方針で蚭蚈をおこなうかですが、マルチメディアカヌド、たたはその䞊䜍芏栌のSDカヌドを䜿甚するずいう方針を仮定したした。これは以前「マルチメディアカヌドのSPIモヌドはクロック同期シリアルでアクセスできるので制埡が簡単」ず知人から聞いおいたためです。個人的に経隓を積んでおきたかったずいうのもあっお、資料を調査し、採甚したした。

サむズ的にも合栌のはずだったのですが、適圓なコネクタを手配し、カヌドを差しおフィルムケヌスに入れおみたずころ、厳しいこずがわかりたした。コネクタの䜜りによっお倧きさが違うのだず思いたすが、郚品が手配しにくくなるのは芁件に反したす。そこで、携垯電話やMP3プレヌダヌ向けに出回っおいる mini-SDカヌドを䜿甚し、SDカヌドぞの倉換アダプタそのものを゜ケットにするように考えたした。mini-SDカヌドは、アダプタ付きの補品が各瀟から提䟛されおいるため、入手は容易です。

なお、本システムではmini-SDカヌドをマルチメディアカヌドの䞊䜍互換品ずしお䜿甚しおいるのですが、以降の説明ではこれらを単に「SDカヌド」ず呌ぶこずにしたす。

フラッシュメモリLSIを基板に実装した堎合ずは異なり、SDカヌドは着脱可胜ですから、GPSロガヌは蚘録機胜だけにし、別の機噚にSDカヌドを差しお読み出すこずも可胜になりたす。これにより、GPSロガヌの単玔化・軜量化が芋蟌めたす。

SDカヌドはPCでも読めるのですが、FATなどの暙準的なフォヌマットでない堎合には、PC甚の専甚゜フトりェアを開発する必芁がありたす。これは、 PCの環境の倉化(OSのバヌゞョンアップなど)によっお動かなくなる危険があり、保守性の䜎䞋に぀ながりたす。䞀方、もしFATで曞き出せれば、どんな PCでも読み出せるこずになり、保守性ずシステムの単玔化が期埅できたす。そこで、䜕らかの圢でFATを曞き出すこずが目暙になりたす。たた、分析システムがPCに䟝存しおしたったのでは意味がないので、分析システムを動かすプラットフォヌムに぀いおの怜蚎も必芁です。

蚭蚈の詳现

電源

今回の蚭蚈では昇圧はおこなわず、3.3Vのレギュレヌタの䜿甚もしくは3.6Vの盎接入力ずしおいたす。GPSモゞュヌルは3.3V皋床を必芁ずし、 100mA近く消費するので、圓初は3V200mAhのコむン電池(CR2032)を2぀盎列にしお、レギュレヌタで3.3Vにする方針でいたした。基板を起こした埌に、コむン電池の攟電胜力に぀いお指摘をいただき、倧電流攟電が可胜なNiMH電池に倉曎したした。最終的に、SANYOの3HB70 (3.6V 公称容量70mAh)たたは、VARTAの互換品を䜿うこずにしたした。いずれも、通信販売などで幅広く入手できたす。倧電流攟電なので、30分〜1時間で電池がなくなる蚈算になりたす。

充電は、12VのACアダプタから電流制限抵抗を通しお8時間充電するずいう単玔なものです。

蚘録メディア

mini-SDカヌドは32〜512MBのものが、各瀟から販売されおいたす。PCショップなどで賌入できたす。

マむコン

個人的に実瞟のあるPICの䞭で3.3Vが䜿えるものずなるず、PIC12C509Aが思い぀きたす。これは8ピンのマむコンで、4MHzのRCクロックを内蔵しおいるため、郚品点数が少なくできるずいう利点がありたす。比范的叀く、機胜も少ないのですが、フラットパッケヌゞもあり、倚数の店舗で入手できたす。8ピンのうち電源は2ピンで、GPSモゞュヌルずの送受信に2ピン、SDカヌドのアクセスに4ピンを割り圓おるこずになりたす。

゜フトりェアの機胜

PIC12C509AにはRAMが41バむトしかないため、普通のやり方ではFATを扱うこずができたせん。぀たり、1セクタ512バむトをメモリ䞊に読み蟌み、䞀郚を倉曎しおから曞き戻すずいう凊理をおこなうこずができたせん。そこで、あらかじめPCを䜿っおメモリカヌド䞊にファむルを甚意しおおき、このファむルのデヌタ郚分を1セクタ単䜍で曎新しおいく方法を取るこずにしたした。

GPSモゞュヌルからの受信はシリアル(9600N81)ですが、これの受信バッファも取れたせん。こちらに぀いおは、GPSモゞュヌルの送信が間欠的であり、1秒に䞀床、䜕十バむトかがたずめお来るのを利甚しお察応したす。具䜓的には、受信したデヌタはそのたたセクタデヌタずしおSDカヌドに曞き出したす。送信が途切れたずころで、ダミヌデヌタを曞き蟌んでセクタの残りを埋め、次のセクタに進み、次のデヌタの受信を埅ちたす。SDカヌドは、セクタの途䞭では曞き蟌み埅ちは発生したせんので、シリアルデヌタをそのたた曞き蟌んでも取り萜ずしはなく、デヌタの途䞭でセクタが終わるこずもありたせん。

なおGPSモゞュヌルから来るデヌタはバむナリですが、デバッグのしやすさ、ダミヌデヌタの識別のしやすさを考え、デヌタは16進ダンプ圢匏でテキストずしお曞き蟌みたす。

LED衚瀺

PIC12C509Aの入出力はすべお䜿甚しおしたっおおり空きがないのですが、動䜜の衚瀺がほしいずころです。そこで、SDカヌドのCS端子にLEDを぀なぎ、アクセス䞭は点灯するようにしたした。

䜕らかの異垞時には点滅回数で゚ラヌコヌドを衚瀺するようにしおいたす。これは昔、自動車敎備の雑誌で読んだ、自動車の゚ンゞン制埡コンピュヌタの゚ラヌログ機胜を参考にしたものです。

分析システムのプラットフォヌム

分析システムはGUI環境䞊で䜿甚したいわけですが、普及しおいるWindowsマシンは将来のバヌゞョンアップなどに心配があり、䞀方でオヌプンな Linuxは誰でも簡単に利甚できるずは蚀い切れない状況です。モデルロケットの打ち䞊げ珟堎にPCを持ちこむこずにも䞍安がありたす。そこで、比范的埌発のサヌバサむドスクリプトであるPHPを䜿甚し、むンタヌネットブラりザを䜿っおアクセスする方法を採甚したした。

PHPは無償で利甚できるサヌバサむド蚀語で、Apacheなどの䞻芁なHTTPサヌバから利甚するこずができたす。WindowsにもLinuxにも察応しおいたす。暙準でPHPが利甚できるホスティングサヌビスも倚数あり、公開ディレクトリに「.php」のファむルを眮くだけで動䜜させるこずができたす。このため、クラむアントはむンタヌネットブラりザさえ動䜜すればPCでもMacでもケヌタむでもよく、サヌバ偎は最悪でもPC+Linux+ Apache+PHPずするこずで確実に構築するこずができたす。たた、誰かが構築したサヌバが公開されおいれば、クラむアント偎は䜕もむンストヌルしなくおもそこにアクセスするだけで動䜜したすので、プラットフォヌムぞの䟝存が最小限に抑えられたす。

PHPの蚀語仕様は、連想配列あり、クラスあり、倚数の拡匵モゞュヌルありで、今回のようにファむルアップロヌド凊理をおこなったり、画像の動的生成をおこなったりするこずも簡単にできたす。たずえば秋月電子通商のオンラむンショップ( http://akizukidenshi.com/ )もPHPで䜜られおいるようです。

その他

GPSモゞュヌルは、GH-80ずいう小型のものを甚意しおいただきたした。

䜜りやすさを考え、DIP郚品のみでも䜜れるようにしたした。コストは圧瞮したいので、基板は共甚になっおいたす。

詊䜜品

最初に、SDカヌドぞのアクセスを怜蚌するための詊䜜基板を䜜りたした。シリアルはPCに接続し、入力したアドレスのセクタダンプなどをおこなうものです。その埌、MBR(マスタヌブヌトレコヌド)などの管理領域の読み蟌みをテストし、最終的にはメモリカヌドの先頭ファむルをシリアルに出力するテストをおこないたした。ここたでくれば、読み蟌みを曞き蟌みに倉曎するこずで曞き蟌みが可胜になりたす。

GPSモゞュヌルずの通信は、たずレベルコンバヌタ(トランゞスタ2個)を䜿っおPCに接続しおテストし、その埌PICに持っおいきたした。

GPSモゞュヌルの感床が䜎い問題が発芚し、受信デヌタをLCDに衚瀺するためのボヌドも甚意したした。LCDモゞュヌルは5Vなので、PIC16F84Aを䜿甚したした。

プリント基板のアヌトワヌクですが、詊䜜品ず同じピン配眮にしたため、電源が匕き回されお完成床が䜎くなっおいたす。圓初はコむン電池2個を盎列にしお6Vを埗る考えだったため、3端子レギュレヌタのパタヌンが残っおいたす。

PICによるFATアクセス

PIC12C509Aはメモリが少ないため、セクタのデヌタを1バむトず぀読み蟌みながらのデヌタ凊理ず、1セクタたずめおのデヌタ曞き蟌みしかできたせん。SDカヌドのブロック長蚭定機胜を䜿い、1セクタ=1バむトにする方法も考えたしたが、あらゆるSDカヌドでサポヌトされおいるか自信がなかったこず、シリアルの受信速床に远い぀けない可胜性があるこずを理由に芋送りたした。ちなみに、PIC12C509Aにはシリアル通信のためのハヌドりェア (SIO)もありたせん。

管理領域の読み蟌みに぀いおは、セクタリヌドコマンドを発行した埌、必芁なデヌタが来るたで読み飛ばし、その埌デヌタを読んで刀断し、残りを読み飛ばすずいう動䜜になりたす。FATから次の゚ントリを読み出す凊理は、たずえば最初の10バむトは読み飛ばし、次の2バむトを読み蟌み、その埌の500バむトは読み飛ばす、ずいう凊理になりたす。1クラスタごずにこの凊理をおこなうわけですが、SDカヌドのアクセスは高速なので、シリアルデヌタが途切れたずきに凊理するこずで十分に間に合いたす。今回の実装では、このタむミングで250ミリ秒間LEDを消灯し、動䜜の衚瀺をおこなっおいたす。

動䜜は、最初にMBR(マスタヌブヌトレコヌド)を読み蟌んでパヌティションテヌブルから最初のパヌティションの開始セクタを取り出し、そこからPBR (パヌティションブヌトレコヌドたたはBIOSパラメヌタブロック)を読み蟌みたす。PBRを芋お、FATのセクタ数ず、1クラスタあたりのセクタ数を埗たす。ここからRDE(ルヌトディレクトリ゚ントリ)のアドレスが求たり、最初の1セクタ(16゚ントリ)の䞭から、曞き蟌み察象のファむル名を芋぀けお、その先頭クラスタに曞き蟌みを開始したす。1クラスタが2セクタ以䞊ある堎合は、セクタ数だけくり返したす。1クラスタの曞き蟌みが完了したら、 FAT(ファむルアロケヌションテヌブル)を読み蟌み、次のクラスタ番号を埗お、曞き蟌みを続けたす。

圓然、この方法では管理領域の曎新はできず、ファむルサむズや曎新日時は元のたたになりたす。たたFAT12に぀いおは、1゚ントリが2セクタにたたがる堎合があるため、察応を芋送りたした。

その他

内蔵プルアップ抵抗

PIC12C509Aには、レゞスタの蚭定で、いく぀かのピンのプルアップ抵抗を有効にするこずができたす。そこで、GPSモゞュヌルからのシリアル受信端子ず、SDカヌドからのデヌタ受信端子は、プルアップ抵抗の効くピンに割り圓おるこずで、倖郚のプルアップ抵抗を節玄するこずができたす。

ワンタむムROMでの倀の調敎

PIC12C509AのダむはEPROMになっおおり、開発は窓付きのパッケヌゞ(JWタむプ)を䜿甚したす。組み蟌み時には窓がなく消去できないワンタむム品を䜿うのですが、動䜜結果を芋お倀を調敎したい堎合もありたす。

このずきは、EPROMの先頭郚分に「movlw 7fh」を、続いお「andlw 0ffh」をいく぀か(筆者の堎合は8〜16個)眮き、最埌に「movwf param0」のようにしおメモリに保存したす。「andlw 0ffh」のバむナリコヌドは0xeffで、動䜜は「W =& 0xff」なのでWレゞスタの倀は倉化したせん。したがっおこのコヌド列は、最初に「movlw 7fh」でWレゞスタが0x7fになったあず、「andlw 0ffh」の䞊びでは䜕も起きず、最埌に「movwf param0」でメモリに保存されるこずになりたす。この状態では、0x7fがメモリに保存されたす。

倀を倉えたいずきは、最初の「andlw 0ffh」を「movlw 34h」のように倉曎したす。「movlw 34h」のバむナリコヌドは0xc34で、䞋䜍8bitがオペランドになりたす。EPROMは、初期化時は党ビットが1で、曞き蟌むず0になりたすので、 0xeffに0xc34を䞊曞きするこずが可胜なのです。

必芁であれば、この䞊びを䜕組か持っおおくず、たずえばクロックやタむマヌの調敎、ステッピングモヌタの速床の調敎、ストロヌクの調敎、IDの曞き換えなど、様々な目的に利甚するこずができたす。

逆差し察策

私は基板偎のコネクタはピンヘッダを䜿うこずが倚いのですが、逆差しを防止できないずいう欠点がありたす。そこで、逆差ししおも逆電圧がかかったりしないように、配列を工倫しおいたす。

ケヌタむ察応

将来的に携垯電話からのむンタヌネットアクセスを考慮しお、衛星捕捉たで蚘録を開始しないモヌドを甚意したした。ファむル名をgpsd.logにするずこのモヌドになり、ファむルサむズが小さくお枈むため、携垯電話のような䜎速通信の機噚に向いおいたす。mini-SDカヌドからのファむルアップロヌドができる携垯電話があれば、そのたたサヌバに送信しお結果を分析するこずができたす。

たた、imexportずいうディレクトリがあるず、その䞭のgps.logを怜玢するようになっおいたす。これは、このディレクトリに添付ファむルを栌玍する携垯電話に察応するためのものです。

トラブルの蚘録

ボタン電池の攟電電流

圓初はコむン電池(金属リチりム䞀次電池)を䜿う予定だったのですが、ある方に指摘されおデヌタシヌトを調べたずころ、連続した倧電流攟電は保蚌倖のようでした。参考にしたデヌタシヌトを以䞋に瀺したす。

mini-SDアダプタの接続方法

mini-SDアダプタはプラスチック補のため、熱に匱いずいう心配がありたした。そこで、初めお導電性接着剀を䜿っおみたのですが、それなりにコツが必芁なようです。修正ペン型のものは粘性が䜎く、mini-SDアダプタの端子ガヌドの䞋に浞透しお端子間で短絡しおしたいたした。たた、固たったあずは脆いようです。2液混合゚ポキシ型も詊しおみたのですが、結果的に原因䞍明で端子間の短絡が発生したした。

導電性粘着剀を䜿甚した銅箔テヌプ(シヌルド甚)も詊したのですが、安定した接続が埗られたせんでした。最終的に、補造マニュアルにあるように、半田付けで察応したした。

アドレスの制限

PIC12C509Aにはメモリが2バンクありたす。0〜0x1fず、0x20〜0x3fで、それぞれ䞀郚のみ実装されおいたす。バンクはFSR(ファむルセレクトレゞスタ)でアドレスを指定するず切り替わるのですが、このずき盎接アドレスでアクセスするメモリにも圱響がありたす。FSRを0x30にするず、0x20〜0x3fのバンクが有効になるため、0x14のメモリぞの読み曞きは実際には0x34におこなわれたす。このため、どちらのバンクからもアクセスする倉数は、0〜0xfの範囲に眮く必芁がありたす。なお、実際に䜿甚可胜なメモリは、7〜0x1fず0x30〜0x3fの41バむトです。

たた、PIC12C509Aには1024ワヌドのプログラムメモリがありたすが、call先に指定できるアドレスは0〜0xffずいう制限がありたす。たた、goto先に指定できるアドレスは0〜0x1ffず0x200〜0x3ffのどちらか片方のみで、ステヌタスレゞスタで切り替える仕組みになっおいたす。サブルヌチン類は先頭に固めおおき、サブルヌチン内のgotoが正垞に動䜜するよう、埌半512ワヌドから呌び出す堎合にはステヌタスレゞスタを蚭定しおおく必芁がありたす。

ちなみに、PIC12C509Aではcallのネストは2回たでしかできたせん。メむンルヌチンからrssendを呌び、その䞭からrswaitを呌ぶこずはできたすが、それ以䞊呌ぶず、スタックが䞊曞きされおしたい、メむンルヌチンに戻れなくなりたす。

PICの内蔵クロック

PIC12C509の内蔵4MHzクロックは、レゞスタに埮調敎パラメヌタを曞き蟌んで䜿甚したす。工堎出荷時は5Vで校正された倀が、プログラムメモリの最埌に曞き蟌たれ、電源投入時はここから実行が開始されたす。

シリアルの受信化け(ストップビットがビット7に出おしたう)が出たずき、このシステムの動䜜電圧である3.6Vではクロックが遅くなっおいるのではないかず想像したのですが、実際に蚈枬しおみたずころ圱響のあるような遅れは芋られたせんでした。これは結局、定数のミスず刀明したした。

GPSモゞュヌルの受信感床

調査䞭ですが、このシステムでは、衛星捕捉胜力に぀いお、GPSモゞュヌルの実力が発揮できおいないようです。電源の問題、シヌルドの問題などが考えられたす。今たでの実隓結果は、以䞋の通りです。

battery type PIC type case type log status
NiMH direct flat in film-case [gl050718.log] broken
UM3x3 regulated DIP-JW open [gln50807.log] good
UM3x3 regulated DIP-JW with Cu plate(50x50) [gls50807.log] good
NiMH direct DIP-JW in film-case [gl050813.log] bad
NiMH + 470uF DIP-JW in film-case [gle50814.log] bad
NiMH + 470uF DIP-JW with Cu plate(50x50) [gl050815.log] good
NiMH DIP-JW open [gl050817.log] good(1.5-2min)

振り返り

䜕もしなくおも動くくらい、単玔な蚭蚈を目指したのですが、GPSモゞュヌルの感床の問題は原皿執筆時点では未解決です。それ以倖に぀いおは、ハヌドりェアの問題は臎呜的なものは避けられ、期埅通りの結果が埗られたず考えおいたす。

参考文献

  • TECH I Vol.14 PCカヌド/メモリカヌドの培底研究(CQ出版瀟)
  • FAT FSフォヌマットの実装に぀いおの芚え曞き( http://www.geocities.co.jp/SiliconValley-PaloAlto/2038/fat.html )
  • その他、各皮デヌタシヌト・マニュアル

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published