6503がようやく動いた報告

イメージ
  回路図まで載っけて作りましたと宣言した前回。 いざ色々動かそうとしたものの、 プログラムがまともに動かないので試行錯誤してたら何年たってたんですかねこれ 。月日が経つのは怖いですね。 今回ようやく6503と6532が無事に動きました。 何につまづいたのかというと、多分アセンブラの文法です。 6502系のアセンブラって結構豊富で、 いろんなところから出てるんですがそれぞれアドレスの表記とか微 妙に違うんですね。 で、 今回久しぶりにca65というアセンブラを使用してみたのがつま づいた原因でした。 一度設定すれば大体の6502系には対応できるのが魅力ですが、 本当よくわからないmakeファイルの設定とかで地獄を見ました 。 以下何やってたのか簡単にまとめていきます。 新しい道具も作ったよ! ■:まず動かない いや、電気は通ってるしクロックは走ってるんですよ。 なのに6532の挙動がおかしくてIRQはでっぱなしだしcpu は止まるし訳がわかりません。 そこで今一度6532のデータシートを読むと、 「 NMIとIRQはオープンコレクタなので 必ずプルアップすること 」 ってあるんですね。何その罠。 というわけでプルアップ抵抗を追加しました。 これでcpuがすぐに止まる事故は解決… と思いきやまだ止まります。というか出力がよくわからない。 そこで大昔に作りかけてやめた出力確認用LEDパネルを作成する ことにしました。 ■:めちゃくちゃ便利なLEDパネル 5年くらい前にこんなの作ったら便利やろってLEDだけ並べて、 回路に不備があることに気がついてなげたもの。 今ならなんとかできそうってことで抵抗とトランジスタ をばーっと取り付けて、 カードエッジからも表のポートからも入力できるようにしました。 これまでは毎回ブレッドボードでled回路組んでたんでクソめん どくさいし抜けるしで散々だったのですが、 これで見やすい簡単出力もicに負担がなく万々歳になりました。 やったぜ。 まあ回路図書かずにえいやっと作ったので裏はすごいことになって ます。ちゃんと整えて、 入力スイッチもつけて体裁整えたら普通に便利道具になりそう。 クロックパルスも出せるようにしたいですね。 ledドライブのために2sc1815を贅沢に使用してます。 意外と高いですがいつ買ったのか結構あったので奮発...

久々に週刊MyRobot、ID-01を出して中を調べてみた。

以前、家にある変なロボットの記事を書きました。

このロボットなんですが、当時はどの部品がどういう仕事をしているのか正直モーターとセンサーぐらいしか分からずに組み立てていたのですが、今になってそれなりにわかるようになったため、試しにどういう部品が使われているのか、あわよくば今の技術でプログラミングできるのか調べてみることにしました。

■このロボットのCPUはなんなのか?

ID-01が発売されたのは2006年なので、もう10年以上前のふるーいCPUが積んであることは明白なのです。おまけにIntel系のノートパソコンとかに使用されているようなものは使用されているはずがないので(電池駆動ロボットで、そんな電気バカ食い発熱CPUなんて使用できるわけがない)、ちょっと中をひっさしぶりに調べてみることに。で、調べた結果、

モトローラ社のDragonBoll MX-1 (訴えられそうだな)というCPUが搭載されていることが判明。うん?モトローラ社?えーっとすごい聞き覚えがある。このブログにとても関係ある会社だと思ったら、MacintoshPlusに使用されているMC68000を開発した会社でした。さらに、このロボットで使用されているCPUはその68Kシリーズの後継CPUだったのです。
発表はなんと2001年。とんでもなく古いCPUです。シリーズは今でも続いているようなのですが、速度とか色々不安になります。まあ期待する方がおかしいのですが。期待するならラズパイに置き換えるのが一番早い。

また、いわゆるAVRマイコンやPICマイコンと違い、プログラミング環境に難があります。というかなんのソフトを使用すれば書き込めるのか見当がつきません。当時のid-01のプログラミングツールを解析する必要があるでしょう。

ちなみにこちらがその当時のプログラミングソフトが入っているCD。プログラムは無事に動いたのですが、XPに特化したファイル構成&Javaインストール祭り&互換性で死にかけました。こう見るとやっぱり古いソフトなんですねぇ…


■音声認識モジュールについて

このロボットの最大の魅力はなんといっても音声認識部分です。認識能力は当時としてもできの良いものではなく、今のご時世においては悲惨の一言です。認識できる言語数も極めて少ないですが、そもそも当時の技術でこのサイズ、この低消費電力の中でこれだけ反応してきちんと動いた時点で驚愕すべきです。ではそれをどのように行っていたのかというと、




このモジュール基板。
実はこの中に特定の言語が入っていて、それと比較して処理しているというものです。
つまり認識できる言語はここですでにロックされていて、処理もここですべて行っているんです。2000年初期ごろの技術はやはりここまでが限界だったんですね。
ちなみにICの仕事としてはデジタルアナログ変換、圧縮音声、音楽の再生機能もあるそうなので、ID-01のあの独特な8BIT音声はこのICが出していたんですね。横の平べったいICはメモリみたいです。間違ってたらごめんなさい。
ちなみにこちらがこのモジュールの紹介?仕様書?みたいです。

■|ここで残念なお知らせ
えー、先ほどお見せしたプログラミングソフトでちょっとサンプルプログラムを書いてみたので、ID-01に読み込ませようとしたのですがなんと…起動しなくなってしまいました。
電池も好感したのですが、うんともすんとも言わず。原因がさっぱりわかりません…
もう一度分解して断線や、電圧が足りていないのか。何とかしてもう一度起動してあげたいですね。せっかくC言語が少しだけ書けるようになったので今ならきっと面白いプログラムができるはず。

それではまた次回。なんとか起動できるといいなぁ・・・

追記:バッテリーボックスを確認したところ、電圧が本来の電圧になっていないことによる電気不足だったため元の状態に復元。無事に起動するようになりました。しかしながら首などのセンサーがばかになってしまっているようで。。。何とか修理したいですね。

次の記事:

前回の記事:

コメント

このブログの人気の投稿

ファミコンの完全自作ROM&カセットを作ろう!!その1~立ちはだかるコンパイラの壁~

ファミリーベーシックでゲームプログラミング

ファミコンの完全自作ROM&カセット作ろう!〜cc65で起動ROMをつくる〜