Wenxin Yiyan などのインテリジェント ツールを使用すると、組み込み/モノのインターネット (M5Atom/ESP32) およびロボット オペレーティング システム (ROS1/ROS2) の学習、研究、開発の効率が飛躍的に向上します。

M5AtomS3 を例にとると、ブログ執筆効率が 10 倍以上向上しました。

0.  Linux 環境の Arduino IDE で ATOM S3 を構成する_zhangrelay のブログ - CSDN ブログ

1.  M5ATOMS3 基本 01 button_zhangrelay のブログ - CSDN ブログ

2.  M5ATOMS3 ベーシック 02 センサー MPU6886_zhangrelay のブログ - CSDN ブログ

3.  M5ATOMS3 Basic 03 が ROS1 (rosserial)_zhangrelay のブログ - CSDN ブログに挨拶を送信します

4.  M5ATOMS3 Basic 04 が ROS2 (micro-ROS)_zhangrelay のブログ - CSDN ブログに挨拶を送信します


基本的な内容

通常、ロボット オペレーティング システムに対応するインターフェース IO、入出力が組み込まれており、名前、インタラクション、パブリッシュ/サブスクライブがアップグレードされています。

実はこれらはすべて一種であり、一つを覚えれば他の同様のコンテンツも読めるようになります。

実際、基礎となるコードは、ハードウェア デバイスをアクティブにして使用するドライバーです。0 ~ 5 を完了すると、基本的に ESP32 を開始することになります。

スマートアシスト

他の人のコードか以前のコードである可能性があり、M5AtomS3 に移植する必要があるコードがあります。

コードを AI に提供し、その方法を段階的に指示することができ、ほとんどのコードの移植には大きな変更は必要ありません。

void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(LED_BUILTIN, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);                       // wait for a second
  digitalWrite(LED_BUILTIN, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);                       // wait for a second
}

このコードは、LED ライト スイッチを制御するために Arduino プログラミング言語を使用して書かれています。コードの機能の説明は次のとおりです。

  1. void setup()この関数は初期化関数であり、プログラムの実行開始時に一度呼び出されます。この関数では、pinMode(LED_BUILTIN, OUTPUT)LED_BUILTin ピンを出力モードに設定することで、LED ライトのスイッチを制御します。
  2. void loop()この関数はメイン ループ関数であり、プログラムが実行を開始すると、ループ内で実行を続けます。この関数では、digitalWrite(LED_BUILTIN, HIGH)LED_BUILTin ピンに High レベル (電圧) を出力することで LED ライトが点灯します。
  3. delay(1000)この関数は、プログラムの実行を 1000 ミリ秒 (1 秒) 遅延させるために使用されます。したがって、LED が点灯した後、プログラムは 1 秒間一時停止します。
  4. 次に、digitalWrite(LED_BUILTIN, LOW)LED_BUILTin ピンに Low レベル (電圧) を出力して LED ライトを消灯します。
  5. この関数を再度使用すると、delay(1000)プログラムの実行が 1000 ミリ秒 (1 秒) 遅延されます。

したがって、このコードの機能は、LED ライトを 1 秒の頻度で点滅させることです。つまり、LED ライトが 1 秒間点灯し、その後 1 秒間消灯し、そのサイクルが継続します。

AI を活用してコードを分析して理解します。

このコードは、M5AtomS3 ライブラリを使用して組み込みシステム上の LED ライトを制御し、ループを通じて LED の色を変更します。

まずsetup()関数内でM5AtomS3Liteを初期化する関数を呼び出していますM5.begin()パラメータは次のように設定されます。

M5.begin(false, true, false, true);

次に、関数を使用して「色を変更するにはボタンを押してください」というUSBSerial.println()メッセージを出力し、ボタンを押して色を変更するようにユーザーに促します。

次に、loop()関数内で、ループを通じて LED の色を連続的に変更します。具体的な操作は以下の通りです。

  1. M5.dis.drawpix()関数を使用して0xff0000、赤を表す色の値をピクセルに描画します。
  2. 関数を通じてM5.dis.show()描画結果を画面に表示します。
  3. delay()関数を使用して500 ミリ秒遅らせます。
  4. 上記の手順を繰り返して、同じピクセルに色の値0x00ff00(緑)と(青)を順番に描画し、画面に表示します。0x0000ff
  5. この関数を再度使用すると、delay()500 ミリ秒遅延します。

このループが何度も繰り返され、LED の色が何度も変わります。

AI にこれら 2 つのコードを比較させます。

2 つのコードの機能は似ており、どちらも LED ライトの点滅を制御します。ただし、実装方法は少し異なります。

まず、コード 1 は Arduino プログラミング言語を使用し、コード 2 は M5AtomS3 ライブラリを使用します。これにより、2 つのコードの初期化とループの方法に違いが生じます。

コード 1 では、pinMode()関数を使用して LED ピンを出力モードに初期化し、次にdigitalWrite()関数を使用して LED のスイッチを制御します。ループ部分ではloop()関数と遅延関数を使用してdelay()、LED の点滅効果を実現します。

コード 2 では、M5.begin()M5AtomS3 ライブラリの関数を使用して M5AtomS3Lite を初期化し、いくつかのパラメータを設定します。次に、同じM5.dis.drawpix()関数を使用して LED の色を制御し、M5.dis.show()関数を使用して描画結果を画面に表示します。ループ部分ではloop()関数と遅延関数も使用してdelay()、LED の点滅効果を実現します。

一般的に言えば、2 つのコードの機能は似ており、どちらも LED ライトの点滅を制御します。ただし、コード 1 は Arduino プログラミング言語を使用し、コード 2 は M5AtomS3 ライブラリを使用するため、初期化とループの方法にいくつかの違いがあります。


データ照合

さらに多くの AI 学習および誘導データが必要な場合は、次の方法を使用できます。

チャットファイル。

このコードは、M5Stack ライブラリを使用して LCD 画面を操作する方法を示します。これには、初期化、省エネ モードへの切り替え、表示の復元、画面の高さの取得などの機能が含まれます。M5.Lcd.drawString()関数で指定位置の文字列を指定フォントで印刷し、M5.Lcd.print()関数で取得した文字配置を印刷する例をライブラリファイル配下に記載しています。画面上。さらに、画面の回転、画面の明るさの設定、透明度の混合など、M5Stack 開発ボードの一部の機能の使用例も示します。関数には setRotation()、setBrightness()、alphaBlend() などが含まれます。具体的な使用方法とパラメーターはコード内で詳しく説明されています。

このコードは、初期化、省エネモードへの切り替え、表示の復元、画面の高さの取得など、M5Stack の LCD 画面制御関数を記述したものです。この例では、M5.Lcd.print() 関数を使用して画面の高さを画面に表示します。さらに、画面の幅を返すために使用される width() 関数もありますが、この記事では具体的な実装と使用例については説明しません。

このコードは、M5Stack ライブラリを使用して LCD 画面を操作する方法を示しています。setup()関数ではM5Stack、Power、Lcdが初期化され、画面に画面の幅が表示されます。LOOP() 関数は空であり、実際の操作はありません。getCursorX() 関数と getCursorY() 関数はそれぞれ文字の末尾の x 座標と y 座標を取得しますが、drawNumber() 関数には使用できません。getRotation() 関数は画面の回転方向を返し、getTextDatum() 関数はテキストの配置を返します。使用例では、getRotation()関数、getTextDatum()関数のパラメータと戻り値の型が間違っています。M5.Lcd.drawString() 関数は指定された位置の文字列を指定されたフォントで印刷し、M5.Lcd.print() 関数は取得したテキスト配置を印刷します。setCursor() 関数は、テキスト カーソルの位置を設定するために使用されます。

要約すると、このコードは、画面の初期化、テキストの位置と色の設定、画面の回転、自動行折り返しなどの機能を含む M5Stack ライブラリの機能の説明と例を提供し、開発者に便利なインターフェイスを提供します。 M5Stackモジュールの各種機能を操作する機能です。

LCD画面に虹色を表示する必要がある場合は、サンプルコードを提供してください。

以下は、M5Stack ライブラリを使用して LCD 画面に虹色を表示する方法を示すサンプル コードです。

#include <M5Stack.h>  
  
void setup() {  
  M5.begin(); // 初始化 M5Stack  
  M5.Power.begin(); // 初始化 Power 模块  
  M5.Lcd.begin(TFT_WIDTH, TFT_HEIGHT); // 初始化 LCD 屏幕  
  M5.Lcd.setRotation(3); // 将屏幕旋转到竖直方向  
}  
  
void loop() {  
  // 在屏幕上绘制彩虹色条带  
  for (int y = 0; y < TFT_HEIGHT; y++) {  
    for (int x = 0; x < TFT_WIDTH; x++) {  
      uint32_t color = M5.Lcd.mapColor(x, y, TFT_WIDTH - x - 1, TFT_HEIGHT - y - 1);  
      M5.Lcd.drawPixel(x, y, color);  
    }  
  }  
  M5.delay(100); // 延迟一段时间,以便观察效果  
}

このサンプル コードでは、2 つのネストされたループを使用して、画面上のすべてのピクセルを反復処理します。各ピクセルについて、 M5.Lcd.mapColor() 関数を使用してピクセルを虹色にマッピングし、 M5.Lcd.drawPixel() 関数を使用してその色を画面上に描画します。最後に、関数を使用して M5.delay() 一定期間遅延させ、効果を観察します。

使用できますか? テストしてみて、うまくいかない場合は修正します。

以前にテストしたパブはしばらく安定していました。


 

 

 

おすすめ

転載: blog.csdn.net/ZhangRelay/article/details/132039715