投稿

5月, 2025の投稿を表示しています

TJ3Bに文字や数字を表示させる 液晶ディスプレイ(LCD)をつなげる

イメージ
 TJ3Bの中で正しく計算が行われているのか、値が正しいものなのかを確認したいと思ったとします。どうしたらよいでしょうか。 例えばコンパスの値を確認したいとします。今いくつなのかを見るためには、パソコンにつないでセンサーモニターで確認する必要があります。 TJ3Bの場合、LED出力ができるので、簡単な状態なら表示させることができます。 ボールを見つけたときにLEDをON、ラインを踏んだ時にLEDをON、などです。 これだけでも、反応しない原因をしらべるためには有効です。 センサーが反応したらモーターが回るはずなのに回らない、と言う場合、センサーが壊れている場合とモーターが壊れている場合の二通りの原因が考えられます。 この場合に、センサーが反応したらLEDがONとしておけば、 LEDがつかなければ、センサーが反応していないので、センサーが原因 LEDがついているのに、モーターが回っていなければ、センサーは反応しているのにモーターが回らないのだから、モーターが原因と判断できます。 センサーがどれぐらい反応しているか見たい、もしくはセンサーの2個の値がどうなっているか見たい、と言う場合はLEDでは難しくなるので、そのような場合に液晶ディスプレイ(以下、LCD)を使って表示すると便利です。 秋月電子で買える安価なLCDに表示させられたら便利です。 ソフトウェアの改良は必要ですが、候補の機器としては二つあります。 一つ目はこちらです。 I2Cの4ピンが出ていますので、ピンを間違えないように接続すれば動作します。 画像をクリックすると秋月の販売ページにとびます 二つ目がこちらです。 サイズが1つ目に比べて半分ぐらいだけど文字数は同じです。ただし、ピンが多く、ちょっとだけ自分で配線する必要があります。 画像をクリックすると秋月の販売ページにとびます 実際にこれぐらいの回路は作る必要があります。大きさからすれば確実にこちらの方が便利なので、どちらを使うかは回路を組めるかどうかで判断してください。 これらの機器をI2Cの4ピンコネクタでTJ3Bとつなげば、ハードウェアの準備は完了です。 ソフトウェアについて改良が必要と書きましたが具体的には、C-STYLEのプログラム内にあるテキストファイルの書き換えが必要です。Windows付属のメモ帳などでも編集できるので専用のソフトなど...

TJ3Bのセンサーを増やす マルチプレクサの使い方

イメージ
 TJ3Bでセンサーを増やしたいけど、もうセンサーポートがないよ、と言う場合があります。 方法として、センサーをつなげたサブマイコンを用意して通信させる手があります。 その場合も2つ方法があり、  案1.  Arduino(アルディーノ)など、他のマイコンで作る  案2.  TJ3Bまたは、TJ3Bcoreを用意して接続する があります。 案1はArduinoは値段も安く、とても良い方法です。ただ、もう本体もArduinoにしたいと思っているレベルの選手ならやれるでしょうが、Arduinoを使ったことがない場合にセンサーを増やすためにやるのはちょっと難しいと感じるでしょう。 案2はものさえ用意できれば、ケーブルを接続しほぼ設定するだけでできるので難易度は低いです。ただし値段がそれなりにかかりますので、予算が問題になります。もう少し安くて工夫次第で使えるものはないのでしょうか。 今回はちょっとお試しレベルでできるものを紹介します。 値段は安く、難易度はそこそこで、電子工作やマイコンの仕組みなども学べるので今後TJ3Bを卒業してからも役に立つものです。 それができる装置は「マルチプレクサ」と言います。 今回はAmazonで買えるものを試してみました。 Amazonリンク  https://amzn.asia/d/1HDxL57 10個で1000円以下とリーズナブルです。これでセンサーが増やせるなら楽しそうです。 マルチプレクサの仕組みと接続 C-CODEを使う部分はありますが、この値段でセンサーの数を増やせるのは魅力です。 例ではセンサーポート4つを使って8個のセンサーをつなぐ例です。 このように、CN8,CN9,CN10をOUTPUTにしてセンサーの番号を指定すると、CN7に特定のセンサーがつながるという仕組みです。 マイコンをつなぐことを考えれば単純な配線なので、これぐらいは練習でやってみると良いと思います。 マルチプレクサのプログラム(新(黒)マイコン) ※白マイコンについても同じ論理でできる(コードは異なる)はずなので確認次第追記します。 センサー番号を指定してからCN7を読み込めばいいのでプログラムを書いてみます。 理論上は、これで指定したC0のセンサーの値が変数Aに入るはずです。 だが、これだとおかしな値が出てきます。 解析の結果...