Re: The history of "M&Y"

Team "M&Y" and "花鳥風月"
the soliloquy of the father
毎日更新!

NXTねた Windows11でNXC

2022-09-30 | NXTねた
メインPCを Windows11にしたので・・・NXCが使用できるかの確認です。



まずは BricxCCのインストールです。
bricxcc_setup_33810_20130220.exe
を実行します。
(このファイルは、いまでも https://bricxcc.sourceforge.net/ から入手できます)
あっさりインストールは終了します。

次に NXT Fantom Drivers をインストールします。
これまでの経験で最新版(V1.2.0)ではだめで v1.1.3版をインストールします。
(この v1.1.3 をどこでどうやって入手したのかは、いまとなっては不明です。 ぐぐれば、でてくるので、今でも入手可能と思います)
これも、あっさりインストールが終了します。

USBケーブルでPCとNXTを接続して、BricxCCを起動します。

Tools の Find Brick で 
Port : Automatic
Brick Type : NXT
Firmware : Stamdard
を指定して、あっさり接続できました。


後は、エディタのフォントを日本語フォントにして
use MDI mode のチェックを外しました。

まず、NXC(NXT)は普通に使用可能なようです。
さて次は RCX です。
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

LEGO ワイド(キャタピラ)アタッチメント

2021-02-05 | NXTねた

先月の、RoboCupJunior の関東ブロック大会にスタッフとして参加して、参加チームのロボットを見てきました。

ジュニアのレスキューもルールが段々と高度になってきて・・・いずれはメジャーのレスキューのようにクローラーロボットしか参加できなくなるのではないかと心配しています。

で・・・関東ブロックではLEGOロボットが多いのですが、クローラーのロボットも何台か参加していました。ただ、LEGOの(今の時代の)クローラーはプラスチックのパーツで、結構すべります。(摩擦が少ないってこと) だから、レスキューロボットに使うときには、クローラーに輪ゴムをはめたり、何らか滑りにくくする工夫が必要でした。

で・・・今回の大会で、クロ-ラーにコンパクトなゴムのポッチが埋め込まれているロボットがありました。 

これは、なかなかスマートで良いです。 

図々しくも「これ、どうやって手に入れたの?」と質問すると「Amazonで100個単位で売ってます・・・」という回答でした。

家に帰ってから、早速Amazonを検索します。

で・・・見つけたのがこれ

テクニック 互換品 キャタピラ リンク アタッチメント ワイド(キャタピラ)アタッチメント 100個セット ゴム製 [ブラック]

注文したら、数日で届きました。

 

 

既存の赤いゴムのアタッチメントよりもコンパクトで良いです。

今回手に入れたのは、互換品で(つまりLEGOの純正品ではありません) 純正品は「LEGO 24375」のことだと思います。

 

そのうち、坂道や障害物の走破テストをしてみたいと思います。

 

ちなみに、後で分かりましたが、この互換品は・・・AliExpressで購入すれば半額以下でした。(まあ、いまさらしょうがない・・・苦笑)

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

NXTねた121 Widnws10でNXC

2018-11-12 | NXTねた

我が家のPCのOSをすべて Winddows 10 にしてしまったので・・・NXCが動作するかを確認してみました。

(いまさら他にNXCを使う人が居るとは思えませんが・・・しかも、NXTで・・・)

 

まずは、bricxccをインストールします。

私が使っている(いた)のは 

bricxcc_setup_33810_20130220.exe

というファイルです。

exe ファイルを実行すると・・・あっさりインストールは終わります。

 

次に・・・NXTのドライバをインストールします。

(これがどこから持って来たのかが、今となっては不明ですが・・・過去の記事を漁ったら Fantomドライバー1.1.3 というものらしいです。 NXTねた その112 windows8でNXC )

FantomPC の Setup.exe を実行して、64ビットのドライバをインストールします。

 

これで、USB接続したNXTと通信ができるようになります。

 

NXCを起動して、プログラムを読み込ませてみると・・・

 

 

文字化けが・・・

そういえば、いろいろと設定が必要でしたね。

 

まず、エディターのフォントを日本語(MSゴシック)にします。

これで、日本語が読めるようになりました。

 

あと・・・いろいろ設定してたハズなのですが・・・忘れました。

 

とりあえず、これで「プログラム編集 ⇒ コンパイル&転送 ⇒ NXT」 は、できるようになりました。

Windows 10 でも、あっさり使えました。

問題なさそうです。

 

 

 

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

NXTねた その89 で結局RS485の通信はどうなった

2018-02-13 | NXTねた

まあ、紆余曲折を書いてきましたが、結局RS485の通信がどうなったかと言うと、便利に使えています。

 

参考までに、プログラム(一部)を掲載します。

ただ、訳も分からずに使われるのは本意ではありませんので、解説などは付けません。流用する場合は、理解してから使ってください。

 

NXT側(NXC)

byte RcvByte( )
  {
  byte ibuf[16];
  until(RS485DataAvailable( ));
  RS485Read( ibuf );
  return( ibuf[0] );
  }

sub SndByte( byte j )
  {
  byte m[1];
  m[0]=j;
  RS485Write( m );
  while(RS485SendingData( ));
  return;
  }

 

Arduino側

#define DE_RE_PIN 2

byte RcvByte( )
{
  byte i;
  digitalWrite( DE_RE_PIN , LOW );
  while(!Serial.available( ));
  digitalWrite( LEDR , LOW );
  i = Serial.read( );
  digitalWrite( LEDR , HIGH );
  return( i );

void SndByte( byte i )
{
  digitalWrite( DE_RE_PIN , HIGH );
  digitalWrite( LEDR , LOW );
  Serial.write( i );   
  digitalWrite( LEDR , HIGH );
  delayMicroseconds( 150 );
}

 

結局、1バイトのやりとりしか実現してません。(笑)

でも、まあ、それでも十分かと・・・ 

 

(ちなみに、このプログラムについて質問を受けても、現在の私には答えられませんので、悪しからず。)

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

NXTねた その88 NXTのI2Cはダメダメ!?

2018-02-11 | NXTねた

ここのところ、RS485の実験にはまっています。

なんか、楽しいです。

NXTとArduinoをRS485で接続して、通信ができるようになりました。

ところで、このRS485って、本当に速いのでしょうか?

(逆に、I2C通信は、そんなに遅いのでしょうか?)

 

 

とにかく、実験です。

M&Yが使用している温度センサーはI2C接続のセンサーで、直接NXTのセンサーポートに接続できます。

直接、センサーポートに接続して、温度を測ると・・・

1000回の計測で大体18秒ほどです。

つまり、1回の計測に18ms掛かることになります。

 

 

じゃあ、NXTとArduinoをRS485で接続して、Arduinoの先に温度センサーをI2Cで接続します。

どう考えても、こちらのほうが遅いように思います・・・が・・・

1000回の計測で3.5秒しか掛かりません。

つまり、1回の計測には3.5msしか掛かりません。

 

 

この速度の差が、どこから来るのかは明確にわかりませんが・・・

おそらく、NXTのI2Cは、ソフトI2Cであり、めっちゃ遅い(マージンをこれでもかっていうくらい大きくとってある)のだと思います。

 

 

と、いうことで、RS485を、またちょっと好きになりました。(笑)

 

 

注)これは2011年に書いたけど、(なぜか)投稿しなかった古い記事です・・・ですので、今となっては役に立たない情報かもしれません・・・

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

NXTねた その87 RS485 謎解明・・・なの!?

2018-02-10 | NXTねた

ヒマな時間で、ちょこちょことやっている

「NXTとArduinoをRS485で通信しよう」プロジェクトですが・・・

 

 

なんとか通信はできるようになった・・・ような感じがする・・・

でも、謎(というか不具合)が2つ残っています。

①NXTの電源を切ると通信ができなくなる。

②データ化けが3%くらいの割合で発生する。

 

 

①は・・・電源を切ったら通信ができないのは当たり前です。 そうじゃなくて、電源を入れなおすと、それまで通信できていたのに、できなくなるってことです。

そうなった場合は、NXTで受信だけのプログラムを一回起動させると、送受信のプログラムが機能するようになるという・・・摩訶不思議な現象です。

でも、これは解決しました。

どうやったか・・・

プログラムの最初に

 

 

RS485Initialize( );

を入れました。

そうしたら、NXTの電源を入れなおしても、そのまま通信ができます。

このイニシャライズの関数は、

Initialize RS485 port.

Initialize the RS485 UART port to its default values. The baud rate is set to 921600 and the mode is set to 8N1 (8 data bits, no parity, 1 stop bit). Data cannot be sent or received over the RS485 port until the port is configured as as a hi-speed port, the port is turned on, and the UART is initialized.

こんな説明なのですが・・・よく判りません。 とにかくUARTの初期化をしているようです。

直接の原因は判ったのですが、根本的な原因はわかりません。

そこらへんが・・・ダメですねぇ。

すっきりしませんが・・・とにかく、使えるようにはなりました。

 

 

では、②についてです。

NXTからArduinoに1バイトのデータを送ります。

Arduinoは、受け取った1バイトのデータをそのままNXTに送り返します。

NXTは受け取った1バイトのデータと、最初に送った1バイトを比較します。

ということを、1000回繰り返してデータの同値性を調査します。

 

 

そうすると・・・

1000回ループで27個とか、32個とか・・・大体3%程度が化けます。

3%というのは、多いですよね。

いやっ、多すぎます。

これじゃあ、使い物にならないでしょう。 きっと!

ところどころに時間待ちをする Wait関数を埋め込んでも、単に処理が遅くなるだけです。

やっぱり、諦めた方が良いのでしょうか・・・

 

 

これも、結果的には解決しました。

2本の通信の信号線(黄色と青色の線)間に120Ωの抵抗を入れていたのですが・・・

これを外したら、データ化けが0になりました。

1000回ループでデータ化け無し!

なんで、120Ωを入れていたのかですが

秋月電子で購入したRS485トランシーバ LTC1485 の添付資料の図に

Rescue137

書いてあったので、良くわかんないけど、RS485通信の常識なんだろうと思って

いれときました!

この抵抗が必要無いのだったら、図に入れとかないで欲しいです。(笑)

 

 

 

 

とにかく・・・これで、やっと使えるかもしれない・・・

 

注)これは2011年に書いたけど、(なぜか)投稿しなかった古い記事です・・・ですので、今となっては役に立たない情報かもしれません・・・

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

NXTねた その86 RS485とりあえず・・・

2018-02-09 | NXTねた

今日は、一日、NXTとArduinoをRS485でつなぐ実験をしていました。

これまでの準備で

NXT ⇒ Arduino

Arduino ⇒ NXT

は、それぞれできてました。

だから・・・その2つを組み合わせれば

NXT ⇒ Arduino ⇒ NXT

ができるハズ!

 

しかし・・・そう簡単ではありませんでした。

どうも、受信から送信、送信から受信に切り替わるときに、通信中のデータが残っていたり・・・

よく判んないけど、組み合わせると通信できなくなりました。

 

もう、諦めようかと何回も思いましたが・・・とにかく、今日一日は頑張ろうと・・・

結局・・・なんだかよく判らないうちに・・・通信できるようになりました。

やっぱり、受信と送信の切り替えの時のタイミングの問題のようです。

 

NXTから1バイトのデータをArduinoに送信し、そのデータを折り返してNXTに戻します。

それを1000回繰り返して大体4秒くらいでした。

と、いうことは、1往復の通信に4msということですね。

 

で、確かにとりあえず双方向の通信ができたことはできたのですが・・・

まだまだ、謎があります。

 

NXTの電源を一回切ってしまうと・・・通信ができなくなるのです。

もう一度通信をするためには・・・何でか判らないけど・・・NXT側で受信だけのプログラムを一回動かします。(勿論何も受信できない)

それを中断して、通信プログラムを動かすと、なぜか双方向の通信ができます。

 

何故?

 

注)これは2011年に書いたけど、(なぜか)投稿しなかった古い記事です・・・ですので、今となっては役に立たない情報かもしれません・・・

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

NXTねた その85 RS485で送信

2018-02-08 | NXTねた

とりあえず、Arduino ⇒ NXT はできたので、逆ができるか確認です。

早速、何も考えずに、HPにあったサンプルプログラムを実行してみると・・・

NXTの画面には、Transmitting ...

と、表示されて・・・いかにも送信されている感じなのですが・・・

 

 

Arduino側では、うんともすんとも動いている気配がありません。

Serial Monitor を開いてみても・・・何にも変化なし。

 

 

そこで、はたと気が付きました。

ここで、ROピンの配線が必要なのではないか!?

ROピンをD0に接続してみると・・・Serial Monitor になにやらメッセージが流れ出しました。

 

 

ということで、NXT ⇒ Arduino の通信も成功しました。

・・・ように見えます。

 

 

自分の備防録として

1 : (RO) -->RX0(D0)

2 : (RE) --> D2

3 : (DE) --> D2

4 : (DI) --> TX1(D1)

5 : (GND)

6 : (A) --> NXT(青色の線)

7 : (B) --> NXT(黄色の線)

8 : (VCC)

 

 

Dsc06489

 

 

注)これは2011年に書いたけど、(なぜか)投稿しなかった古い記事です・・・ですので、今となっては役に立たない情報かもしれません・・・

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

NXTねた その84 別のRS485通信

2018-02-07 | NXTねた

RS485による通信について・・・

できない訳ではないのですが・・・

ちゃんとできてる訳でもない。

と、いう中途半端な状態が続くので、一旦中断しました。

 

 

またネットをさまよっていました。

そうして見つけたのが・・・こちら

連接 NXT 與 Arduino 的 RS485通訊

中国語なんでしょうけど・・・読めません。

おそらく、「NXTとArduinoをRS485で通信する」という感じでしょうかねぇ。

 

 

で・・・このHPに書いてあるプログラムが・・・なんじゃこりゃ、っていうくらい単純です。

いままで、実験していたRS485のプログラムは、いったいなんだったのでしょうか?

 

 

Arduino側

    digitalWrite(DE_RE_PIN, HIGH);  // Enable data transmit
    Serial.print("Hi NXT ! "); 
 

 

 

NXT側

     RS485Read(strReceive);
     TextOut( 0, xline,   strReceive);

 

 

プログラムの要の部分は・・・たったのこれだけ!?

しかし、ここで大きな問題が・・・

配線がわからない!

 

 

プログラムを見て、DEピン、REピンはArduinoのD2に接続すればいいことは判ったのですが・・・DIピンとROピンは、何番に接続すれば良いのでしょうか?

結論から言うと・・・DIピンをD1に接続すれば良いことが判りました。

(ROピンは、とりあえずフリーにしてます)

 

 

さらに、戸惑うのが・・・これまで見ていたHPの内容とABの接続が逆です。

これまでは 黄色の線:A 青色の線:B でした、

でも今度のは 青色の線:A 黄色の線:B なんです。 

 

 

でも、これで、確かにデータが Arduino から NXT に送られてますよ。

 

 

じゃあなんで、D1ピンなんだろう・・・

あとで、Arduinoの本を読んだら・・・Serial通信はデフォルトで0ピン、1ピンらしいです。

(Arduinoの世界の常識ってヤツですか・・・そんなもん、知らねーよ!)

 

 

とにかく、Arduino ⇒ NXT は通信ができました。

 

 

注)これは2011年に書いたけど、(なぜか)投稿しなかった古い記事です・・・ですので、今となっては役に立たない情報かもしれません・・・

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

NXTねた その83 RS485の復習

2018-02-06 | NXTねた

久しぶりにRS485の復習をやろうと思ってNXTとArduinoを接続してみました。

相変わらず・・・複数バイトの通信がうまくいきません。

1バイトだけのやりとりならなんとか通信できるようなのですが・・・

 

 

例えば、12バイトの文字列をArduinoから送信して・・・

NXT側で、12バイトを受け取りたいのですが・・・

6バイトしか受け取らなかったり、4バイトしか受け取らない場合があります。

しかも・・・いちばん困るのが・・・次の通信の時に、さっき受け取り損なった残りの通信を送ってくるのです。

 

 

良く判らないので、今のところ1バイトだけの通信の実験をしています。

 

 

で・・・さらに、まずいことに1バイトの通信でも、なんかデータが化けることがあります。

100という数値を送ったはずなのに224が表示される・・・なんで?

なんか、電気的なノイズなのかなぁ・・・

 

 

良く見たら・・・単に配線を忘れていました。

MAX485のDEとREを接続するのを忘れていました。

てへっ

DEとREを接続したら・・・データ化けはなくなりました。

でも、やっぱり複数バイトの情報は送れたり、送れなかったり・・・

 

 

注)これは2011年に書いたけど、(なぜか)投稿しなかった古い記事です・・・ですので、今となっては役に立たない情報かもしれません・・・

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

NXTねた その82 RS485 続き

2018-02-06 | NXTねた

とりあえず、何も考えずにサンプルプログラムで通信できることはわかりました。

でも、それでは、何も使えないので・・・自分なりに理解できるように解析を始めました。

 

まずは・・・本当に通信しているのかどうか、Arduino側で通信しているときにはLEDを光らせてみると・・・

たしかに、NXTから通信をした時に、ピカッとLEDが光ります。

まずは、通信の確認はOKです。

 

もともと、RS485の通信というものを理解していないのですが・・・

 

で、サンプルプログラムを走らせて見る限り・・・

通信が安定するまでは、データ量が短いままで帰ってっきてしまうことがあるようです。

つまり・・・

12バイトのデータを受け取りたいのに、最初は4バイト、次に残りの8バイト・・・というように分割して送られる場合があります。(最初だけみたいですが・・・)

それ以降は、ちゃんと12バイトが送られます。

 

なんでか・・・判りません。

 

 

注)これは2011年に書いたけど、(なぜか)投稿しなかった古い記事です・・・ですので、今となっては役に立たない情報かもしれません・・・

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

NXTねた その81 RS485

2018-02-05 | NXTねた

※以下の記事は2011年に書いたけど、投稿してなかったものです。今となっては情報が古いと思いますが・・・何かの参考になればと、再投稿します。

 

NXTのセンサーポートはI2C通信ができることは広く知られています。

(あくまでも、なんちゃってI2Cですけど・・・)

しかし、RS485での通信ができることは、結構知られてないのではないでしょうか?

 

 

最近、Dexter Industries という会社がWiFiセンサーなどという製品を開発し、それがRS485を使用しているので、ちょっとはメジャーになったのかも?

で、そのRS485で通信する実験をしてみました。

と、言っても・・・

 

 

このページに書かれていたプログラムを実行しただけです。

ArduinoとNXTをケーブルで接続するのですが・・・MAX485というICを間に入れます。

Dsc05866

 

Differential

これで、通信できるハズなのですが・・・

うんとも、すんとも言いません。

配線も、プログラムも何回か確認しました。

でも、ダメ!

 

 

秋月電子で買ってきたICがMAX485ではなくて、「MAX485互換」だからダメなのでしょうか?

そのICの説明書を見てみると・・・(英語だから判んない)・・・でも、回路図を見ると・・・

通信に使う2本の信号線の間に120Ωの抵抗が入っています。

もしかしたら・・・これが必要なのじゃないの?

こんなこともあろうかと、買っておいた120Ωの抵抗をABの間に入れてみると・・・

通信が開始されました。

 

 

とりあえず・・・プログラムの仕組みとか、よく判らないけど。

とにかく、動くことは判りました。

じゃ、そうゆうことで・・・

 

注)これは2011年に書いたけど、(なぜか)投稿しなかった古い記事です・・・ですので、今となっては役に立たない情報かもしれません・・・

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

NXTねた その120 磨く

2015-03-14 | NXTねた

最近のNXTの写真を見て・・・

なんか、すごいキズキズじゃないですか!?

 

 

まあ、年季が入っていますし・・・世界中を旅してきたので・・・(笑)

 

ボディのキズは仕方がないとしても、LCDの表示窓はこのままでは分かりにくいですよね。

ということで、パフで磨いてみることにしました。

(私はよくSWATCHをこれで磨いています。)

 

パフを塗って、磨いて、パフを塗って、磨いて・・・

 

 

何回かすると、きれいになってきました。

もう一度、プラスチック磨きのクロスで磨いて・・・

さすがに、深いキズもあって、新品同様にはなりませんが・・・

 

 

見違えるようにきれいになりました。

M&Y」と「花鳥風月」の活動を支えてきてくれたNXTに感謝です。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

NXTねた その119 XG-1300L 備忘録

2015-03-08 | NXTねた

ねたというより、備忘録です。

 

M&Y」「花鳥風月」のロボットには、ジャイロセンサーとして XG-1300L を使用しています。

この XG-1300L を普通に使うと・・・

 

 

 

右回転でジャイロの値がマイナスの数字に、左回転でプラスの数字になります。

例えば、右に90度回転すると、「-90」になります。

 

そして、前に傾ける(向こう側を下にする)と加速度センサーの値がマイナスの数字に、手前に傾ける(手前を下にする)とプラスの数字になります。

 

今度は XG-1300L をひっくり返して使います。

 

 

そうすると・・・

 

右回転でジャイロの値がプラスの数字に、左回転でマイナスの数字になります。

例えば、右に90度回転すると、「90」になります。

まあ、これは当たり前ですね。

 

こんどは、前後に傾けてみます。

そして、前に傾ける(向こう側を下にする)と加速度センサーの値がマイナスの数字に、手前に傾ける(手前を下にする)とプラスの数字になります。

 これは、ひっくり返しても同じです。
 
え~と、これは正しいのでしょうか?
ジャイロの左右が反転したように、加速度センサーの上下も反転するように思えるのですが・・・
 

 

 

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

6036424: Rubber Attachment For Track Element

2014-11-13 | NXTねた

NXTねた というより LEGO関係の情報ですが・・・

前に、LEGOのクローラーについて書きました。

そのクローラの部品の摩擦が少なくて、これでは傾斜路が登れないだろうと思っていたら・・・

そのクローラに取り付けるゴムの部品を教えていただきました。

この部品・・・どこかの大会で見たことがありましたよ。

で、これは EV3の拡張セットに入っているのだそうです。

ネット検索しましたが、そう簡単に手に入るようではありません。 

海外の通販には、あるようなのですが・・・やっぱり個人輸入するしかないのかなぁ。

 

で、あきらめかけた時に・・・

見つけました ebay で(倒置法です 笑)

30個で3,000円程度、(つまり1個、約100円)+送料で合計4,000円位です。

もう、こういうのは勢いで買うしかありませんので・・・勇気を出してポチリました。

また、無事届くか・・・までドキドキタイムです。

で、ポチッたのが10月30日

 

本日、11月13日に届きました。

郵便受けの封筒を持ち上げたときに・・・本当に中身が入っているの!? と考えちゃうくらい軽かったので、開けてみるまで心配だったのですが・・・ちゃんと入っていました。

袋から出してみると・・・

 

結構摩擦がありそうです。

これなら、坂道も登れるかも・・・後日実験したいと思います。 

 

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする