最も興味深い順序付けられた色合いの中には、解像度320x240のカラーTFT ディスプレイがあり、16ビットバスと抵抗膜方式のタッチスクリーンがあります。 後で判明したように、ディスプレイは移行シールドを介してメガに接続する必要がありましたが、この点を見逃したため、アダプターは注文されませんでした。 その結果、深刻なワイヤーの山と一定数の神経細胞の助けを借りて、ディスプレイが巻き上げられ、標準ライブラリが取り上げられ、実験が始まりました。 実際には、後者の結果について説明します。
今これは「ママ」です
超音波距離センサーとカラーディスプレイを手に持っているため、距離の英数字の値だけを扱うのは本当に悲しいので、センサーが「見た」ものをグラフィカルに認識するというアイデアは時間の問題でした。 最新の産業用レーダーステーションでは、2D空間での拡張のために、アンテナはその軸を中心に回転できるプラットフォームに配置されています。 私は他に何も思いつきませんでしたが、単に超音波センサーをホットメルト接着剤、サーボ推力に接着しました。
それでも、10mWのレーザーと-ハエを恐れる!!!
結果として得られるユニットである
仕事の原理を示す小さなアニマシカ。
コードをできる限り単純化しました。 ただし、より安定したバージョンでは、センサーエラー修正プログラムが追加されます。 超音波は定期的に超越データを送信し、現在の値に2000mmを加算します。 さらに、前の値と後続の値は通常の制限内です。 そのため、近隣のデータを分析して、コードでエラーを修正します。
#include <UTFT.h>// #include <Servo.h>// #include <Ultrasonic.h>// Servo servoMain; // Ultrasonic ultrasonic(5, 6);// UTFT myGLCD(ITDB32S, 38,39,40,41);// int i = 0; // int dist_cm = 0;// boolean trig = false; // void setup() { servoMain.attach(3); // 3 myGLCD.InitLCD(); // myGLCD.clrScr();// Serial.begin(9600);// . } void loop() { if(!trig){i++;}// trig false i if(trig){i--;}// trig true i dist_cm = ultrasonic.Ranging(CM); // myGLCD.setColor(55,255,55); // myGLCD.fillCircle(i, (99 - dist_cm)*2, 2);// 2 , x = i, y = if(i==319) // i { trig = true;// trig true myGLCD.clrScr();// } if(i==0) { trig = false;// trig false myGLCD.clrScr();// } delay(5);// 5. servoMain.write(i/2); // i/2 delay(5);// 5. }
しかし、いくつかの問題がありました。 USBによって生成された電流は、超音波センサーを備えたサーバーは言うまでもなく、arduinoとディスプレイのみに完全に電力を供給するのに十分ではないことが判明しました。 さらに9ボルトPSUからボードに電力を供給しなければなりませんでした。 ただし、この場合でも、超音波は誤ったデータを生成し、その測定限界は深さ50 cmに制限されていました。 そして、これはセンサーからの最終データに混入した干渉の質量をカウントしていません。 干渉の原因は判明したとおり、サーボマシンであり、回転中に超音波センサーに深刻な干渉を与えました。 その結果、サーボは、2番目の電源から電力を供給され、マイナス線のみを共通の回路に接続しました。 すべての対策を講じましたが、干渉は部分的に残っており、センサーからのデータとディスプレイからの画像の両方で顕著です。