R2N-series 製作日記
なかなか実際にいろいろと取り組んでみると、サーボ自作が難しいです。 特に、ポテンショメータなどをどうアレンジするか? というのが見えないですね。
そこで、2段階構成でいくことにしました。
第1ステップ(これが R2N-series)
第2ステップ(R2N-series では見送り)
この調子だと、すでに購入してしまった FET が活躍する日は来るのかな? とはいえ、今は1つ1つ課題をクリアして前進あるのみ。
私の教科書 吉野ロボットさんや、NONSAYA ROBOT WORKS さん、バーニング宮田さん の Web はほんとに参考になりますね。
彼らはどこまでもがんばって作りたいロボットを目指し、がんばってますね。 私も負けずにがんばろう、と、読めば読むほど感じる毎日です。
ところで、なかなかハイパワーギアとストロングギアが届かないのです。
先週、ロボコンマガジン館が移転するということで、問い合わせをしたら、なんと、11月末まで待ってほしいとのことでした。。。 悲しい。
1つだけ入手していたハイパワーギアを予備に買っておいた PS-2174FET に取り付けてみることにしました。
|
|
![]() |
|
以下、覚書です。
どこかの Web にも書いてあったが、シンプルに H8/3664F + 自前サーボという組み合わせで 3664F を必要個数並列に並べた方がシンプルなのかもしれませんね。 そうかんがえると、1600円でボードに搭載された形で購入できる H8/3664F はなかなか良いデバイスと言えます。
(2003年11月9日)
結局、加速度センサは買いなおしして、ADXL202 というメジャーなICにしてみました(まとめページ参照)。
また、ずいぶん前に衝動買いしていた SHARP 製の距離センサも取り付けてみました。
これら2つは、RC 受信機用の H8/3664F に処理させることにし、さらに同じ PBC
箱に搭載。 箱内は結構ぎっしりと入っており、これ以上の拡張はできそうにないです。
(2003年11月16日)
3連休だというのに、子供の世話とかでなかなかロボットに手が出せない(涙)。
ようやく、現・ロボット王国に発注していた、ハイパワーギア、ストロングギア、ベステクの7047Fボードが届きました(待つこと2ヶ月!)。
R1Nを解体し、ハイパワーギア&ストロングギアを取り付けてみたのですが、1個のPS2174FETがうまく解体できない! ベアリングがアルミギアの中からでてこないのです。 どうしよう。。。 とりあえず、予備で買っておいたものと取り替えて・・・。 近藤科学のWebでは、郵送してくれれば修理する、とのコメントありでした。 時期をみて、送付してみるかな?
ともあれ、R2Nをつくるためのパーツは全て届いたので、全力で組み上げるのみです。 RoboOne第5回の公募も開始されたことだし、気合いをいれよう!
(2003年11月24日)
ラジコンサーボのトルク測定を行った結果をまとめてみました(まとめページ参照)。
驚きました。 アナログサーボは奥が深いですね。 PWM周期をもっと短く設定しないと保持力が保てないのですね。
この結果から、今月はじめの一連のプラン変更としました。
BTE055 は、デジタルサーボを念頭に作られているため、PWM周期に対してマージンがない(というか、小さくできない)ということがわかりました。 これで、確実に自作分周期作成です。
そろそろ、Robo-One 申し込みを決断し、公募用紙の作成に取り掛からなければならないと思うのですが、なかなかロボットの制御までいきつかないです。 かなりあせりますね。
大会で何を自由演技させるかは決まっているのですが、まず歩行ができるだろうか? また、2月に時間がとれるのだろうか?(仕事) と、いろいろと不安が。。。
完成していなくても、とりあえず申し込みをしておくべきだろう、とは思うが、なかなか筆が進みません。 みなさん、この時期、本当に出来上がっているのでしょうか??
(2003年11月30日)
R2N のコンセプトでパーツ(基板)をくみ上げ中(下写真)。
現在、SH2/7047F+FPGA(Altera FLEX10K10LC84) の半田付けまで完了。 正直、この回路規模であれば、FLEX10K10 でなく MAX7000 でもよかったですね。
今回は、FPGAでPWM波形を作るという最初の目論見から購入したFLEX10K10をとりあえず使ってみた、程度です。
SH2/7047F のプログラム面では、SISO さんに大変助けて頂き、7047Fの基本プログラムは完成しました。
3ボードを重ね配置。 表面(左下): SH2/7047F、中央:電源制御系& 7047F SCI4用SP3232、最下段(右上):PWM信号 分離(FPGA)&RCサーボ出力ピン |
Altera FLEX10K10LC84 を中央に左上:18.432MHz 水晶、左下:EPC1441PC8、ボード左辺、下辺、右辺 に(裏にむかって)RCサーボ用出力端子を装備。 |
SH2/7047FのCN2 は未使用。 SRAM保持用にELNA 1F スーパーキャパシタ。 |
Altera FLEX10K10LC + EPC1441PC8 の ダウンロードケーブルならぬダウンロードボード |
ようやく、RoboOne第5回大会へ申し込み書類を送りました。
書類審査が通るかどうかわからないですが、ともかくも期日をきめて気合いをいれることにします!
大会は、予選2004年1月31日、予選通過できれば、翌日2月1日が決勝。 今回は、その他イベントは2月下旬に行われるとのこと。
まずは、書類選考突破!?
(2003年12月7日)
昨日送った RoboOne 第5回大会の書類だが、無事、書類審査を通ったとの連絡が入いりました。 意外と簡単な審査なんですね(終わってみればそういうものかも)。
もう、やるしかない! が、仕事が忙しく、なかなか着手できないので、休日をフルに使ってがんばるぞ!
(2003年12月8日)
気ばかりあせる毎日。。。 うまく FLEX10K10 への Programmer が動作しない。 いろいろとバーニング宮田さんにアドバイスを頂きました。
重大な問題が発覚! : 「 ConfigROM の書き込みハードがないという、大チョンボをしてしまっている。 」 (心の叫び:何やってるんだろう)
なんてこった。 うるうる。。。 EPC2 だと動くが、ボードの上に、PLCC84+PLCC20
と、各種コネクタは配置しきれないという状況に、またまたアタフタ。。。
ともあれ、適切なご指摘、数々のアドバイス、ほんとうにありがとう、宮田さん!!
ここは、コンテンジェンシープラン(機能的に見て、Xilinx CPLD XC9572 クラスでも十分)の発動です!
とり急ぎ、Xilinx の Web で ISE WebPACK のユーザー登録からしておきました。
いろいろなところで、Xilinx の ISE WebPACK について紹介されてますので、それを参考に進めれば問題はないですね。 Xilinx の Web 見直し?からか若干操作面で違いはあったのですが、おおむね、Xilinx web の指示に従って入力すれば OK なので問題なしでした。
インストール後も、色々な Web で紹介されているツールの使い方を頼りに。。。と思ったら、バージョンが6.1.03i
まで上がっていて、大幅に違いがありました。 初心者の私にはとても辛い!! けど、やるしかない!! 明日は、熊本出張。 往復の飛行機の中で、ひたすら
Help を参考に書くべし、書くべし。。。
(2003年12月11日)
予定通り!?飛行機内で ISE WebPACK の勉強。 会議資料が前日までに出来上がっていたので、とってもラッキーでした。 普段だったら、人目を気にしながら飛行機内で資料作りなところが、完全に自由時間とできたのは、よかったです。 ふむふむ。。。 VHDL は、AHDL と違うところが多々あるが、基本的な考え方は同じなので、なんとか30分で移植完了。 つづいて、ピン配置の設定。。。 ん? これ、どうするんだ? とりあえず、Process View のそられしき Assign Package Pins をダブルクリックしてみると、Xilinx PACE なるプログラムが新たに起動。 なるほど。 イメージで作るわけね。 ということで、きっと「Design Object List - I/O Pins から、Package Pins のピンイメージの上にドラッグしていけば、ピンアサインしてくれるんだろう、とやってみると、すんなりできました。 こんな簡単なツールが自由に使えるとは、なかなか良い時代ですね(Xilinxさん、感謝!)。 昔、キャラクタベースで遊んでいた頃が嘘のよう。。。 と思いながら、1つ1つアサインして、完了。 とりあえず、出来上がりのボードでサーボ出力するヘッダピンの位置関係は、最終書き込みの段階で入れ替えすれば良いので、大体の感じで決めておきました。 上辺:SH2/7047F の信号入力ピン、左辺:左腕サーボ用出力ピン、下辺:足サーボ用出力ピン(ちょっと右辺まで入る)、右辺:右腕サーボ用出力ピン。 こんな感じ。 飛行機の中でここまでできるとは思ってもいなかったので、大きな収穫です。。。
![]() |
![]() |
(2003年12月12日)
Xilinx CPLD で作れることが確認できたところで、いざ、半田付け開始。 う〜ん。 Altera FLEX10K10 の時にやったことと同じようなことを再びするとは。 やっぱり仕様書はしっかりと読むべし。 今日はとりあえず、半田付けの一日でしたが、なんとか完成。 下記にCPLDライタを紹介します。
|
さてさて、XC9572-15PC44 を取り付けて、書き込み。。。 ん? また、バージョンの違いから、わからないところがあるぞ!?
今度は難解でした。 同じような単語が見つからない。 ええーい。 とりあえず、書き込みボードの電源投入! 特に異常はない様子。 つづいて、ISE
WebPACK で完了チェックが入ってない、Generate SVD/XSVF/STAPL File をダブルクリック!! なにやら新しい
Window が開くが、わけわからん。。。 またマニュアルを読まず、突き進んでいるからだと、気づくも、とりあえず進めてみよう。 Configuration
Mode のウィンドウでゴチャゴチャやってみたいので、Dialog ウィンドウとして開いてる
Prepare Configuration Files は、とりあえずキャンセルで抜けてみました。
Boundary-Scan ウィンドウ状態で、Edit -> Add Device -> Xilinx Device
としてみると (後からわかったのですが、マウス右ボタンプルダウンメニューでも良いです)、*.jed
ファイルを選択する画面になります(下の左図)。 これはいける! 作っておいたファイルを選択すると、どこかで見た画面。 よっっしゃ! 旧バージョンと同じ画面ができた! あとは、書き込みあるのみ(下の中央図)。 デバイスをマウス左シングルクリックで選択した後、マウス右ボタンのプルダウンメニューから、「Programming」を選び待つこと約10秒。 Programming
Successded の文字がでてほっと一安心。
以上、心の声でした。
![]() |
![]() |
![]() |
できあがった XC9572 を取り外し、新しいサーボ制御基板に取り付けてみる。。。
このCPLD の場合、ConfigROM は無いので、非常にすっきりとした配置にできあがります。 また、前回の反省として、サーボ出力ピンヘッダとの結線の方が多いため、ボードの表裏を逆にしてみました。 CPU
からの信号は取り出しが CPLD からみると裏面になってしまうのですが、結線数が電源GNDを含めても11ピンなので、問題なしです(左写真の左上コーナー部)。 サーボ用バッテリーのコネクタも忘れず入れて(左写真の左下の白いコネクタ)、いざ、CPUボードと合体!(右写真)。 なかなかちっちゃな感じで出来上がった。 バーニング宮田さんの俺PCBにはぜんぜん性能的にかなわないですが、当初の見込んでいた機能は入っているので、いける!という感じです。
よし。 CPUに基本プログラムを入れて動作確認してみよう。 とりあえず、CPU(SH2/7047F)
から 10msec.に4つの信号を出力し、信号を確認。 CPLD からそれらが切り分けられて各サーボ出力端子にPWM波形がでれば、動作確認完了です。 今回登場となるのが、とってもちっちゃなオシロ。
|
実際のPWM波形は次のような感じです。 何故か、設定した横分解能が表示と違ったのですが、まぁ、今は気にしないことにします。
・・・ 後日判明。 テストしたプログラムが古かったため、PWM周期が大きく設定してあったという私のソフトミスでした。
![]() |
![]() |
確かに4つ分のPWMを分配しているのを確認。 よしよし。
今日1日でここまでいけたのは、集中して時間が取れたことが大きかったです。 しかし、まだまだこれからが大変!
(2003年12月13日)
昨日はかなり半田付けなどで時間を取ってしまったが、今日は、回路の再確認と、若干の修正を行いました。
また、KO-2174FET w/ HyperGear の PWM 信号(ON時間) に対する角度の再測定を行ってみました。(下グラフ)。
![]() |
|
(2003年12月14日)
またまた、半田ゴテを握って、ボードを作り直してしまった。 できてしまうと、また作りたくなる。 これでは、ぜんぜん先に進まないです。 まぁ、趣味ですから、OKですね。
今回の変更点は、CPU 用電源ボードと、CPLD用ボードの2枚をシンプルにまとめること。 電源変換部は、別ボードとすることで、CPUとCPLDを1枚のボードで収めてしまおうというねらいです。 忘れちゃいけないのが、H8/3664F
(受信機&センサ用サブCPU)との通信用に SP3232 を載せること。 で、完成したのが、このボード。。。
実にシンプルにまとまった、と思ったが、意外と端子類が出っ張っていて、収納しようとすると、改善点が見えてきました。 この調子だと、なかなか実機が立ち上がらないですねぇ。 「大地に立つ」、もとい、「リングに立つ」という目標を失いつつあるのですが、趣味だから、楽しければそれでよい、ということで。
上図左がCPLD面から見た写真。 同面には、サーボ制御用端子が3組に分かれて配置。 この配列は、前回のボードと同じ。 CPLDなので、右写真のように、配線が最短になるようにレイアウトできるのも、うれしいところ。 地べたを這わせたニクロム線が多く、黄色の線で結線した空中配線分が意外と少ない。
RISC プロセッサである SH2/7047F は、諸先輩方の Web にもかかれているが、バッテリの持ちがよろしくない、ということで、スピード的には十分余裕があるので、core
clock を最速 50MHz から半減させて使うことにした(右写真の DIP SW 1-4 を
ON)。 確かに連続稼動させていると、CPU が熱くパワーを食っていることが良くわかります。
(2003年12月21日)
RoboOne 第5回大会は、129機体の書類選考パス組みで実施されることになりそう。
そんな中、まだ大会が終わっていないのに。。。
パーツがばらばら。。。 小人(こびと)のせいではないです。 気分転換でもないです。 単に順番をミスっただけ。 というのも、色塗りを一切していなかったので、サーボに色塗りをしてみたのです。 今回は、近くの模型屋に行って、白色のスプレー式塗料を買ってきてサーボのみ白色にしてみました。 ほんとうは、ブラケットも全て白色にする予定だったのですが、始めた時刻が遅く、日が暮れてしまったので、サーボだけ色塗りして終わり。 暖かい一日を、塗料の匂いにホワホワしながら過ごしたのでした。。。
|
(2003年12月23日)
制御ボードが厚めなので、さらなるダイエットを試みてみてみました。 出来上がってみると、何故最初っからそうしかったのか、という感じです。
見てわかりますが、CPLD XC9572 が CPU ボードの下に食い込む感じでしか乗せきれなかったため、SH2/7047F を180°回転して配置できなかったです。 黄色の線でのラインが10本も走っているのは、ちょっとみっともないのですが、省スペースを優先した形なので、仕方ないかな?? 不安なのは、ノイズ。 GND 直結のシールを巻いた方がよいだろうか。。。 とりあえず、動かしてみて動作に異常があるか確認してみよう。
これを1枚にしてみると、こんな感じでとってもシンプルに、かつ違和感なくできあがった。 さらに、ボディにつけてみると、さらにその小ささが良くわかる。 ちょっと隠れて見えませんが、ボディ内部に NiCd 5本一組6V相当品を2組搭載しています。 これで持続時間は十分なはずですし、規格では 2200mA/h 出せることになるので、RCサーボを全開で使えるのではないか?と期待しています。 リチウムポリマーだともっと軽量化&小型化できるらしいのですが、取り扱いが難しいらしいので、今回は見送りです。(本音は金銭面で見送りました。)
ボディ上部の4つのピン状の台座みたいなものは、頭部固定用のネジ止めです。
今回、頭部の動きは特に必要ないと判断し、サーボを外しました。 あと、頭部に搭載予定のRC受信機&g加速度センサ&サブCPUもちょこっと回路修正したので、写真をアップしておきます。
|
(2003年12月28日)
先日のアンテナ関連を搭載した形で、胴体に頭を取り付けてみました。
今年も終わろうとしているので、現時点での状態を写真に収めてみようと思い、仮組みを実行!
森永さんの Metaric Fighter 、宮田さんのバーニングスターのようにかっこいい写真が撮れれば、と思ったのですが、写るのは、そのままのロボット(当たり前ですね)。
(選抜した写真が下2つ)。 「早く動くところが見てみたい。」妻の一言に来年からの取り組みに、ますます拍車がかかります。
仮組みした状態での体重測定では、2.3kgでした(内訳 胴体:230g、片足:480g、片腕:230g、頭90g、バッテリー2組:460g)。
(2003年12月30日)
あけまして、おめでとうございます。 本年も引き続きがんばりますので、よろしくお願いします。
(2004年元旦)
ようやく、時間が取れてソフト開発からスタート切れそう、と思ったら、電源周りが不安定で作り直しをしてしまいました。
そのため、予定よりはるかに遅れた進捗になってしまい、RoboOne 出場が怪しくなってきた、というのが正直なところです。
今回は、Excelシートでデータ編集をしたりしたかったので、Excelマクロで使う
Visual Basic による制御ソフトを作ってみました。 モーションデータを作成するにあたって、キャラクタのみでは、なかなか面倒なので、各サーボの角度をWindowsのスクロールバーでコントロールできるようにしてみました。 これで、1モーションデータの作成が容易になったと満足です。 このソースコード、とても汚いコードなので、要望がでれば公開としますね。
![]() |
|
ちょっと横道ですが、モーションデータを、いちいちプログラムのコードに持たせるのは得策ではないですよね。 SISO さんは I2C EEPROM に書いて、それを組み込む形式をとっているらしい。 I2C EEPROM 自身はとっても安価なので、是非採用したい。 しかし、ALTERA FLEX の ConfigROM と同じで専用のライターが必要となると話が違う。 いろいろと調べているが、64kbit(16kbyte)のEEPROMなら書き込めるというWebを発見。 1Mbit(128kbyte)のEEPROMへの対応については公言されていないですねぇ。(ソフトのプルダウンメニューによる選択肢にも入っていない)。
というわけで、EEPROMの導入に際しては、いろいろと試しながら検討を進めることにします。 ちなみに、I2C については、この Web が役に立ちそう。
RoboOne もひとつの目標だが、これは趣味。 仕事と同じように納期確保重視でなくても良い。 楽しく行こう!
(2004年1月11日)