« 2007年11月 | トップページ | 2008年1月 »

2007年12月22日 (土)

週刊myRobotを作ろう(85)

■ロボット同士のコミニュケーション
久々に、1号機と2号機を並べてみました。Id01_91_09
左がかなり改造した2号機、右は背中のあいた1号機

2号機は、ユニリモコンを背中に搭載、目にはライト、耳にはマイク、尾輪は「足短くん」だったりと、かなり改造しまくっています。
一方、1号機はどちらかというと、いつも分解されて、部品のテストですとか配線のチェックなどに使われていて、現在もリアボディケースはついていない状態になっています。

◇ユニリモコンの活用
ユニリモコンの活用をあれこれ考えていたのですが、「テレビリモコン」によるID-01の操縦が出来るようにしてみました。
一方、ID-01から「テレビ」あるいは「鉄道模型」などもコントロールしてみましたが、どちらも、一方通行の通信でしかありません。

◇双方向のデーターのやりとり
そこで、1号機にも参加してもらって、ユニリモコンを通して、双方のロボット同士でコミニュケーションをとらせてみようかと考えています。

あれこれ考えてみましたが、あまり単純では面白くないので、ハードルを上げた構想(妄想?)を考えてみました。
①2号機を「テレビリモコン」でスタートさせる。
②2号機は部屋から廊下に出る。
③となりの部屋の前にいる1号機に、ユニリモコンで指令を送る。
④指令を受けた1号機はとなりの部屋へ入り、1分待ってから温度を測かり、廊下に戻る
⑤1号機は2号機に、温度データーをユニリモコンで送る
⑥2号機はそのデーターを読み取り、部屋に戻り温度を告げる

◇問題点
内容を分析・検討すると問題は山積しています。
まず、夫々のロボットが、部屋の出入りを正確に行えるか、そして向き合えるのかです。
ご存知のように、ID-01はきちんと真っ直ぐに走りません。直進に近いコースは取れるのですが、あくまでもそのラインは、ファージーです。
部屋を出たり、入ったり、廊下に出て、相手のロボットの方向に正確に向きを変える・・・
何か気が遠くなるほど、色々な問題が山積しているような気がしてきます。
この辺のコース取りの正確さはトレースラインを使う、正しく向き合うのはマーカーの認識など、あれこれ方法をめぐらして今後の研究課題にするということで、先延ばしすることにしました。

◇妥協
そこで妥協として、廊下に向かい合っている(離れた場所にいる)ロボット同士で、温度データーの受け渡しが出来るのか・・・を、とりあえずプログラムしてみようかと、思っています。

◇ロジックを考える
前項で要件を絞りこみましたので、まず温度を測り、それをデーター化して赤外線で送るロジックを考えてみましょう。
屋内で使用すること、バッテリーの使用範囲内ということも考慮すると、計測範囲は0~39度までの間として考えてみましょう。
すべて「IF文」で判定させるのは面白くないので、なるべく少ないステップで値を算出してみるロジックを考えてみましょう。
つづく

■トピックス
二足歩行ロボットが、転倒しても自分で起き上がるさまを見たときの感動は大きなインパクトを受けた覚えがあります。
しかし時代がすすみ、この頃では、Ommibotのように小さなトイロボットまでが当たり前のように演技をしたり、起きあがてしまう世の中になってしまいました。
なにしろ16以上のサーボモーターを使っているのですから出来て当たり前だと・・・・

◇◆現代版のカラクリ人形
ところが、たったひとつのモーターと、歯車、カム、スプリングのカラクリだけで、ころんでも起き上がって、しかも2足歩行するロボットが発売されました。Id01_91_07
   
じたばたロボット「コロボット」(科学のたまご サイエンスバージョン)のご紹介です。
このWebサイトに動画が載っていますので、立ち上がる様子をご覧下さい。

全長20cmに満たない、なんとなくキャシャな構造をしたロボットですね。
組み立てキットになっていますが、対象は子供さん用なので、ものの10分もあれば組み立てられます。
歩かせると、カムを利用した動きはまるでよっぱいのようですが、板の間ですと結構倒れずに歩き続きます。Id01_91_08
たおれてもおきあがる(画像クリックで拡大)

倒さないと面白くないので、壁に向かわせたり、こづいたりして倒すと、からだを2つに折り、腕を振り回してちゃんと立ち上がり、そして歩きだします。
見ていて、なんとなく微笑ましく、けなげな感がします。

◇機械的なからくり
自分が倒れたか、足をついた、などの把握は、3つのセンサーが請負います。Id01_91_01a_2
3つのセンサー(画像クリックで拡大します)

前に倒れたかは①のセンサー、後ろは②のセンサー、立ち上がったかは、③のセンサーです。
センサーが押されると、カムがはずれ、別の動きが始まる・・・ 昔の江戸カラクリ人形の仕組みを思いおこさせます。

機械じかけで起き上がる仕組み、これぞ「現代版のカラクリ人形」っと絶賛したくなりました。
尚、お値段は、お財布にやさしい2280円でした。
このロボットをご紹介くださった、てるさん、有難うございました。楽しんでいます。

本屋さんで売り切れていたら、1500円以上送料無料のアマゾンでも手に入ります

■あとがき
「ジングルベ~ル」などと音楽が鳴りわたっていたのは過去の話。
秋葉原の帰りに六本木を歩いてきましたが、今はいたるところにLEDのクールな光が美しく満ち溢れていました。
ショッピングセンターに出かけてみると、クリスマス飾り付けのコーナーは影をひそめ、お正月飾りが溢れていました。

この頃、時の流れがすこしづつ加速して感じられてしまいます。
タイムスリップが起きている? いや、まさしく歳をとったあかしかもしれません。
「紅白・・・」「ゆくとしくるとし」もうすぐですね。
    

| | コメント (12)

2007年12月 8日 (土)

週刊myRobotを作ろう(84)

■更新情報 多機能リモコン用PG改良 (2007/12/15)
■更新情報 ちょっとプログラム(更新中 (2007/12/14)
■更新情報 赤外線を11個以上登録する (2007/12/11)

■更新情報 どんなリモコンがベターか? (2007/12/10)

■テレビリモコン拡張版
前号で、ID-01をテレビリモコンで操縦する方法を説明してみましたが、いくつかの改善点がわかりました。
併せて、今回はもう少し色々な事をさせてみようと、多機能リモコンの色々なボタンを利用してみました。

◇動画
宜しければ動画をご覧下さい。
プログラムの中での動きがお分かりいただけると思います。


テレビリモコンでロボット操縦拡張編
テレビリモコンでロボット操縦拡張編

背中に背負ったメタリックボールに赤外線が反射し、バックパックに内蔵したユニリモコンに信号が届いています。
こうしてみると、何か銀色の風船を上げているようにも見えますね。

◇ちょっとした改造
拡張プロブラムを動かすにあたって、事前に、ハード面のちょっとした改造をいくつか行いました。以下に列記しておきます。
●目の改造
動画の中で目が光るのは、『週刊myRobotを作ろう(75)』の中で「目には光を、耳にマイクを(続編)」で改造した2つのLEDに、デジタル出力3ピンで3.0Vの電力を供給しております。
デジタルとしての本来の使用方法ではないのはわかっていますが、とりあえずのテストとしてお考えください。

●腕への出力
前回、ユニリモコンを背中に移してしまいましたので、腕ツールへの配線が途切れてしまいました。
そこで、デジタル出力4の配線を腕に引いてみましたが、LEDなら点灯するのですが、扇風機のモーターは回りませんでした。

こんどはリレーを利用して、ロジック電源からでもとってみようか・・・と思っています。
今回、動画では、左腕先のLEDを点灯しています。左下のタイトル文字と重なってみにくいですが、宜しければご覧ください。
尚、デジタル出力3番と4番を同時にONにすると、電力不足になり目の方が点灯しません。
今後、デジタル信号でリレーを動かし、電力は別から供給する必要がありそうです。

●デジタル出力
バッテリー蓋の横にブレッドボード用の10端子のソケットがありますが、その根元はアームボードに繋がっています。
今回は、デジタルの3~4番ピンを、ヘッド部の目と、腕先に供給しますので、アームボードから直接とっています。
いずれ、リレー及びスイッチを取り付け、ブレッドボードでの実験との切替も可能なように、改造をおこないたいと思っております。

◇多機能リモコンの他のボタンを使用する
今回は、ID-01のユニリモコンと同様に、他のリモコンの信号を学習できる、「学習型多機能リモコン」を使用しました。
電源ボタンの下にある5つのモードボタンにより、5系統の機器(テレビ、チューナー、DVレコーダー、HDレコーダー、VTRなど)をコントロールできますが、エアコン、照明などのコントロールも空きボタンに設定できます。Id01_90_22
ご覧のように、チャンネルボタン以外にも、③~④のボタン配列は、見るからにロボットの動きをコントロールしやすそうです。

以下のような目的をもって、ユニリモコンにとりあえず、30近くのコマンドを割付てみました。
①電源ボタン
プログラム終了
②ヘッドに関するセクション
各種警報、首の左右上下、中立、写真撮影、指の開閉
③ロボットの移動と手動きセクション
前後左右、Uターン、左右腕上下、腰上げ下げ
④音声の録音などに使用予定
多機能リモコンのプログラム概要は、こんなところです。

●詳細(赤字はユニリモコン割り当て番号)
①電源ボタン 0 
電源)プログラム終了
②セクション
1)クラクションと足のビーコン点灯 
2)サイレンと赤LED点滅 
3)口笛と緑LED点滅 
4)首左回転 
5)センター位置(左右動作) 5
6)首右回転 
7)上を向く 
8)センター位置(上下動作) 8 
9)下を向く 
10)腕の開閉(トグル動作) 10
(トクル動作とは、一回押すたびに「開」または「閉」を、順番に繰り返します)
11)空き 11
12)写真撮影(赤LED点滅、目点滅、シャッター音) 12
③移動セクション
左側 +)左腕上へ 26
    -)左腕下へ 27

真ん中の4つのスイッチ
 上側) 緑LED点灯(トグル動作) 13
 2番目) 黄LED点灯(トグル動作) 14
 3番目) デジタル出力4(トグル動作) 15
 4番目) 空き 16

右側 +)右腕上へ 28
    -)左腕下へ 29 

左列2ボタン
上側)左旋回10度 17
下側)180度ターン 18

クロスバータイプ
真ん中セレクトスイッチ
上)前進 21
左)左旋回45度 22
センタボタン)停止 25
右)右旋回45度 23
下)後進 24

右列2ボタン
上側)右旋回10度 19
下側)腰上げ下げ(トグル動作) 20
④音声録音セクション
未定義 30

◇デモ走行

12/9に、KENさん主催の「ロボットの集まり」が、東京三田でありますので、この試作版のプログラムを搭載したID-01を、お披露目をしてこようかな・・・と考えています。

◇どんなリモコンがベターか?
先日、KENさんの「ロボットの集まり」に参加させていただいたのですが、そこで話題になったのが、皆さんめいめいがお持ちになったテレビリモコンによる、到達距離の問題です。
狭い部屋ですと、壁、天井、家具などに赤外線が反射して、結構スムースにコントロールできますが、広い会場ですと、壁、天井の距離が遠く、赤外線の反射は望めません。
コマンダーによって、到達距離の差異が、かなり出てしまいました。


●赤外線の強さ
ID-01のコントロール範囲が、リモコンによって異なるのです。
そこで、皆さんのリモコンの赤外線の強さ(明るさ?)を測ろうということになって、携帯電話のカメラで確認してみました。
色々調べて見ると、赤外線発光ダイオードがひとつついているものと、2つのついているものがありました。
Id01_90_24 
赤外線撮影が可能な携帯電話のカメラで撮った画像

しかも、押している間、連続して点灯しているものと、細かく点滅しているものもありました。
メーカーコード、あるいは機種コードによって、赤外線の発光間隔が異なるようです。
マイクロヘリのハニービーのコントローラーについている赤外線発光ダイオードは3つも付いていました。
Id01_90_25
    
●タッチレスポンス
リモコンの種類によって、ボタンの押ししろ(押したときの深さ)も、コントロールしやすさに影響します。
なるべく、ひっかかりがなくスムースに、そして、押ししろがなるべく浅い方が、素早いコントロールが出来てベターだと思います。

テレビリモコンは、2000円前後で多機能リモコンが購入できますが、発光ダイオードが多く、そして光量が大きく、かつ、押ししろが浅いリモコンがベターだと思います。
尚、販売店にいって、携帯電話で覗きならが、リモコンをチェックして回るのは不審な行動ですので、店員さんに事情を話すなりして、誤解の生じないよう充分お気を付けください。

●2足歩行ロボット用コントローラー
このごろ、2足歩行ロボット用のコントローラーが出回り始めました。
4945984011153_2 テレビリモコンで代用などせずに、最初からロボット用のリモコンを使用してしまうのも、良い方法だと思います。
現在のところ、赤外線式のものよりも、無線式タイプのものが多いようです。
どのリモコンがベストなのか分かりませんので、ご興味のある方は、調べてみるのも良いかもしれませんね。
(2007/12/10)


◇赤外線を11個以上登録する
テレビリモコンによってデザインは少しづつ異なるようですので、ご自分のコマンダーに何番を割り当てるのかメモしておくと、赤外線登録の時と、プログラミングの時に、分かりやすくなります。
私は、100円ショップでホワイトボードを購入して、それにメモるようにしています。
試行錯誤での修正にも、直ぐに対応できるからです。

それでは、11個以上の赤外線の登録を行ってみる事にしましょう。
ユニリモコンに登録出来る割り当て数は、全部で251個もあります。
全部使用する必要はありませんが、市販されている「テレビ多機能リモコン」ではだいたい30~50弱のボタンが付いています。
さらにモードスイッチにより、画面が2~5面に切り替えられますので、一面が50個、それが5面で、50×5=250個となり、ユニリモコンの登録数が決して多過ぎる事はないように思われます。
それでは実際にPC_Controlによる、ユニリモコンへの登録を行ってみましょう。

●PC_Controlによる登録方法
この登録方法は、PC_Controlのマニュアルに載っていますので、詳しくはそちらをご覧ください。
ID-01とPC_Controlを立ち上げBluetoothで接続すると、画像Aの状態になります。
この時、画面右下のロボヘッドマークは無色で表示されています。
Id01_90_28
画面クリックで拡大します
   
☆赤外線コントロール発信画面
デスクトップPCのキーボード右側にあるテンキーの「0」キー①を押すと、順に「B」「C」の画面に変わります。
マニュアルによりますと、「C」の画面の状態を「赤外線コントロール発信画面」というそうです。
Id01_90_27
   
☆赤外線コントロール学習画面
こんどは、テンキーボード上にある「/」キー②を押すと、「D」の画面になり、右下のマークが赤いカラオケマイクのような形に変わります。
この状態を「赤外線コントロール学習画面」というそうで、「0」~「250」までの赤外線リモコンの信号を記録保存できるようになります。
Id01_90_29
画面クリックで拡大します
   
☆学習画面のページ切替
画像「E」~「F」の左下にある数字(赤丸印内)をご覧ください。
テンキーの左横にある、「↑」「↓」ボタン③で順にカウントアップ、ダウンが行えます。
画面「E」には、「0-」と表示されていますが、「↑」キーを押すごとに「1-」(画面F)、「2-」(画面G)・・・・・そして24回押すと「24-」までページ画面をカウントアップさせる事が出来ます。さらに「↑」キーを押すと最初の「0-」に戻ります。
「↓」キーは逆にページの数字がダウンしていきます。
☆この数字の意味
さて、この「0-」、「2-」、「24-」の意味はなんでしょうか・・・
実は、左側数字は10の位、「-」は1の位を表しています。
「0-」のページ(画面E)で、テンキーで「5」を押すと、「05」を指定できます。
「1-」のぺ-ジ(画面F)で、テンキーで「5」を押すと、「15」を指定できます。
「2-」のぺ-ジ(画面G)で、テンキーで「5」を押すと、「25」を指定できます。
「24-」のページ(画面H)で、テンキーで「5」を押すと、「245」を指定できます。
つまり、ページ数を「A」、テンキーの値を「B」とすると、次の式がなりたちます。
A×10+B=指定番号
そしてテンキーの「*」キーは10が代入されます。
従って、「0-」と「*」では「10」、「1-」と「*」では「20」、「24-」と「*」では「250」になります。Id01_90_32a_2

「250」の登録開始画面はこのようになります

これで、「01」~「250」までの番号指定の方法はお分かりいただけましたか?
えっ、「これだと250個までしか登録できず、ひとつ抜けているのでは?」ですって・・・・
そうです「0」が抜けていました。
「0」の登録は、スペースキーを押してください。どこのページでも結構です。

ここでは、「11」という番号を指定すると次の画面が表示され、赤外線リモコンの学習画面に進みます。Id01_90_30a
     
●赤外線リモコンの学習
リモコンを学習させる方法は、前回ご案内した「音声によるコマンドの割付」とオペレーションと似通っています。
(前号まで戻ってご覧頂くのは恐縮しますので、前号のくだりをそのまま転記しました。ご了承ください。)


エアコン(テレビなど)のコマンダーを、ID-01のユニバーサル赤外線リモコンに向け、今回は「チャンネル11」のボタンを押します。
するとID-01が「モウイチド」と告げ、ディスプレイには次のメッセージが表示されます。
Id01_90_30b
Id01_90_30c メッセージが連続して表示されます
       
☆コンペアチェック
リモコンの「電源ON」のボタンを再度押して、ユニバーサル赤外線リモコンに、前回と同一のコマンドかのコンペア(比較)チェックを行います。
OKならば、「学習はうまくいきました」と、次のメッセージが表示されます。
Id01_90_30d
        
音声コマンドの割付と、リモコンの学習モードは、連続して次々に登録することが可能です。

例えば「241」の登録画面は次のようになります。Id01_90_31a_2

     
暫く何もせずにいると、次のメッセージがディスプレイに表示され、このモードを終了します。
Id01_90_06h_2

音声で登録する方式よりも、こちらテンキー操作の方が、はるかに効率的に登録作業ができるのではないでしょうか。

☆登録された赤外線信号
ユニリモコンから登録された信号は、0~250番までのインデックスとともに、第1信号、第2信号という形で16進数で、ブレインボードのメモリーに格納されます。
文献によりますと、通常信号は第1信号、トグル信号が第2信号とあるようです。Id01_90_33

登録した赤外線信号の一部(画面クリックで拡大)
    
★ノートパソコンに外付けキーボード
「ロボット」の集まりで、このテンキーの入力をノートPCで行おうとして、大変苦労されている方が何人もいらっしゃいました。
外付けのPC用キーボードを接続するだけで、入力ははるかに楽になります。
このPC用キーボードは、PCショップで千円弱のものから販売されています。Id01_90_26

画像はバッファロー製USBフルキーボード
(ヨドバシ価格980円)


ノートPCから離れて入力が出来ますので、メール、ワードなどの入力作業も楽になります。この際、ワイヤレスしたいとか、超高級製品を望まない限り、出費は少なくてすみそうです。
私は、ノートPCのキーボードが操作しにくいので、ID-01以外でも、いつも外付けキーボードを常用しています。PCを持って出かけるときも外付けキーボードをカバンに入れていきます。なにしろとても軽いものですから・・・・
(2007/12/11)

◇ちょっとプログラム
前号からお話していたプログラムの解説を始めないと、後わずかで年を越してしまいます。
一方で、皆様かなりVCLEの勉強をされているようで、ゼロからのプログラミングの解説などをしたら、「なめんなよ!」っとしかられてしまいそうです。
そこで、今回のユニリモコンを使用したプログラムの要点だけを「ちょっとプログラム」として、簡単に説明しておきますので、ご了承ください。
尚、中級以上のレベルの方は読み飛ばされてください。

☆ユニリモコンの判定プログラム
今回、プログラムの基本になるのが、テレビリモコンから「赤外線を受けたか?」そして、それが「何の信号か判定」し、その受け取った信号によって「何をするか」の命令を書けば、「ユニリモコンの判定プログラム」の完成です。
○ユニリモコンに「0」を
登録
事前に、テレビリモコンの「電源」ボタンを「0」と、ユニリモコンに登録しておきます。
たしか先週号で「チャンネル11」を「0」に登録してしまったのですが、大丈夫でしょうか?
ユニリモコンの登録を新たに行えば、前回の登録は上書きされてしまいますので、ご安心ください。
ついでに「1」に1チャンネルのように、「1~12」まで順番にユニリモコンに追記登録しておいてください。
○いよいよプログラミング
まず、「電源」ボタンを押すと、プログラムが終了するプログラムを作成してみましょう。
正確には、「赤外線を受けたか?」→「の信号かを判定」→「プログラムを終了する命令」という動作のプログラムを作ることになります。
これがそのプログラムです。Id01_90_34

画面クリックで拡大します

WaitFor命令
赤い枠の中に”Remote Control Update”と書いてあります。
リモートコントロール(ユニリモコン)からの赤外線信号が来るまで、じっと待ち続けます。
そして、赤外線信号が入ると次に進みます。
IF文
皆様良くご存知のIF文です。
「もし何々が~だったら(Then)こうする、違っていたら(Else)、ああする」という命令です。
緑の枠の中に”Remote Control Received Code 0”と書いてあります。
リモートコントロール(ユニリモコン)から受信した赤外線信号が「0」なら、「Then枠の中身(Stop命令)を実行」、違っていたら「Else枠の中身(現在何もありません)を実行」というわけです。
Stop命令
文字通り、プログラムを停止(終了)させます。

ここまでは、お分かりいただけましたか?
VCELは文字通り、ビジュアルに命令をフローチャートにしてくれますので、流れが分かりやすいですね。

でも、このIF文は、「ELSEの枠」の中が、からですね。
このELSEとは? そう、何々でなければ・・・ つまり、リモコンのシグナルが「0」でなけば何々をせよ!っという事になります。
「0」以外の場合、つまり、「1」~「30」の命令がかきこめます。
それでは複数プログラムはどう処理したら良いのでしょうか?

☆複数プログラムの処理
次の2つの方法で「IF文」をいくつも繋げていけば良いのです。
1)IF文を縦に繋げる方法
ご覧のように、IF文を、判定する数だけ縦にどんどん増やしていきます。
当然ですが、フローチャートがどんどん縦長になります。Id01_90_36a

画面クリックで拡大します

この手法で全ての判定を行うと、ひとつの判定で処理(IF~Then)をしたにもかかわらず、全てのIF文の判定を通らなくてはならないため処理が遅くなるという事です。

2)IF文の中にIF文
ご覧のように、ELSE枠の中に、次のIF文(赤枠内)
を書き込んでいく方法です。Id01_90_36b
親亀の上に小亀をのせて・・・のように、IF文の中に、IF文がどんどん書き込まれていきます。このプログラミング手法は「入れ子」と呼ばれています。

この手法は、ひとつの判定で処理(IF~Then)が行われると、そのまま下に抜けてしまうため、全体の処理が早くなる利点があります。

今回、公開したプログラムは、当初、全部入れ子方式で判定をしていましたが、「縦」と「横」の組み合わせで
、「移動(走行)」「腕・腰」「頭部」「LED、警笛」などの各セクションに分けて、IF文をまとめてみました。
当然、最初のIF文から判定していきますので、
優先順位の高い処理は最初に持っていく必要があります。
従って、「移動(走行)」セクションは前の方に配置しました。

☆フラグとは
先日行われた「ロボットの集まり」に参加された方から、フラグについてのご質問がありました。
たしかに、VCLEの変数の所をみると、沢山のフラグ(Flg)が定義してあります。

簡単にいうと、FLGは、状態を表す旗と思ってください。


例えば、LEDの点灯/消灯の状態をあらわす事もできます。
走行の状態を表すのには、停止状態は「FLGが0」、前進状態は「FLGが2」、後進状態で「FLGが8」というようにしておけば、そのFLGを見るだけで、現在の走行状況を知ることができます。

緑のLEDが付いた状態、走行の状態など、いくつかのFLGが存在した場合には、それらのFLGに分かりやすい名前をつけていきます。
今回のプログラムでは、画像のように沢山のFLGを用意(赤枠内)してあります。Id01_90_37a

画面クリックで拡大します

☆トグルスイッチ
FLGの使い方の応用で、トグルスイッチ的な使い方をご紹介します。
つまり、ひとつのボタンを押すたびに、LEDの点灯、消灯を順番に行うプログラムです。
今回のプログラムでは、LEDの点灯/消灯以外に、腰の上下、ロボットハンドの開閉に使用しています。


たとえば、初期処理で、旗をしまっておきます(FLG=0)。
赤外線リモコンで、緑のLEDを付ける命令が入ってきました。
緑のLEDを付ける処理と同時にFLGを立てます(FLGは1)。
このように、FLGという変数部分に、0とか1とかが代入された状態を、フラグを立てる・・と呼びます。
これだけでは何のことやら分かりませんね。
実際にプログラムの中身を見てみましょう。赤枠内に注目してください。Id01_90_37b
    

画面クリックで拡大します

コマンドが押され、この処理に入ってくると、LEDを点灯する前に、フラグ(FlagD1)が”0”かどうかのIF文があります。
先ほど述べましたように、初期処理でフラグの中身を”0”にしておきましたので、「その通り(Then)」の処理を行います。
Thenの処理枠の中には、LEDを点灯する命令と、フラグ(FlagD1)を”1”にする2つの命令が入っています。
つまり、緑LEDが点灯すると同時に、フラグ(FlagD1)の中身は”1”が代入された事になります。

次にコマンドが押され、この処理に入ってくると、こんどはフラグ(FlagD1)の内容が”1”ですので、「そうではない(Else)処理」を行います。
Elseの処理枠のなかには、LEDを消灯する命令と、フラグ(FlagD1)を”0”にする2つの命令が入っています。
つまり、緑LEDが消灯すると同時に、フラグ(FlagD1)の中身に”0”が代入された事になります。

このように、次回、この処理枠に入ってくれば、「点灯、フラグは1」、その次は、「消灯、フラグは0」と、トグル(繰り返される)わけで、コマンドがここに入ってくるたびに、LEDのON/OFFが出来る事になる事になります。
フラグを使用した簡単な仕組みですが、リモコンのボタンをひとつ使用するだけで、2つの処理が行えた事になります。
このテクニックを身につけると、色々応用がききますので、是非参考にして頂ければと思います。


この項目の後ろの方に、サンプルブログラム
”Remot Control02Ux.vclike”をダウンロードできるようにしました。
一度ダウンロードしてVCLEに読み込み、研究されてでみては如何でしょうか。

つづく
(2007/12/14)


◇多機能リモコン用プログラム公開
冒頭の動画でご覧頂いた、多機能リモコン用のVCLEプログラムを公開します。
今回はテレビ用多機能リモコンを使用し、20以上の割付を行ってう事により、両腕の上げ下げ、腰高上下、LED点滅、警笛などの機能を備えています。
冒頭に「ちょっとした改造」でお話したように、デジタル出力、3ピンを両目のLEDに、4ピンを腕先のLED点灯できるように、アームボードから直接内部配線を行いました。
皆様ご存知のように、各ボード類は現在品薄状態です。
もし、同様のテストをされる方がございましたら、バッテリーボックス横の配線などから引き出した方がリスクを回避できるかと思います。
両目のLEDには、デジタル3ピン(+)、腕先LEDにはデジタル4ピン(+)、双方にGND端子(-)を繋いでいます。
あくまでも自己責任でお願いします。Id01_90_35_2
画面クリックで拡大します
尚、デジタル出力は微弱電流しか流れていませんので、3ピンと4ピンの両方を点灯すると電力不足になります。
デジタル出力でリレーを介し、正規の電源でLEDを点灯させるように改造を検討中です。

☆リモコンの割付
事前に、ユニコマンダーに、テレビ多機能リモコンの割付を行っておいてください。
前項、「多機能リモコンの他のボタンを使用する」の中で「詳細」に記載してある、赤い数字が登録する割付番号です。
コマンダーによってレイアウトが微妙に異なると思いますので、ご自分のコマンダーにあった割付を行ってください。
デジタル出力は、前項に記載したLEDを配線しない限り点灯しませんのでご注意ください。
デジタル出力3ピン
14には、便宜的に黄LEDが点灯するようにコマンドを挿入していますが、ピン415は何も行っておりません、必要でしたら適当なLEDを点灯するコマンドを追加されてください。

前回のプログラムと同様、オペレーションでの注意事項は同じです。
早押し、重ね打ちなどを行うと、プログラムがロックしてしまい、ノーコントロールになります。プログラムを停止させてから、再度スタートしてください。


☆プログラムロック防止の対応
「掲示板」の中で、”ながさきのこばやしさん”より重ね打ちによるロック防止方法のご指摘を頂きました。
ロックの原因は「I2C通信の確立に時間待ちが必要かとも思われる・・・」との推論で、早速Pouse命令を入れてテストを試みたところ、ロック防止への効果を確認できました。
当初、待ち時間を0.3秒からはじめましたが、なかなか効果が現れず、0.8秒で一応の効果を見た次第です。
尚、待ち時間を長くしすぎると、次のコマンドがなかなか打てなくなることから、なるべく最短時間で、しかも効果のある待ち時間が望ましいところです。
ただし、この対処はあくまでもプログラムロックが起こりにくくなるという対処ですので、完璧ではありませんのでご了承ください。
今後、一連のテストを続けて確認を行い、改良すべく点は善処していきたいと思います。
ながさきのこばやしさん、有益な情報を有難うございました。


下の行からプログラムをダウンロードします。そして拡張子vclikeで適当なフォルダーに保存して、VCLEで開いてください。
私は、”Remot_Control02Ux.vclike”という名前で保存しました。
(02Uの後ろのxは、バージョンが更新されるたびに変わるので仮名をつけました)
プログラムをダウンロードされるときは、下の「ダウンロードでのご注意」をご覧ください。

*****************************************
{多機能リモコン用プログラムダウンロード}
「Remot_Control02Ub.vclike」をダウンロード
*****************************************

現在”Remot Control02Ub.vclike”が最新バージョンです (2007/12/15)

週刊myRobotを作ろう(82)」に掲載した、テンキーリモコン用プログラムも、同様の対処をおこないましたので、ここでダウンロードを行えるようにしました。宜しければご利用ください。
*****************************************
{10キーリモコン用プログラムダウンロード}

「Remot_Control01c.vclike」をダウンロード 
*****************************************
現在”Remot Control01c.vclike”が最新バージョンです (2007/12/15)

「ダウンロードでのご注意」
ファイルのダンロードに関しては、拡張子が”xml”に変わってしまいますので、お手数ですが、以下の方法でダンロードされてください。

1)上記ダウンロー
「Remot_Control01.vclike」をダウンロード を右クリックし、「対象をファイルに保存」を選択します。Id01_90_11
    
2)フィル名が、”RemotControl01.xml”と出てきますので、後ろ3文字"xml"を消して、”vclike”という文字を半角英字で入力して、任意のフォルダーに保存します。Id01_90_12_2

①"xml"3文字を、”vclike”に変えて、②保存する
(画像クリックで拡大します)
     
(2007/12/13)


■今年の冬は恐竜ロボットと遊んでみては・・・
長いタイトルになってしまいましたが、この冬、恐竜型ペットロボットが発売されました。
米UGOBE(ユーゴービー)社が開発した「PLEO(プレオ)」です。Id01_90_23_2
販売元ビジネスデザイン研究所の資料より
   
サーボモーターは14個、カメラ、赤外線、重力、音声、タッチなどのセンサーは38個を搭載。頭、あご、背中など各部にタッチセンサーを搭載しており、ユーザーが撫でると体を丸めるなどの動作をするそうです。
アイボ同様、ユーザーの接し方によって、異なった性格に成長していくそうですが、このあたりはペットロボットの定番というところでしょうか・・・
目や、口の動き、鳴き声がリアルです。
面白いのは、机の端まで歩いていくと、怖がって鳴きながら後ずさりしたり、腕に抱いてやさしく撫でていると、いびきをかいて寝てしまったりと、かなり、本物のペットを意識して作られている事です。
日本ではビジネスデザイン研究所が輸入販売するそうです。Webサイトには「PLEO(プレオ)」の紹介記事が動画を含めて載っています。
体長は約48cm。重量は1.6kgのこのペットロボ君、日本での販売価格は5万2500円、12月中旬からの発売との事で、現在予約をとっているようです。
ご興味のある方は、一度ご覧になってみるのも宜しいのではないでしょうか・・・


■あとがき

街には師走の声とともに、クリスマス用品とともに、正月のしめ縄、干支人形、食材などが並び始めました。
いろいろあった2007年も、もう僅かになりましたね。
寒さに負けずに、皆さん頑張りましょう!

| | コメント (12)

« 2007年11月 | トップページ | 2008年1月 »