2017年04月ゲームロボット/ゼムネス汎用ヒト型決戦遊具はじめました。「シリアル検証スケッチ」でシリアルの厳密な配列が判明してきました。前回やや当てずっぽうだった必要データの切り出し方法を厳密なものに改め、スケッチを書き直してみました。書き込んでベリファイするものも書いてみました。▼PCでモニタリングするプログラムのため、Arduinoはハードウェアシリアルが使えるMEGAがおすすめです。Serial1が使えるMICROやLeonardoでも動くと思います。VS-RC003の設定で好きな方をシリアルに設定し、また、ArduinoのRXピン、TXピン、5V、GNDを、VS-RC003のTXピン、RXピン、5V,GNDにそれぞれ接続します。補足ですが、VS-RC003の拡張コネクタは、CN6:ゲームパッド使える/IXBUS使えない/シリアル使えるCN7:ゲームパッド使えない/IXBUS使える/シリアル使えるとなっているようです。IXBUS機器を複数使う場合CN7に数珠つなぎにします。CN6にはコントロールパッドの代わりにシリアルをつなぐことが可能です。電圧の取得を例にします。指定したアドレスのデータを読み込み、データを表示。エンディアンを交換し、整数データとして表示するところまでを行います。rコマンドで読み出し命令を出し、結果を変数VSmsgsに入れて表示する。04で電圧を読み取る。部分が、該当の電圧データとなる。アスキーコードの16進数を数値に変換し、10進数に換算する。データの切り出し方を厳密化。読み取りエラーのフラグ用変数を宣言。読み取ったシリアルを入れる配列を宣言。delay(30);//このディレイが小さすぎると失敗しやすい。//文字配列に文字を一個入れる。「[LF]」と「#」が連続している文字列を探す。//必要データ読取中のフラグを立てる。//配列の1文字目にプロンプト記号#を入れ直しておく。true)//必要データ読取中なら「CR」が来たら読取終了。Serial.println(VSmsgs);//取得データを表示。");//以下、該当の電圧データをエンディアンを交換して表示する。//以下、取得したASCIIコードを16進数に換算していく。//その際、範囲にない文字であれば、エラーフラグを立てる。{//取得した文字が0よりも前の文字であればエラー。{//取得した文字がfよりも後の文字であればエラー。0x57;//取得した文字がa以上であれば10からの数字に換算。0x30;//それ以外であれば、0から9の数字に換算。DEC);//ビッグエンディアンに変更後の16進数を並べる。vcc4;//16進数を10進数に換算する。DEC);//結果の数値を表示する。{//取得データにエラーが出ていればエラーと表示する。3983(以降くりかえし)のように表示されます。VS-RC003にシリアルで指定アドレスに変数を書き込みます。同じアドレスを読み取って比較することで書き込みの成否までを確認します。書き込みが成功しているかを確認する。WRITE_MSG2で書き込み検証用にデータを読み込むr文を指定する。20..になるように書き換え、比較しやすくしておく。//検証用のリード文。該当アドレスから2バイト読み込む指示。読み取ったシリアルを入れる配列を宣言。Serial1.println(WRITE_MSG1);//書き込み用のライト文を送信。Serial.print("wrote:");//モニタ用。Serial.println(WRITE_MSG1);//モニタ用書き込んだ文字列を表示する。delay(38);//18以下だと失敗する。{//「#」を受け取るまで64文字まで待つ。普通は1発目で見つける。0x23)//「#」を受け取り次第抜ける。delay(30);//このディレイが小さすぎると失敗しやすい。//文字配列に文字を一個入れる。「[LF]」と「#」が連続している文字列を探す。//必要データ読取中のフラグを立てる。」に変換して書式を合わせておき、あとで比較できるようにする。//配列の1文字目にwを入れ直しておく。//配列の2文字目にスペースを入れ直しておく。true)//必要データ読取中かつ「CR」が来たら読取終了。Serial.println(VSmsgs);//モニタ用。書き換えたもの)を表示する。{//書き込んだ文字列と読み込んだ文字列を比較する。OK!(以降くりかえし)のように表示されます。実際にロボットと接続してみて安定的に動くようであれば、ベリファイの部分を省略してしまうのもArduinoへの負担が減ってよいかと思います。ついでにユーザー関数化やライブラリ化ができれば運用しやすいのですが、そのやり方はまだいまいちわかっていません><▼これでついにVS-RC003&Arduinoのシリアル制御を完全攻略!・・・ができたような気がします^^ここまでできれば、SBDBTのファームを書き換えてVS-RC003に直付けすることもできてしまいそうです。(これはライト級的に欲しい機能です。VS-RC003の変数番号を、VS-RC003がシリアル受信で理解できる番地に変換するプログラムのarduino版です。使いたい変数を設定したスケッチをArduinoにアップすると、シリアルモニタに答えを表示します。あとで必要になりそうな単機能のスケッチです。240;//いじりたい変数番号を設定。//変数番号を2倍して、200800を10進数換算をしたものを足す。//16進数で表示する。0Pagetopシリアル検証スケッチ▼VS-RC003のシリアル関連についてですが、前回のスケッチでは動くもののデータの切り出し方にちょっと無駄がありました。シリアルの情報は公式に開示されているのですが、細かな点が素人にはちょっとわかりづらいです。コールバック、#プロンプト、[CR]、[LR]の受信順について厳密に理解しておくため、改めて専用のスケッチを作って検証しておきたいと思います。使うのは例によってハードウェアシリアルの安定性も高いMEGAです。Serial1のTX,RXピンをVS-RC003のRX,TXとそれぞれ繋ぎます。LeonardoやMICROでもたぶん大丈夫だと思います。//VS-RC003等から送られてくるデータの順番を可視化するプログラム。//特例として、復帰記号[CR]は「C」、改行記号[LF]は「L」として可視化する。128;//読み込むシリアル文字列の長さ。04";//送信したいシリアル文字列はここで指定する。読み取ったシリアルを入れる配列を宣言。Serial1.println(WRITE_MSG);//こちらから送信するシリアル命令。delay(30);//このディレイが小さすぎると失敗しやすい。{//受信した文字が復帰記号[CR]だったら配列に「C」を代入して可視化する。{//受信した文字が改行記号[LF]だったら配列「L」を代入して可視化する。data;//受信した文字が上記以外なら、そのまま配列に入れる。Serial.println(VSmsgs);//取得データを表示。(1000);}▼まず、読み込みのテストです。Serial1.(以降繰り返し)という結果になりました。Cは[CR]、Lは[LF]を示します。1発目はVS-RC003からの返信がこないことが多いので扱いに注意が必要ということがわかります。最初の#は、VS-RC003からのコマンド受領合図です。[CR]を受け取るとまずこの#を返してきます。2回目の#よりも前の文字列は、送信したコマンドのコールバック(受領したデータを一文字ずつ返してくる仕様)になりますので、データとしては不要なものです。[LF]#と2バイト連なる文字列を受け取ってから、次の[CR]が来るまでの文字列を読み取るようにプログラムすれば、欲しいデータを切り出せそうです。次に、書き込みのテストです。Serial1.(以降繰り返し)という結果になりました。書き込みコマンドを受領したVS-RC003は、[CR]を受け取ってすぐに#を返してくれることがわかります。書き込みが成功しているかのチェックは、もう一度該当箇所を読み込んで比較するのが良さそうです。▼そこで、書き込んだ後に読み込み実行するスケッチも簡易的に書いてみました。こちらを実行すると、ずらずらと改行なしで結果を出力します。いう順番でシリアルが帰ってくるのでしょうか。//VS-RC003等から送られてくるデータの順番を可視化するプログラム。//特例として、復帰記号[CR]は「C」、改行記号[LF]は「L」として可視化する。128;//読み込むシリアル文字列の長さ。//送信したいシリアル文字列その1を指定。//送信したいシリアル文字列その2を指定。読み取ったシリアルを入れる配列を宣言。Serial1.println(WRITE_MSG1);//こちらから送信するシリアル命令。delay(30);//このディレイが小さすぎると失敗しやすい。{//受信した文字が復帰記号[CR]だったら配列に「C」を代入して可視化する。{//受信した文字が改行記号[LF]だったら配列「L」を代入して可視化する。data;//受信した文字が上記以外なら、そのまま配列に入れる。読み取ったシリアルを入れる配列を宣言。Serial1.println(WRITE_MSG2);//こちらから送信するシリアル命令。delay(30);//このディレイが小さすぎると失敗しやすい。{//受信した文字が復帰記号[CR]だったら配列に「C」を代入して可視化する。{//受信した文字が改行記号[LF]だったら配列「L」を代入して可視化する。data;//受信した文字が上記以外なら、そのまま配列に入れる。Serial.print(VSmsgs1);//取得データを改行なしで表示。Serial.print(VSmsgs2);//取得データを改行なしで表示。(以下繰り返し)となります。ここから上手に該当箇所を切り出すことができれば、ArduinoとVS-RC003は晴れて通信開通となる・・・はずです。以前挫折してほったからしになっていた案件。ArduinoとVS-RC003の安定したシリアル通信について、突然思い立ってリベンジ中です。前回の挫折からもう3年も経っているのが驚きです。PI、ROS、LINUX、PYTHONなどの入門書を2冊ぐらいずつ読んだところです。入門書ばかりで何も身にはついていませんが、少しは理解力が向上していると信じたいです。MEGAを購入しました。MEGAはやや高いのですがハードウェアシリアルを複数扱うことができます。同時にUSB経由でPCでモニンタリングもできるというわけです!ハードウェアの限界に悩まされなければ、あとはソフトの話なのでパズルゲームのように楽しめるはず・・・です。▼ArduinoからVS-RC003に命令を書き込む場合には、115200のスピードのシリアルで文字列を一方的に送りつければ済む話です。あとは安定性をアップさせるための仕掛けをいれれば大丈夫でしょう。読み取りの方はグッと難易度があがります。今回はシリアルの読み取りから攻略してみます。読み取りにはクリアすべきいろいろな難題があります。・VS-RC003は送った命令をエコーバックしてくるが、データとの区別はどうするか?・Arduinoが扱えるシリアルデータは1バイトずつだが、文字列のシリアルパケットをどう受け取るか?・リトルエンティアンのビックエンディアンへの入れ替えは?・ASCIIコードから16進数への変換は?・16進数から10進数への変換は?などなど。絡まったテグスを解きほぐすように、順番に解決していく必要があります。▼さっそく、VS-RC003の信号をArduinoで読み取るためのスケッチを書いて見ました。シリアル仕様マニュアルの例にもある電圧の読み取りに挑戦です。・該当箇所のデータをビッグエンディアンに変更したもの・それを10進数に置き換えたもの・さらに換算し、電圧の数値として読み取れるように直したもののそれぞれを表示するようにしてみました。rコマンドで読み出し命令を出し、結果を変数VSmsgsに入れて表示する。04で電圧を読み取る。部分が、該当の電圧データとなる。アスキーコードの16進数を数値に変換し、10進数に換算する。VS-RC003のRX,TXにそれぞれ配線する。5VとGNDもそれぞれ接続する。UNO系等ではハードウェアシリアル(Serial1.begin())が使えないので注意。読み取りエラーのフラグ用変数を宣言。読み取ったシリアルを入れる配列を宣言。04");//電圧を読み込む命令delay(30);//このディレイが小さすぎると失敗しやすい。//CR記号カウンタ。これが2回出たら1パケット終了。これの2回目から本データ取得。(それまではエコーバックの文字列ということ。//文字配列に文字を一個入れる。//#文字が出てきたら#カウンタを加算。//#カウンタが2になったら、コールバック終了なので改めてデータを取る。//改行文字が出てきたらCRカウンタを加算。//2回目の改行文字が出てきたら、データ取得完了し、換算と表示処理へ。0x00;//データにヌル終端を追加Serial.println(VSmsgs);//取得データを表示。");//以下、該当の電圧データをエンディアンを交換して表示する。");//以下、取得したASCIIコードを16進数に換算していく。//その際、範囲にない文字であれば、エラーフラグを立てる。{//取得した文字が0よりも前の文字であればエラー。{//取得した文字がfよりも後の文字であればエラー。0x57;//取得した文字がa以上であれば10からの数字に換算。0x30;//それ以外であれば、0から9の数字に換算。DEC);//ビッグエンディアンに変更後の16進数を並べる。vcc4;//16進数を10進数に換算する。DEC);//結果の数値を表示する。{//取得データにエラーが出ていればエラーと表示する。3625・・・のような感じになります。結果の換算もうまくいっていると思います。スケッチ文はかなり雑で下手くそですが、とりあえず基本ができてきたと思います。これをベースに、使える関数にしていきたいと思います。いう3Dプリンタを使っていて機能的にもなかなか満足なのですが、気力が満タンの時以外はなかなかスイッチを入れる気がおきません。スイッチを押すのが非常にめんどうなためです。この3Dプリンタはメインスイッチが本体の裏側にあるのですが、都合により本体を机の下に設置してあります。使うためには一度しゃがんだ上に身をよじった変な態勢のまま手探りでスイッチを探すという儀式を経なくてはならないのですが、これがちょっとしたエクササイズなのです。無事にスイッチを入れた後、万力にガツンと後頭部をぶつけたりした日には作業をやめてふて寝するしかありません。引越しにより置き場所を変えようとも、裏側スイッチの不便さは変わらないであろう!と思えましたので、メインスイッチの位置を変更することにしました。(※改造は大変危険なので自己判断でお願いします。通常の電子工作とは違い、交流を扱いますので特別な訓練を受けてない方や資格を持っていない方はこれ以上はやらないでください。ちなみに私は第二種電気工事士の資格を持っています。)▼CUBISのケースの底面のネジをすべて外し、ケースを取り外すと、スイッチの部分が露出します。スイッチを押さえているパネルのネジをはずすと、スイッチを取り出すことが出来ます。▼ぴったりのギボシを探すのも手間なので、スイッチのケーブルを途中で切断して延長します。延長ケーブルをつかっての再接続時には、リングスリーブなどを使ってケーブル同士を圧着し、絶縁テープで養生しておきます。電子工作ではハンダを使いますが、交流を扱う電気工事ではハンダは使わない方が安全です。▼スイッチを移設する場所にノコギリで穴をあけていきます。変な場所ですが、CUBISは全体的に丸みがあるので、スイッチがしっくり取り付けられる場所は限られます。スイッチの幅ぴったりにしないとガバガバになってしまうので、この手の作業はいつも緊張します。本当は正面が理想的でしたが、サイドに取り付けてみました。できあがりです^^▼ついでにCNCの箱のサイズ感を見るためにダンボールで囲ってみました。動かしてみて問題がなければ家具を改造した「ミニ工場タワー」として再作成する予定です。(動かし方はまだ知らないです。工作道具をどこに置いたか、どこにしまったか、本当によく分からなくなります。ネットの検索のように、その道具を使いたいと思った時に散らかった部屋の中からパッと浮かび上がるというのが一番の理想ですが、そうもいきません。部屋の写真なのでものすごく恥ずかしいですが、道具や資材の棚のビフォーです。100円ショップのポリプロの靴箱などにラベルを貼ってありますが、ラベリングできているのはほぼ資材のみです。中身がなんとなく分かるように半透明のハコを使っていますが、道具等がいくつかのハコなどに分かれて収納されていたりするので、検索は記憶だのみです。ロボット作りの資材がどういう規模になるのか分からないまま、ハコをその都度買い足していった結果、山積みになってしまいました。棚がないので下のハコにあるものを取り出すときは上のハコを全部どかす必要があります><下のハコにたどり着いたのに目的のものが出てこなかった時は、200ypほどゴッソリもっていかれます。(yp=やる気ポイントの略)また、作業中はほとんどのハコが開いた状態になり机、床ともに埋まってしまい、メインの作業スペースがなくなってしまうという致命的な欠陥もあります。100円ショップ製品なので、買い足すと規格がずれてサイズが揃わなくなるというのもジワジワypを削ってきます。ここ数年間、そういう劣悪な環境で作業をしていました。仕事でヨレヨレになって帰ってからの作業となりますと、そりゃ開発スピードも遅くなるというものです。▼リフォーム後のロボット資材容量の目安のために、引っ越し前ですが道具収納の部分だけでも進めてみます。中身が何となくわかるように。・同一規格が長く続き、種類が豊富なこと。・ラベルをつけられる。・引き出し式が望ましい。・引き出しはなるべく浅い方がよい。(物を重ねずに入れた方が探しやすい)・道具ごとに引き出しを設定できる。▼まだ途中ですがアフターです。選んだのは無印のポリプロケースです。今後も長く同じ規格を続けてくれることを期待できそうなブランドです。質感の割りに割高感は否めませんが、規格が続き、サイズが豊富に揃っていることも含めての価格だと自分に言い聞かせます。「文具」とか「工具」のようなざっくりとした分け方ではなく、品目ごとに細かく分類し、ほぼ1対1で引き出しとラベルを用意してみました。それぞれの道具が帰るべき部屋、住所を持っているという感じになりました。道具に住所が出来た結果、バツグンに検索性が向上しました。ハサミを使おうと思った時に、ハサミと書いてある引き出しをあけるとそこにハサミがちゃんと入っているという気持ちよさ!住所の中に道具が収まっていなければ、机の上あたりに必ず出ている、ということになるので、それも手がかりになります。片付ける際にも、片付ける場所を考えなくてよいので、脳への負担が少なく快適です。・製作プロジェクトごとのケース・作業中の物をとりあえず入れてしまえるごちゃ入れケース・よく使う工具をまとめたスタメン道具格納所などです。面倒と思って後回しにし続けた収納計画も、いざやり始めてみると楽しいものです。最近はヒマな時間は購入した中古物件のリフォーム案の検討で時間がつぶれてしまっています。リフォームの検討のためにはまず持ち物の棚卸しから!ということで泥縄的ですがいろいろと整理中です。自分の部屋が確保できたのでレトロゲームコレクションの収納庫付きのロボット工作部屋にする予定です。作業場部分のコンセプトは「工作キッチン」。キッチンの機能的なレイアウトを紹介している本などを参考に、それを作業場に当てはめて考えています。上の写真は「住まいの解剖図鑑」のキッチンのページです。料理の手順に合わせ、冷蔵庫→シンク→まな板→コンロという順番で配置するのがよいと書いてあります。設計→切削/3D出力→板金/加工→半田付け/組み立て→塗装→動作テストのような順番かと思います。理想論ですが、それぞれの行程についての作業場所が確保できていると便利そうです。▼まず、CNCと3Dプリンタは細長いワードローブのような安物のロッカーに納めて、内側に防音ウレタンを貼るのがよいかなと思っています。そのロッカーにフィラメントやアルミ板といった関連物資も納めてしまい、「ミニ工場」にする予定です。「ミニ工場」はキッチンで言えば電子レンジかオーブンのようなイメージですが、カタチは冷蔵庫っぽくなります。プリンタがその近くにあっても良さそうです。半田ごてなどを使う作業スペースはさしずめシンクで、メインの作業場所になりそうです。削ったり板金をしたりするスペースはまな板でしょうか。ソバにPCも必要です。「ミニ秋葉」と呼んでいる抵抗やコンデンサなどの棚は、キッチンで言えば冷蔵庫。メイン作業場の左側を考えています。塗装はめったにやりませんが塗装ブースも必要です。この配置はちょっと困りものですね。ロボットをテストする場所は配膳台のような役割でしょうか。すると振り向いてすぐに作業できる場所がよさそうです。道具の収納も重要です。頻繁に使うスタメンの道具は、収納方法は決まっていませんが1カ所にまとめておいた方が良さそうです。工作のやる気を削ぐ原因の心のベストテン第一は、なんといっても「道具がすぐ見つからない!」ですから。頻度の少ない道具にもホームポジションを与えておこうと思います。棚にラベルを貼ってそこにしか収納しないようにしておけば、出すのもしまうのもラクになるはず・・・と思っています。引っ越し前ですが道具のホームポジション化を進めてみます。競技デビューからもう6年目ですが、改めてゼムネスの自己紹介をしてみたいと思います。▼ゼムネスは市販二足歩行ロボットのロボゼロをベースとしてその応用範囲を広げた「汎用ヒト型決戦遊具」です。1台のロボットで様々なロボット競技に出場し、遊び倒すことを目的としています。二足歩行ロボットとしては一番物理的な制限の厳しい1kg以下級のクラスの機体ですが、各所にチューニングを施すことで、重量で格上の相手ともほぼ互角に試合を行うことができるほどになりました。ベース機体をリスペクトしつつも、ほとんどのパーツを再設計しています。▼ヒト型レスキューコンテストで優勝したときの動画です。バトルでもいつか優勝したいです。超合金玩具のように、変形合体的なお楽しみ要素もあります。ゼムネスは出動する競技内容に合わせ、追加オプションやパーツの換装などにより、ゼムタンク、ゼムキャノンなどにモードチェンジすることが可能です。こんな玩具、子供の頃の自分に見せたら欲しすぎて卒倒すると思います。兵器感が強くちょっと怖いので最近は封印しています。ロボでサバゲという競技で電動ミニガンを放ちます。チロルチョコロボット大会の射的コーナーで活躍します。ベース機体を軸に発展させていくという初期に書いたプランを、ゆっくりと一つずつ実現しています。操作にファミコン型のコントローラーを採用しているのも大きな特徴です。現実世界という最高精度の物理エンジンを活用した新作ゲームというコンセプトで、レトロフューチャーな世界観を楽しんでいます。ロボットの操作は複雑になりがちですが、ファミコン型のコントローラーは少ないボタンで1000以上ものゲームタイトルに対応している実績があります。そのノウハウを、ロボットの操作に応用しています。バトル競技での楽しさはもちろん、複雑な動作が必要なレスキュー競技で優勝したことは、このコントローラーのポテンシャルの証明になったと言えると思います。古いですが、操作方法などの動画。いろいろなコントローラをテストしている段階の動画。ロボットのシステムはチューニング前で、動作も遅いです。「子供の頃に欲しかった玩具」を大人になってから自分用に作ってみる。いう楽しみ方が、いまは比較的簡単に実現できる時代になっています。一家に一台、自分だけの競技用ロボット。久々のゲーム機修理記事です。Liteの上画面の調子が悪くなりました。所持している2台がほぼ同時に故障しました。電源投入直後はなんとか保つのですが、ほどなく画面に横線が入り見えなくなっていきます。2台のうち1台は完全に液晶がつかなくなりました。症状的にコンデンサの劣化かとは思うのですが、液晶基盤内部の抵抗だとすると交換は困難です。1500円程度で液晶パーツが通販されているので、そちらを購入して交換修理することにしました。分解方法は下記のブログに詳しいので参考にさせていただきました。液晶の交換なのでフレキをコネクタに差し替えるだけの簡単な作業かと侮っていたら、思わぬ難所が!なんとフレキケーブルにスピーカーが半田付けされています。フレキケーブルへの半田付けは、フィルムがすぐチリチリになるのでかなりの苦手意識があります。そもそも半田でやるべきものなのかどうかもよくわかりません。できれば避けたいのですが。所持している中で最も低温の183度〜190度の低温はんだで挑戦です。古い液晶からスピーカーの配線を外します。1はんだごての先端に半田を少量のせ、熱の伝達力を高めておき2はんだごてを接点に近づけ、ピトッと半田が接点に吸着するなり配線を抜くっ!というやり方でフレキにダメージを与えずに配線を外すことができました。次に新しい液晶のフレキの半田づけです。1はんだごての先端に半田を少量のせ、熱の伝達力を高めておき2接点にはんだをのせっ!というやり方で、はんだがのってくれました。1→2の時間を最小にすると安全です。1秒ぐらいでパパッという感じでやります。フレキの半田ポイント側は受け入れ体制バッチリのようで、もうすこしゆっくりでも熱に耐えそうです。フレキに半田がのりさえすれば、あとは簡単です。12のパターンを使ってスピーカーの線を接続します。スピーカー側の線に半田があまり残っていなければ、少し半田をのせておくのも良いと思います。▼もう一方のスピーカー配線も無事完了!怖がることはなかったです。▼ちなみにこのフレキを丸めて穴を通すときには、セロテープなどで筒状に仮止めしてから通すと楽に通ります。LRボタンを組み立てる時なども、セロテープで固定すると組み立てやすいです。▼あとは組み立て直せば完成。フレキをコネクタに挿す深さが足りないと、電源が正常に入りません。(一瞬下の画面だけパッと光ってすぐ消える症状。)ヒューズが切れているだけという症状もありえるので、液晶交換の前にそちらをテストしてみるのもよさそうです。ヒューズの位置は下記のブログが参考になります。http://manbou.tea-nifty.com/blog/2009/08/post-d6d3.html▼DSぐらい新しいものになると部品交換ですら細かくて大変です。0Pagetop逆ガンダム▼オルフェンズ。ガンダム×任侠モノという雰囲気が強いですが、それ以上に初代ガンダムの要素をすべて逆にしてプロットし、それをつなぎ合わせたような構造が気になります。ランバラル役、シャア役、ガルマ役がかなりそれと分かりやすい姿で登場したのは、そういう楽しみ方をしてくださいというメッセージだったのでしょう。初期からいわゆるフラグと呼ばれるお決まりの前触れ逆の結果を出してエンディングテーマへとつなぐ手法が頻発し、「フラグクラッシャー」という言葉もネットで見られるほど。オルフェンズは逆ガンダムとして認知されているものと思います。そもそも初代ガンダムの要素ひっくり返して再構築する手法は小説版ガンダムやZガンダムから続く伝統だとは思います。ガンダムシリーズといえば決まって仮面のライバルが登場し、主人公は敵と恋に落ちるものです。今回は特にその度合いが強いと思います。いうことは、初代ガンダムでの各キャラクターの結果が、該当するオルフェンズのキャラクターの行く末を暗示しているという面があると思います。最終回はどうなるのでしょうか。ガンダムの要素がオルフェンズではどうひっくり返されてきたのか、分かりやすいところを並べてみたいと思います。主人公:アムロ→民間人が、成長するに従って人間兵器になっていく。成長するに従って人間性を獲得していく。上司役:ブライト→アムロの手なずけに苦心。UCシリーズに出続ける。オルガ→最初から三日月の忠誠度100。ヒロイン役:セイラ、フラウ→主人公とくっつかない。クーデリア、アトラ→両方とも主人公とくっつく?アドバイザー役:リュウ、ハヤト:リュウは途中退場。合わず劇中で叩かれる。