2020年の「走り納め」はつくば(りんりんロード)
青空が気持ちいい・・・のですが、北風がめっちゃ寒い!
いや~ この地平線が見えそうな感じがヨイ!
はい、では、また来年!
2020年の「走り納め」はつくば(りんりんロード)
青空が気持ちいい・・・のですが、北風がめっちゃ寒い!
いや~ この地平線が見えそうな感じがヨイ!
はい、では、また来年!
前の記事はこちら いまさらながらRCXを動かしてみるプロジェクト!? その4
さて・・・PCとRCXの通信は、なんとかできるようになりました。
次は、ハードですね。
そして一番の問題がケーブルです。
このケーブルが経年劣化でボロボロです。
ビニールというかゴムというか、導線の被覆がボロボロになっていて、中の電線が丸見えになってしまいます。
で・・・このRCX用のケーブルは、新品や代替品が売られていないので、修理するしかありません。
以前に紹介した、方法でケーブルを再生していきます。
記事はこちら RCXケーブルの修理 リベンジ!
ケーブル修理のやり方は・・・以下の通りです。
①ケーブルのソケットの裏側のカバーを精密ドライバーでこじ開けます。(裏側のカバーは、4か所のツメで止まっているので、そのツメをむりやり外します)
②ソケットの裏側のカバーを外して、ケーブルとケーブル被覆のカスを取り除きます。
③新しいケーブル(私はエーモンのAWG24を使いました)を適当な長さに切ります。
④ケーブルを折って、裏側のカバーの窪みに入れます。
⑤カバーの窪みにケーブルを入れたまま、窪みから出た部分のケーブルを折ります。(そして余分な先端を切ります)
⑥ケーブルの裏側のカバーをソケットに戻します。(このときに、ペンチで一気に4つのツメがカチッというまで締めます)
と・・・文章で書くと簡単なのですが・・・結構失敗します。
まず、①のところで、精密ドライバーでこじ開けるときに、ソケットが結構変形します。(そして、勿論、キズが付きます) さらに、⑥の部分でケーブルを圧着するのですが、うまくいかないとソケットの内側の圧着用の金具が変形してしまって、導通しません。)
これまで、2本のケーブルを作成するのに2個のソケットをお釈迦にしました。(つまり、壊したってこと)
つまり、3本のケーブル(ソケット6個)で再生できたのが2本だけ、ということです。
まあ、慣れれば、もうちょっと成功率が上がると思いますが・・・
ちなみに、使用したケーブルはこれです。
Amazonで買いました。
で・・・できたのがこちら
このエーモンのケーブルは、もとのケーブルに比べてちょっと硬い気がしますが・・・まあ、機能しているので、良しとします。(笑)
続きの記事はこちら いまさらながらRCXを動かしてみるプロジェクト!? その6
年末なので・・・年に一度の時計の整備(といっても簡単な清掃と注油だけですが・・・)を行いました。
まずは、長針と短針を外して・・・
文字盤を外して・・・
ムーブメントを取り出します。
軸の部分に注油をして戻します。
これで・・・カチコチの音が静かになりました。(ような気がする・・・笑)
とりあえず、年末の行事の一つが終了です。
毎日、コチコチありがとうございました。
また来年もよろしくお願いいたします。
Amazonでインターホンのバッテリーを購入したら・・・出品者から・・・バッテリーの寿命を長持ちさせるコツというメールが届きました。
バッテリーのネタとして、紹介します。
ここでのバッテリーは、乾電池などではなく、充電池のことです。
青い文字が元のメール本文(多少、省略してます)
バッテリーの寿命には個体差がございます。ご使用が進むにつれ徐々に劣化致します。
長く使い続けるために、ぜひ下記の対策を心がけましょう。
まず、製品に個体差がある、と最初に言い訳をしているところが、面白いですね。
◎バッテリーは到着後、すぐに満充電をしてください。
満充電後、通常使用で残量が空になるまで使用し(放電)、再度満充電。
これを3〜5回繰り返してください。
何もせずに放置(保管)するのはダメで、ちゃんと使いましょう。
で・・・使い切って、満充電を何回か繰り返す・・・私も気を付けてます。
バッテリーは使用せずに長期間放置すると自然放電し、
バッテリーが使用できなくなります。
よって、使用しない場合も4週間に一度充電し、満充電の状態で保管してください。
これをやって、SWITCHのバッテリーをダメにした経験があります。
やっぱり機械は(バッテリーも)使わないとダメですね。
バッテリー残量0%で放置すると、内部素材の劣化が進みます。
これも、使い切ったままの状態にするのは良くないということですね。
保存する場合は、満充電をしてから、本体機器から取り外し、冷暗所に保存してください。
保存する場合は、満充電した状態で、保存ということです。
リチウムイオン電池の最高許容周囲温度は約45℃といわれています。
スマートフォンを充電しながら動画を視聴する等でも、45℃を超えてしまうことがあります。
高温環境(直射日光下、車内や暖房の前など)に置くと急速に劣化が進みます。
夏にクルマのダッシュボードとかに置くと直ぐに熱くなって「高温注意」の警告が出ますね。
バッテリーは消耗品で、膨張が見られた場合は、すでに寿命ですので
新しいバッテリーにお取替え頂きますようお願いします
これは・・・常識かと・・・
前の記事はこちら いまさらながらRCXを動かしてみるプロジェクト!? その3
さて、PCとRCXの通信ができたっぽいので・・・いよいよプログラムを動かしてみます。
これが正解かどうか分かりませんが、私がやっている手順を列挙します。
①USB-シリアル変換ケーブルにシリアルTowerを接続します。(シリアルTowerには、当然ながら9V電池を入れます。)
②USB-シリアル変換ケーブルをPCに接続します。
③デバイスマネージャーを起動して、USB-シリアル変換ケーブルのポート番号を調べます。
④BricxCCを起動します。
BricType : RCX
Port : COM4 ← ③で調べたポート番号
を指定してOKをクリックします。
これで、BricxCC(NQC)が起動するハズです。
⑤ Tools の Find Brick がグレーアウト(色が薄く表示)されていることを確認します。
(普通に黒色で表示されている場合は、PCがRCXを認識していないということ。)
⑥ Tools の Download firmware を選択して、firm0328.lgoを指定すると・・・シリアルTowerの前に置かれたRCXのLCDの数値がカウントアップされていく。(これが、TowerとRCXの微妙な位置関係で、よく失敗するので、うまく転送される角度を見つけよう・・・笑)
カウントアップは2494で終了しました。転送に掛かった時間は4分15秒でした。
さて、ここまでで、準備が終了です。
まずは、超簡単なプログラムを作ってみます。
task main ()
{
OnFwd(OUT_A);
Wait(300);
Off(OUT_A);
}
そして、RCXのポートAにランプを接続して・・・プログラムを転送します。
ピピッと鳴って、転送終了
さて、RCXのRUNボタン(緑色)を押すと・・・ランプが3秒間光ってプログラムが終了します。
おぉ! 久々に感動です!
じゃあ次は、タッチセンサーを付けてみます。
ポート1にタッチセンサー、ポートAにランプを接続して・・・
プログラムスタートでランプを光らせて、タッチスイッチを押すと、ランプが消えるプログラム。
task main()
{
SetSensor(SENSOR_1, SENSOR_TOUCH);
OnFwd(OUT_A);
until (SENSOR_1 == 1);
Off(OUT_A);
}
はい、普通に動きました。
ちょっと、接触が悪いように感じるのは・・・10年間も放置していたからだと思います。
とりあえず、本日の最後・・・
ポート1に光センサー、ポートAにランプを接続して、光センサーが黒を感知したら、ランプを消灯、光センサーが白を感知したら、ランプを点灯します。
task main()
{
SetSensor(SENSOR_1, SENSOR_LIGHT);
while(true)
{
if(SENSOR_1 <40 )
Off(OUT_A);
else
OnFwd(OUT_A);
}
}
はい、できました。
RCXのViewボタン(黒)で光センサーの値を測るのも懐かしい・・・です。
ということで、本日の作業は終了です。
続きの記事はこちら いまさらながらRCXを動かしてみるプロジェクト!? その5
会社で、品質教育を受けた中で、面白い内容があったので、ちょっと紹介します。
「循環的複雑度(Cyclomatic Complexity)」こんな言葉、聞いたことがありますか?
私は知りませんでした。
この説明で一番分かりやすいのがここだと思います。
https://jp.mathworks.com/discovery/cyclomatic-complexity.html
内容については、記事を読んで欲しいのですが・・・
簡単に言うと、プログラムの開発で・・・プログラムの複雑度を客観的に評価できる手法があり、その複雑度を低くしましょう。(要は、なるべく単純なプログラムにしましょう、ってこと) 複雑度を低くすることで、プログラムの可読性、保守性、移植性が高まります。
ということです。
ロボカップジュニアのロボットのプログラミングもそうですが・・・品質をあげること(≒バグをなくすこと)が必要ですよね。
その時に、この循環的複雑度が高いと、バグが混入しやすい・・・まあ当たり前の話です。
ただ、今回、「なるほど!」と思ったのは、その複雑さを評価(数値化)する方法や、複雑さとバグの混入率が示されていたことです。
それによると・・・循環的複雑度が10以下だと、バグ混入率が25%なのに・・・循環的複雑度が50以上だと、テスト不可能だし、75以上だと「いかなる変更も誤修正を生む」と壊滅的な評価です。
ロボカップジュニアの競技会で・・・家や学校で、完ぺきにプログラミングをしてきたとしても、やっぱり競技会場で何らかの修正をする必要が出てくると思います。まず、現地での修正箇所をいかに減らすか(現地で修正しなくても良い様なつくり)を考えることと、その修正でバグが混入しないように、元々のプログラムの複雑度を低く抑えて置く・・・が良いようです。
と言っても、「言うは易く行うは難し」で・・・いろいろな想定を考えると、どんどん条件分けが増えて・・・プログラムもどんどん複雑化してしまうと思います。
だから、複雑度と可読性、保守性などのバランスなのだと思います。
ちなみに、プログラムを読ませて、この循環的複雑度を評価してくれるツールもあるそうです。(私は試してませんが・・・)
一連のノード大会を見て・・・
大会当日のパドックの中で、一生懸命にロボットの組み立てやプログラミング(プログラムの修正でなく、構築)をしているようでは、もうその時点で失敗でしょう。現地では、ちょっとプログラムを修正するくらいの完成度のロボットを持ってきて欲しいです。
(賛否はあるでしょうけど・・・)競技会当日は、もうやることが無くて、ブラブラして遊んでいられるくらい余裕があると良いと思います。(笑)
前の記事はこちら いまさらながらRCXを動かしてみるプロジェクト!? その2
Windows10(64bit)のPCで、10ウン年前のRCXを動かそうというプロジェクトです。
さて、前回、まっとうなやり方でトライしましたが・・・失敗でした。
今回は・・・さらに、ぐぐって調査をして(準備をして)再挑戦です。
前回は、慣れた(ROBOLAB)を動かそうとしたのですが・・・今回はNQCです。
NQCはNXCと同じツールである BricxCCをインストールします。
ついでだから・・・NXCも動くようにしときます。
ということで・・・我が家にあった bricxcc_setup_33810_20130220.exe を実行してインスト-ルします。
(今でも http://bricxcc.sourceforge.net/test_releases/ から入手できます。)
次にNXTのドライバをインストールするのですが・・・最新版として入手した v1.2.0(NXT_Fantom_Drivers_v120)はインストールすらできません。やっぱり、我が家にあった、v1.1.3 をインストールします。(このv1.1.3をどうやって入手したのか、今でも入手可能なのかは不明です。)
ここまでで・・・NXCが動作する環境は整いました。
動作確認として、PCとNXTをUSBケーブルで接続して、BricxCCを起動して通信テストをすると・・・まあ、普通に通信できました。
さて・・・この環境で・・・今度はPCとRCXの通信に挑戦です。
まず、PCにUSB Tower を接続してみます。(やっぱり、デバイスマネージャーで見ると、USB Tower がエラーになっています。)
このまま、強引にBricxCCを起動しようとしても、やっぱり通信できません。
う~ん やっぱり、USB Tower は使えなさそうです。
で、次は、シリアルTower を使います。現在のPCには、RSー232Cポートは付いてませんが・・・シリアルUSB変換ケーブルを間に入れて接続します。(シリアルTowerに必要な9V電池も100円SHOPで購入済で)
BricxCCの起動画面で、NQCを選択し、COM4(デバイスマネージャーでシリアルポートの番号を調べた)を選択して起動します。
Tool の Download firmware を選択すると・・・firm0328.lgo が無いと怒られるので・・・
ネットで firm0328.lgo を探しました。
良く分からないけど・・・https://pbrick.info/index.html-p=74.html にありました。
で・・・もう一度、Download firmware で firm0328.lgo を指定して実行すると・・・RCXにファームが転送されはじめました。(RCXのLCDの数字がカウントアップしはじめました)
やった!
なんか、通信できてる!
2分くらいで、ファームの転送ができました。
とりあえず、PCとRCXの通信ができることが分かりました。
一歩前進です。
続きの記事はこちら いまさらながらRCXを動かしてみるプロジェクト!? その4
前の記事はこちら いまさらながらRCXを動かしてみるプロジェクト!?
ロボカップジュニアの日本リーグ競技を見て、大昔のレスキューと同じようなルールなので、大昔のロボットが動かないか・・・確認するプロジェクトです。
まずは・・・まっとうに、MINDSTORMS に添付されていた、ROBOTICS INVENTION SYSTEM 2.0をインストールしてみます。
やってみると・・・インストールの途中までは行くのですが・・・
最後にUSBタワーのソフトのインストールに失敗して、終了となります。
次に・・・大昔(2007年頃)にM&Yが大変お世話になった、ROBOLABが使用できないか、確認してみます。
ROBOLABには、大きく3つのバージョンが存在します。(してました)
①v1.5
②v2.5.4
③v2.9(v2.9.4)
この中で、一番お世話になったのが②のv2.5.4です。(Y単独のチーム名もこのバージョンに由来しています。)
苦労して、M&Yアーカイブの中から ROBOLAB 2.5.4 のCDを探してきました。
再度、目的の確認です。
現在のWindows10(64bit)のPCとRCXを接続して、PCで作成したプログラムをRCXに転送して実行できる環境を構築する。
です。
では、実施してみましょう。
LOGOLAB 2.5.4のインストール
インストールが終わると、QuickTime 6.0 以上が見つからないので、QuickTime をインストールするよ、とメッセージを出したので、OKをクリックして続行します。
すると、QuickTimeのインストールになります。
さらに、今度はWinVDIGのインストールになります。
えい、やってしまえ・・・
インストールが終わると、PCの再起動をしなさい、と指示されます。
必要だったか、記憶が無いので・・・素直に再起動してみます。
再起動すると・・・ちゃんとメニューにRoboLabが追加されています。
はやる気持ちを抑えつつ、起動してみると・・・
はい、早速、Windows Defender ファイアイォールでブロックしてるよ、という確認画面が表示されました。もちろん、「アクセスを許可する」を選択します。
おぉ~懐かしい画面が表示されましたよ。
よし、ここまではOK!
そして次が最大の難関です。
プログラムをRCXに転送するためのタワーを接続して、それを認識させることができるのか・・・
メニューから「アドミニストレータ」を選択します。
そして、普通に(何も考えずに)USBのTowerを接続してみました。
さて、どうでしょう・・・
やっぱり、USB Towerが不明なデバイスになってしまいます。
いろいろやったけどダメ・・・
次に、(あらかじめぐぐって調査した結果)購入したシリアル変換ケーブルの先にRS-232Cケーブルを通して、シリアルのタワーを接続してみました。
でも・・・やっぱり通信がうまくいきません。
ということで、ミッション未達成のまま、本日は終了です。
ソフトのインストールはできたのですが、ハード(赤外線タワー)が認識されません・・・
続きの記事はこちら いまさらながらRCXを動かしてみるプロジェクト!? その3
RoboCupJunior Japan 関東ブロック大会についてのお知らせが、怒涛の如く(関東ブロックのHPに)掲載されました。
まずは・・・
2020. 12. 18【大会本部】大会会場への立ち入り人数の制限について(サッカー・レスキュー)
先月のノード大会と同様に、無観客競技会で・・・選手とスタッフしか会場に入れません。
さらに、チームメンバーも2名だけです。(例えば4名のチームの場合は、キャプテンと副キャプテンの2名だけが会場に入れる・・・ということ)
次が・・・
2020.12.18 【大会本部】スタッフ募集(サッカー・レスキュー)のお知らせ
サッカーとレスキューのスタッフ募集です。
1月10日(日)には日本リーグ、1月11日(月祝)にはWLの競技がありますので、スタッフ募集は2日間ですね。
私も、申請する予定です。
次・・・
2020.12.18 【大会本部】新型コロナ感染症対策について
新形コロナ感染症対策についての注意点です。(いわゆる「コロちゃん」対策ですね)
昨今では、ごく当たり前の話です。
マスク、手洗い、消毒、検温・・・
最後に、もし感染が判明したら、ちゃんと連絡するようにお願いします。
コロナ禍でのイベント運営は大変ですね!
2020.12.18 【大会本部】競技中のロボットの無線通信について
競技中の無線の使用についてです。
これは、私がお願いして掲載してもらったものです。
で、書いたように・・・無線の使用がルール違反であることを知らずに使用しているチームが居るので・・・
周知をお願いしました。
競技会当日の車検やインタビューで指摘されないように、ルールをよく読んでください。(指摘するほうも、嫌なんです!)
最後が・・・
関東ブロック大会の Onstage競技の実施日程についてです。
ノード大会と同様に、OnStageはオンラインでの競技会になりました。
1月24日(日)と1月31日(日)の2週間に渡って開催されるようです。
信号待ちで止まった時に見つけた・・・
前の車のダイハツのエンブレムに悪魔が憑りついていました。(笑)
まあ、経年劣化で、ちょっと塗装がはがれている感じですが・・・
ちなみに、我が家のクルマには、天使を付けています。
カテゴリに「RCX」が無いので「NXTねた」としてお送りします。
2021/1/24 追補 カテゴリ「RCXねた」を追加したので、カテゴリを移動しました。
ここ一連のノード大会を見て・・・今のレスキュー日本リーグの競技は、昔の(2008年頃の)ジュニアレスキューレスキューの競技と似ている(いや、そのもの)と感じている方々もいらっしゃると思います。
先日、茨城ノード大会で日本リーグのスタッフとして参加したYも同じような感想を持ったそうです。
昔と違うのは・・・
①傾斜路の下りがあること(昔は傾斜路を登ったところに最後の部屋があり、そこで被災者を発見して終わり)
②スピードバンプが高い(昔は直径1cmの丸棒を半分にしたものだった:つまり高さ0.5cm)
③被災者が最後の部屋にしかいない(昔は、黒線の上に銀や緑のシールが貼られていた。つまり経路上にも被災者が居た)
これぐらいなんじゃないかと・・・
細かいことを言うと・・・昔は決め打ち(今で言うところの「プレマッピング」)が禁止されていなかった。(禁止されていないどころか、決め打ちで成功すると、「凄~い!」と褒められた!)
現在の被災者
2009年の被災者
で・・・ここまでルールが似ているのなら、大昔(M&Yが現役で活躍していた2008年頃)のロボットが使えるのではないかと・・・
ということで、壊さないで大事に(!?)保管してあった M&Y Zwei を動かすことができないか・・・というプトジェクトを発足させました。
このプロジェクトの難題は・・・
①コントローラーが LEGO MINDSTORMS RCX であること。このため、PCで作成したプログラムをロボットに転送するために、赤外線通信が必要で、そのための赤外線タワーが使えるかどうか!?
②経年劣化で、RCXとセンサーやモーターに接続するケーブル(いわゆる電線)がボロボロで使用困難であること。
と、ハード&ソフトの両方にネックがあります。
埃だらけの・・・M&Y Zwei
経年劣化で、ケーブルがボロボロ
じゃあ、そんなに苦労せず、NXTでやれば・・・となるのですが・・・
ロボカップのレスキューラインの基本であるライントレース
このライントレースの技術が衰退したのはLEGO社が RCX⇒NXT に移行する過程で光センサーの大きさを大きくしてしまったのが原因だと考えています。
RCXの光センサーはコンパクトでちょうどよい大きさでした。
これを3個並べてライントレースするのが最強だったと思っています。
(現在の、EV3やNXTの光学センサーは大きくて、2つ並べるのが標準です。無理して3つの光学センサーを並べるチームも居ますが、センサーが大きいので隙間ができてしまう・・・)
と・・・御託を並べてもしょうがないので・・・いろいろと実験をしていきたいと思います。
まずは・・・昔、大変お世話になった、ROBOLAB が使えないか・・・というところからですかねぇ。
続きの記事はこちら いまさらながらRCXを動かしてみるプロジェクト!? その2