L'utilisation d'outils intelligents tels que Wenxinyiyan améliore de manière exponentielle l'efficacité de l'apprentissage, de la recherche et du développement du système d'exploitation embarqué/Internet des objets (M5Atom/ESP32) et du robot (ROS1/ROS2)

En prenant M5AtomS3 comme exemple, l'efficacité de la rédaction de blogs a été multipliée par plus de 10 :

0.  Configurer ATOM S3 dans l'IDE Arduino dans le blog-CSDN de l'environnement Linux_zhangrelay

1.  Blog-CSDN de M5ATOMS3 basic 01 button_zhangrelay

2.  Le blog-CSDN du capteur M5ATOMS3 basic 02 MPU6886_zhangrelay

3.  M5ATOMS3 Basic 03 envoie un message d'accueil au blog-CSDN de ROS1 (rosserial)_zhangrelay

4.  M5ATOMS3 Basic 04 envoie un message d'accueil au blog-CSDN de ROS2 (micro-ROS)_zhangrelay


contenu de base

Embedded est généralement l'interface IO, entrée/sortie, correspondant au système d'exploitation du robot, avec nom, interaction, pub/sub mis à jour.

En fait, il s'agit d'un seul type de choses. Si vous en apprenez une, vous pourrez lire d'autres contenus similaires.

En fait, le code sous-jacent est un pilote qui active et utilise le périphérique matériel. Après avoir terminé 0-5, vous commencez essentiellement avec ESP32.

Assistance intelligente

Il y a un morceau de code, qui peut être celui de quelqu'un d'autre ou le précédent, qui doit être porté sur M5AtomS3.

Vous pouvez fournir le code à l'IA, puis lui dire comment procéder étape par étape. La plupart des portages de code ne nécessitent pas beaucoup de modifications.

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
}

Ce code est écrit en utilisant le langage de programmation Arduino pour contrôler un interrupteur d'éclairage LED. Voici une explication fonctionnelle du code :

  1. void setup()La fonction est une fonction d'initialisation, qui est appelée une fois lorsque le programme commence à s'exécuter. Dans cette fonction, en pinMode(LED_BUILTIN, OUTPUT)réglant la broche LED_BUILTin en mode sortie, afin de contrôler l'interrupteur de la lumière LED.
  2. void loop()La fonction est la fonction de boucle principale, une fois que le programme commence à s'exécuter, il continuera à s'exécuter dans une boucle. Dans cette fonction, digitalWrite(LED_BUILTIN, HIGH)la lumière LED est allumée en émettant un niveau élevé (tension) sur la broche LED_BUILTin.
  3. delay(1000)La fonction est utilisée pour retarder l'exécution du programme de 1000 millisecondes (1 seconde). Par conséquent, une fois que la LED s'allume, le programme s'interrompt pendant 1 seconde.
  4. Ensuite, digitalWrite(LED_BUILTIN, LOW)éteignez la lumière LED en émettant un niveau bas (tension) sur la broche LED_BUILTin.
  5. Utilisez à nouveau la fonction delay(1000)pour retarder l'exécution du programme de 1000 millisecondes (1 seconde).

Par conséquent, la fonction de ce code est de faire clignoter la lumière LED à une fréquence de 1 seconde, c'est-à-dire que la lumière LED est allumée pendant 1 seconde, puis éteinte pendant 1 seconde, et le cycle continue.

Analysez et comprenez le code à l'aide de l'IA.

Ce code consiste à utiliser la bibliothèque M5AtomS3 pour contrôler une lumière LED sur un système embarqué et changer la couleur de la LED à travers une boucle.

Tout d'abord, dans setup()la fonction, la fonction est appelée M5.begin()pour initialiser M5AtomS3Lite. Les paramètres sont définis comme suit :

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

USBSerial.println()Ensuite, affichez un message via la fonction : "Pls Press Btn change color", invitant l'utilisateur à appuyer sur le bouton pour changer la couleur.

Ensuite, dans loop()la fonction, changez la couleur de la LED en continu à travers une boucle. Le fonctionnement spécifique est le suivant :

  1. Utilisez M5.dis.drawpix()une fonction pour dessiner une valeur de couleur 0xff0000sur un pixel, représentant le rouge.
  2. M5.dis.show()Affichez le résultat du dessin à l'écran via la fonction.
  3. Utilisez delay()une fonction pour retarder de 500 millisecondes.
  4. Répétez les étapes ci-dessus pour dessiner séquentiellement les valeurs de couleur 0x00ff00(vert) et 0x0000ff(bleu) sur le même pixel et les afficher à l'écran.
  5. Utilisez à nouveau la fonction delay()pour retarder de 500 millisecondes.

Cette boucle est répétée encore et encore, ce qui fait que la LED change de couleur encore et encore.

Laissez AI comparer ces deux morceaux de code :

Les deux morceaux de code ont une fonction similaire, les deux contrôlent le clignotement de la lumière LED. Cependant, ils sont implémentés légèrement différemment.

Tout d'abord, le code 1 utilise le langage de programmation Arduino, tandis que le code 2 utilise la bibliothèque M5AtomS3. Cela conduit à une différence dans la façon dont les deux morceaux de code sont initialisés et mis en boucle.

Dans le code 1, pinMode()la fonction est utilisée pour initialiser la broche LED en mode de sortie, puis digitalWrite()la fonction est utilisée pour contrôler l'interrupteur de la LED. La partie boucle utilise loop()une fonction et une fonction de retard delay()pour obtenir l'effet clignotant de la LED.

Dans le code 2, M5.begin()la fonction de la bibliothèque M5AtomS3 est utilisée pour initialiser M5AtomS3Lite et définir certains paramètres. Ensuite, utilisez la même M5.dis.drawpix()fonction pour contrôler la couleur de la LED et utilisez M5.dis.show()la fonction pour afficher le résultat du dessin à l'écran. La partie boucle utilise également loop()des fonctions et une fonction de retard delay()pour obtenir l'effet de clignotement de la LED.

D'une manière générale, les fonctions des deux morceaux de code sont similaires, ils contrôlent tous les deux le clignotement de la lumière LED. Cependant, le code 1 utilise le langage de programmation Arduino, tandis que le code 2 utilise la bibliothèque M5AtomS3, ce qui entraîne certaines différences dans la façon dont ils s'initialisent et bouclent.


Collecte de données

Si vous avez besoin de plus de données d'apprentissage et d'initiation à l'IA, vous pouvez utiliser les méthodes suivantes :

fichier de chat。

Ce code montre comment utiliser la bibliothèque M5Stack pour faire fonctionner l'écran LCD, y compris des fonctions telles que l'initialisation, le passage en mode d'économie d'énergie, la restauration de l'affichage et l'obtention de la hauteur de l'écran. Un exemple est fourni sous le fichier de bibliothèque, où la fonction M5.Lcd.drawString() imprime une chaîne de caractères à une position spécifiée avec une police spécifiée, et la fonction M5.Lcd.print() est utilisée pour imprimer l'alignement du texte acquis sur l'écran. En outre, il montre également des exemples d'utilisation de certaines fonctions de la carte de développement M5Stack, telles que la rotation de l'écran, le réglage de la luminosité de l'écran et le mélange de transparence. Les fonctions incluent setRotation(), setBrightness() et alphaBlend(), etc. Les méthodes et paramètres d'utilisation spécifiques sont décrits en détail dans le code.

Ce code est une description des fonctions de contrôle de l'écran LCD M5Stack, y compris l'initialisation, le passage en mode d'économie d'énergie, la restauration de l'affichage et l'obtention de la hauteur de l'écran. Dans l'exemple, la hauteur de l'écran est affichée à l'écran à l'aide de la fonction M5.Lcd.print(). De plus, il existe une fonction width() utilisée pour renvoyer la largeur de l'écran, mais les exemples d'implémentation et d'utilisation spécifiques ne sont pas fournis dans cet article.

Ce code montre comment utiliser la bibliothèque M5Stack pour faire fonctionner l'écran LCD. Dans la fonction setup(), M5Stack, Power et Lcd sont initialisés, et la largeur de l'écran est affichée à l'écran. La fonction loop() est vide et n'a aucune opération réelle. Les fonctions getCursorX() et getCursorY() obtiennent respectivement les coordonnées x et y à la fin du caractère, mais elles ne peuvent pas être utilisées pour la fonction drawNumber(). La fonction getRotation() renvoie le sens de rotation de l'écran et la fonction getTextDatum() renvoie l'alignement du texte. Dans l'exemple d'utilisation, les paramètres et les types de valeur de retour des fonctions getRotation() et getTextDatum() sont incorrects. La fonction M5.Lcd.drawString() imprime la chaîne de caractères à la position spécifiée avec la police spécifiée, et la fonction M5.Lcd.print() imprime l'alignement du texte acquis. La fonction setCursor() est utilisée pour définir la position du curseur de texte.

Pour résumer, ce code fournit la description des fonctions et des exemples de la bibliothèque M5Stack, y compris des fonctions telles que l'initialisation de l'écran, la définition de la position et de la couleur du texte, la rotation de l'écran et le retour à la ligne automatique, etc., offrant aux développeurs une interface pratique. pour faire fonctionner diverses fonctions du module M5Stack.

Si vous avez besoin de l'écran LCD pour afficher les couleurs de l'arc-en-ciel, veuillez donner un exemple de code

Vous trouverez ci-dessous un exemple de code qui montre comment afficher les couleurs de l'arc-en-ciel sur un écran LCD à l'aide de la bibliothèque M5Stack :

#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); // 延迟一段时间,以便观察效果  
}

Dans cet exemple de code, nous utilisons deux boucles imbriquées pour itérer sur chaque pixel de l'écran. Pour chaque pixel, nous utilisons  M5.Lcd.mapColor() une fonction pour le mapper à une couleur arc-en-ciel, puis utilisons  M5.Lcd.drawPixel() une fonction pour dessiner cette couleur sur l'écran. Enfin, nous utilisons  M5.delay() une fonction pour retarder pendant une période de temps afin d'observer l'effet.

Peut-il être utilisé ? Testez-le, si cela ne fonctionne pas, modifiez-le.

La pub testée auparavant est stable depuis un moment.


 

 

 

Je suppose que tu aimes

Origine blog.csdn.net/ZhangRelay/article/details/132039715
conseillé
Classement