Blog2Viewer

以前、Movable Typeで運用していたブログの内容を表示させるために作成したページです。
YMMF(Yamaguchi Mini Maker Faire)参加報告
130811a88月10日(土),11日(日)に山口市のYCAMで開催されたYMMF(Yamaguchi Mini Maker Faire)に九州プログラミング研究会として参加した。メンバーは、私とJuju氏とTOMO氏。


130810a110日土曜日の早朝6時に熊本の自宅を車で出発、7時45分に福岡でTOMO氏をピックアップし10時に山口の会場に到着した。荷物が多いので車で移動できると大変楽だ。会場に無料駐車場があるが、来場者にあけておくため出展者は隣のケーブルTV会社の駐車場に誘導される。

YCAM(Yamaguchi Center for Arts and Media)は山口情報芸術センターだそうで、計算機を使った芸術、のための美術館という感じだろうか。市立図書館と一緒に広々とした洒落た建物だ。こんな施設があるなんて羨ましい。

今回のYMMF開催はYCAM10周年の記念行事のひとつだそうだ。会場は1階のスタジオA。2階までの吹き抜けで結構ひろい。昨年のMFT2012のメイン会場、日本科学未来館1階企画展示ゾーンの半分ぐらいの大きさはあるかもしれない。大きな2つのプロジェクタのスクリーンがぶら下げられ、スケジュールやツイッターの画面が表示されていた。


130811a5会場につくと、自分の展示場所の島を探し、割り当てられた机で準備を始めるが、私は箱から出すだけで、ほぼ完了。すぐ暇になる。TOMO氏は、まだ製作したいものがあるらしく、ひととおり展示物を並べた後、製作作業に入る。TOMO氏の展示物は、パタパタ時計。コイルを巻くところからの自作。大人には懐かしく、子供は初めて見たようで受けていた。時間の情報はPCから赤外LED経由で送られているので時間表示は秒単位まで合っている。


130810b3Juju氏は仕事の関係で初日は参加できないかもしれないからと、別行動だったのだが、意外に早く会場に到着。展示物の準備を始める。最近自作し使用した結婚式のメッセージボードを展示した。



130810b6初日は、12時から開場。特にアナウンスもなく、なんとなくスタートする。出展者は多いが、見学は来るのだろうかと心配するが、徐々に来始める。最終的には子供連れを中心にいろんな人がかなり大量に来場したと思う。東京で開催されたMFTとは比較にはならないが、山口でこれだけ来ればなかなかのものだと思う。


130811b1出展者は、地元山口の大学以外にも福岡や関西、東京からも多く着ていた。となりの島はDaily Portal -Zだった。


130810b0私の展示は、光る筒と基板3種の物販。光る筒の改良点は、緑色のLEDを高輝度のものに取り替えたこと、PS/2キーボードを接続したこと、回転部に赤外LED経由で情報を伝達可能にしたこと、回転を低速にし横方向の分解能をあげたこと、ソフトウェアのバグフィックスなど。

キーボードから、パターンの切り替え、回転の停止、速度変更などを可能にしたので、見学者に自由に操作してもらおうと思っていたのだが、フルキーボードで使わないキーが多くてわかりにくかったのか、操作する人は少なかった。まぁでも光物だし、そこそこ受けていたとは思う。何人かの人に、光る筒の値段を聞かれた。売るとしたらいくらぐらいになる?という感じだ。「試行錯誤を重ねたものなので、これでは値段を計算出来ない。」と言って誤魔化したが、この質問は結構めんどくさい。材料費の合計を答えても、ちがうと思うし、そもそも合計を計算していないし、製作時間も記録していない。

基板の物販の中身はMFT2012の時とかわらないが、ダイソーで買ったプライスシートに100円とか200円とか書いていたので、人目は引いたようだ。覗きこむ人は多かった。


次は11月のMFT2013だ。今回は抽選になるのだろうか。出展できるといいなぁ。出店できるのであれば、光る筒の改良版に加えて、新作ひかり物と物販用基板の新作も用意したい。








PIC32MXに手を出す
130814a2ある程度のROM/RAM容量があってDIPパッケージがある安価なCPUが欲しくなり、PIC32MXに手を出す。最初はLPC1114あたりを考えていたのだが,できればUSBも使いたいということで調べていたらPIC32MXは使えるらしい。秋月電子で200円ぐらいで買える。PinguinoというプロジェクトでgccやIDEも提供されているらしいとうことでPIC32MXに手を出すことにした。

すzのAVR研究: PIC32MX220F032B メモやマイコン風雲録: 秋月でPIC32MX 28pin DIP版出るを参考に試作基板を製作。PIC32MX - AVR etcにあったLチカのプログラムをpic32progで書き込んでLEDが点滅した。

pic32progはWindows用バイナリの在処が、わからなかったのでソースをダウンロードしMinGWでコンパイル。PICkit3では認識してくれなかったがPICkit2で無事書き込むことができた。PICkit3で動かなかった理由はわからない。ダウンロードしたソースを間違えたのかもしれない。
HDDモータの回転実験
130816c3HDDモータの回転実験とかもしている。いずれプロペラクロックとか作りたいのだが、自力で高速回転させるのがなかなか難しい。高度な制御手法は、いずれ考えるとして、とりあえず低速で良いので回転させてみることにした。

ドライバーには秋月で売っているSN754410を使用。kumaduinoに拡張基板を繋いでSN754410を載せる。モータに流れる電流の制限は、実験用電源の電流制限機能で行う。

いくつかの配線ミスを乗り越え、HDDのモータが回転した。低速だ。毎秒4回転ぐらいまでであれば,流す電流にもよるが静止状態から回転してくれる。毎秒8回転だと、手で、うまく回してやらないと回ってくれない。

目標としては毎秒30回転程度で安定して静止状態から回って欲しい。1800rpmだからHDDのモータとしては充分回るはずだ。それにはコイル端の電圧を測ったり、コイル電流を測ったりしてフィードバック制御を行う必要があるらしい。少しづつ実験しながら、技術を習得していきたい。
PCの中身入れ替え
130803b2電源を交換したが、自宅Windows機の問題は解決しなかった。頻度は確かに減ったが、動作が固まる現象が再発した。頻度が減った理由は、交換した電源についているファンの数が1つ多いので、PC内部の温度が低下したためではないかと思われる。

しかし、たまに固まるPCなんて使ってられないので、完全解決を目指す。怪しいのはマザーボード上のSATAインターフェースか相方のHDD。なのでマザーボードを交換するか、HDDを交換するかだ。


現在のマザーボードはLGA775ソケット、現在も探せば買えるとは思うが古くて将来が無い感じが悲しい。いまどきのマザーボードに変えるとCPUとメモリーも変えなければならない。HDDを交換した場合、HDDが原因でなかった場合、HDDが1つ余ってしまう。マザーボードを交換した場合、CPUやメモリーも交換したとして、こちらが原因でなかったとしても、古いPCが一新されるので良いかもしれない。

そこまで買えるなら、いっそ まるごと1台買ってしまったらどうだろうとも考えたが、希望のシステムは7~8万しそうでちょっと高い。ケースとWindowsのライセンスだけでも流用したい。

130803a3とかなんとか考えて、結局 マザーボードとCPUとメモリーカードをなんとアマゾンから購入。同じものが買えるなら、支払いや送料の点で、アマゾンから買うのが楽。そしてよく買うものはアマゾンで売っている。今回、マザーボードとかもアマゾン自体が売っていることに気がついてしまった。他社の販売を中継ぎしておいて、売れ筋を調べ、利益が見込めるものは自社で扱うようにしているのではなかろうか。アマゾン恐るべし。下記の3点をアマゾンに注文。



[caption id="attachment_7672" align="alignright" width="150"]派手なBIOS画面 派手なBIOS画面[/caption]マザーボード・CPU・メモリーカードが届き、PCの中身を入れ替える。この時点でDVDドライブがIDE接続で、マザーボードにIDEのコネクタが無いことに気がつく。

DVDドライブは放っておいてPCを起動。BIOSの画面が派手だ。Windowsが起動すると再構成が始まる。しばらく頑張っていたが、結局「できませんでした」と諦めのメッセージが表示された。

仕方が無いので、Windows7を再インストールすることにする。古いHDDには、まだ必要なデータが残っていそうなので、新たなHDDを買ってくることにする。ついでにSATA接続のDVDドライブも買ってくる。で、Windows7を再インストール。無事動作した。負荷の高いゲーム等をやってみても、今のところ動作が固まる現象は発生していない。中身は、まるごと交換したわけなので、同じ現象が起こるわけはないのではあるが。

別の現象、PCを放って置くと画面表示が激しく乱れて変になる現象が発生したが、これは、グラフィックカードのドライバがPCのスリープに対応していないためのように思われる。PCを放っておいてもスリープしないようにしたら発生しなくなった。

PCを修理すると称して、中身をすっかり入れ替えてしまった。Windows7の認証がすんなり通るか心配で、電話認証になっても良いように、平日の朝 認証を行ったところ、オンラインでスグに認証された。Windows7と一緒に買ったUSB拡張カードをちゃんと刺したのが良かったのだろうか。それとも古い中身を使わなくなって数日して認証したのがよかったのだろうか。

ところで、交換した中身 マザーボート(CPU:Core2 Duo E7200:2.53GHz + メモリ:4MB付き)と電源とIDE接続のDVDドライブが余ってしまった。HDDとケースとOSがあればPCを1台組める。但し、マザーボードのSATAインターフェースが、たまに止まる可能性もある。HDDが原因だったとすれば、マザーボードは正常。

Linuxサーバに使っているのはCeleronとかPentiumばかりなので、このCPUでサーバを動かしてみたい気もするが、サーバが遅くて困っているわけでもないので作っても邪魔になるはず。でも捨てるのも気がひける。

ということで、着払いでよければ、この余ってる部品一式無料でお送りします。御希望の方は、御希望の方は、その旨をコメント欄に書き込んで下さい。
古いUSBプロトコルアナライザ動く
130821a0PIC32MXいじり中。 Pinguinoのファームウェアが、まだ動かない。PCにつなぐと音がして認識しているっぽいのだが、Pinguinoで書き込もうとすろと、デバイスが見つからない言われる。USBの動作を確認したいので、Windowsで動くソフトウェアのUSBプロトコルアナライザを探してインストールしてみるが、いまいち使い方がわからないし、いろいろドライバを組み込むのが怖い。

後閑さんのHPを見て、同じUSBプロトコルアナライザAubitのUS-F100Aを持っていることを思い出す。10年ぐらい前に10万円ぐらいで買ったと思う。何の業務用だったのか思い出せない。かなり使い易かった記憶がある。なにぶん古い機械で、プリンタポート接続でソフトウェアもWindows7で動くが怪しいので試す気持ちにもならなかったのだ。

まず、PCにプリンタポートが有るか確認したら、なんとちゃんとあった。次にメーカーのサイトから最新版のソフトウェアをダウンロードしようとするがログインがうまくいかない。最新版といっても2005年のものなので製品に同梱されていたCDからソフトのインストールを試すと意外に、あっさりインストールされ、動作した。10年前のソフトとハードが動くなんて偉い。メーカーが偉いのかMicrosoftが偉いのかはよくわからない。

Pinguinoのファームウェアを書き込んだPIC32MXの動作をプロトコルアナライザで調べると、セットアップの途中でストールし返事をしなくなっていることが判明した。プロトコルアナライザがあると動作が一目瞭然。今後はファームウェアの動作を追っていきながら、ストールする原因を調べるつもりだ。
論理回路設計環境
130822a1DE0用に回路設計中。適当にverilogで書いて、QuatusIIでコンパイルしてエラーが出なくなったのでシミュレーションでデバッグを始める。ModelSim Starterをインストール。最初、使い方が全然わからなかったが、いろいろいじっているうちに自動生成されているtclのスクリプトに気が付き、いろいろ使えるようになってきた。verilogでテストベンチを書き、動作の確認を始める。

なかなか使いやすい。前の会社でMentor上でverilogを使い始めたころを思い出す。当時は当時で、論理シミュレーションの結果があまりにも早く出るのに驚いたのだが、それ以上の環境が手に入ったようだ。

ところで、DE0を使うとUSBプロトコルアナライザとか、割りと簡単に作れるのではないかと思いつく。High Speed (480Mbps)は、面倒だが Full Speed(12MHz)とかなら、拡張ポートに簡単な回路を追加するぐらいで、楽勝なのではなかろうか。DE0のUSBポートはPCとの通信手段として使えるのかどうかよくわからない。使えないのであれば、追加で適当なUSBのチップFT232Hとかを追加すれば良い。

そういえば、10年ぐらい前 USBのプロトコルの勉強を兼ねて、CPLDでUSBプロトコルアナライザを作る、とか言っていた時期がある。シミュレーションも通り、さぁハードウェアを作ろうかというところでソフトウェアを作るのが面倒になりやめてしまった。

今、やるなら、ソフトウェアは最低限のものを作り、GitHubとかで公開して、みんなに作ってもらう? DE0用とかに拡張ボードの基板配布なども行えば、乗ってくれる人もでるかも。ソフトウェアはDE0以外のボードにも対応できるだろうし。なんか面白そうな気がしてきた。でも、やり遂げるだけの気力はあるだろうか。
Pinguino bootloader動作
130824a4PIC32MXでPinguinoのbootloaderが動かないので、古いUSBプロトコルアナライザを引っ張りだし、通信の内容を見るのだが、ひさしぶりに見るので内容を理解できない。 USBの本「USBコンプリート」を読み直しプロトコルを思い出す。

その結果、STALLパケットは、別に誤動作しているわけではないことが判明。ということは、bootloaderが動いていても良さそうだが、動かすことが出来ない。

bootloaderのソースをこのサイトからダウンロードし、中を読みつつ、いろいろイジって試す。そうこうしているうちに、ダウンロードしたファイルにReadMe.txtがあることに気がつく。回路図から開発環境の構築方法、コンパイル方法、書き込み方、動作確認方法まで書いてある。

この動作確認方法に、Pinguino付属のmphidflash.exeというプログラムで試すと書いてあるので試してみると、何か認識されたっぽい。今まではPinguino IDEの書き込み機能で試していた。もう一度IDEで試すが、やっぱりエラーが出て書き込めない。しばらく考えて、ボードの種類を選択していないことに気が付き、「PIC32 Pinguino 220」を選択すると、ちゃんと認識し動作した。ちゃんちゃん。

ところで、チップの端子とPinguinoでの端子(D0~D13,A0~A6など)との対応関係がわからない。資料を捜すと、PinguinoのサイトのPIC32_Pinguino_DIYのページにある回路図とかPinsの表とかが、それっぽいのだがなんか話が合わない。

LEDチカチカのサンプルプログラムではD13がLEDの繋がっているRB15(26番ピン)になっていて、ちゃんと動作するのだが、上記資料ではD13が無いし、RB15はD1ということになっている。

PinduinoのdigitalWrite()のソースに、それっぽい配列があるので、それを使えばすむと思うが、ちゃんとした資料が見つからないのが気持ち悪い。

Pinguinoが使えるようにはなったが PIC32MX220ではROM容量が小さくて、いろいろ機能を削らないと入らないそうなので地道に調べながら自分なりのライブラリを作っていこう。でもbootloaderが使えるとPICkitが無くてもプログラムが書けて便利なので、このBootloaderで書き込める形式にはして行こうと思う。

ちなみに、bootloaderのReadMe.txtには、MinGW/Cygwin等のmake.exeではビルド出来ませんとあったが、パスをunix風に書き直し、MinGWのmake.exeを指定してやることでMinGW上からもemacs.exeからもビルドできるようになった。
USB電流計
am130824a1Amazonのお勧め商品にセンチュリー USB Power Meter USB電圧測定器 Centech CT-USB-PWが表示されたので見るとUSBのVBUSの電圧、電流を表示するものらしい。ちょっと欲しいかも。


111115c2-1USBの電流計と言えば,2011年に東工大で開催されたMTM7用に私が製作した基板。学生にArduino+ブレッドボードで電子回路の実験とかやらせると、PCのUSB端子からの給電で、配線ミス等による渦電流に気が付かないから、抵抗から煙が出たりLEDを破裂させたりするので、USBの電流を観測できる装置が必要だと言う理由と、電流計って、カッコイイから受けるのではないかという理由で作成。一部の人に、かなり受けた。まだ残っているので今年11月のMFT2013でも頒布予定ですが残り少ないです。


am130824a2amazonの関連商品で、USB接続 充電容量チェッカー キットが表示される。こちらは電流と積算電力量が表示されるらしい。回路図等はAssenblyDeskで公開されている。
イプシロン・ロケット離陸せず
本日、イプシロン・ロケット1号機の発射があり、インターネット等でライブ中継もされるということをしり、発射30分前ぐらいからニコニコ生放送の画面を開き、様子を見ながら仕事をしていた。発射の2分前ぐらいから秒読みが始まり、画面を注視していたのだが、ゼロになっても何も起こらない。ニコ生のコメントがざわめきだす。

結局、発射の何秒か前にエラーが検出されて停止していたらしい。詳しい報告を待ちたい。ちゃんと打ち上げ治せるといいなぁ。

先日の富士総合火力演習もネット中継で見た。ネット中継だとTVと違って、CMも変な演出もなくて見やすい。やっぱり世の中、しんぽしてますね。
Pinguinoのピン配置
fig130829a1秋月電子で220円で売ってあるPIC32MX220F032BでPinguinoが動くようになったがピン配置がわからないと騒いでいたのだが、なんとか状況が理解できた。

マギワらしいのがPIC32_Pinguino_DIYの存在。DIP品のPIC32MXを使った自作基板なので、これを使えばよさそうなのだが、Pinguinoではサポートされていない。自力で、いろいろ改造すれば使用可能なのだろうが、それよりも良いものがある。

PIC32-PINGUINO-MX220だ。Olimexが9.95EURで販売しているボードでCPUはPIC32MX220F032Dで、パッケージが44ピンのQFPで端子が多いが、内部はDIP品と同じ。 Pinguinoでしっかりサポートされている。ということで、みんなこれを使っているらしい。上の図は、DIP品のPIC32MXをPIC32-PINGUINO-MX220の設定で使った場合の端子の配置を調べた結果をまとめたもの。

なお、回路図はすzのAVR研究のものを使わせてもらっている。

端子がわかりPinguinoのサンプルプログラムを試すと、殆ど問題なく動作した。01.Basics/PrintFormatted/print.pdeは、そのままだとリンク時にエラーとなるが、CDC.printfで浮動小数点"%f"を使用している行をコメントアウトすると問題なく動作した。浮動小数点ライブラリを入れるのには32Kbyteでは足りないということだろう。