Maison  >  Article  >  interface Web  >  Robotique : construisez des robots autonomes avec Raspberry Pi et JavaScript

Robotique : construisez des robots autonomes avec Raspberry Pi et JavaScript

WBOY
WBOYavant
2023-09-07 10:01:021336parcourir

机器人技术:使用 Raspberry Pi 和 JavaScript 构建自主机器人

Ces dernières années, le monde de la robotique a connu une évolution majeure vers les technologies et plateformes open source. Une plate-forme très populaire est le Raspberry Pi, un petit ordinateur monocarte abordable. Combinés à la puissance et à la polyvalence de JavaScript, les développeurs peuvent désormais se lancer dans un voyage passionnant dans le monde de la robotique. Dans cet article, nous explorerons comment créer un robot autonome à l'aide d'un Raspberry Pi et de JavaScript, en plongeant dans des exemples de code, des explications et son résultat.

Configurer le Raspberry Pi

Avant de nous plonger dans le domaine de la robotique JavaScript, il est crucial de configurer correctement votre Raspberry Pi. Tout d’abord, nous devons installer le système d’exploitation nécessaire, tel que Raspbian, qui est le système d’exploitation officiel du Raspberry Pi. Une fois installé, nous pouvons connecter des périphériques comme un clavier, une souris et un moniteur, et même accéder à distance au Raspberry Pi via SSH.

Une fois notre Raspberry Pi opérationnel, nous pouvons commencer à explorer le monde des robots JavaScript.

Servomoteur de contrôle

Les servomoteurs sont des composants clés dans de nombreux systèmes robotiques, nous permettant de contrôler la position ou l'orientation de composants individuels. JavaScript nous fournit des bibliothèques comme « onoff » qui nous permettent d'interagir avec des composants matériels comme les servomoteurs.

Exemple

Regardons un exemple de code montrant comment contrôler un servomoteur à l'aide de JavaScript :

const Gpio = require('onoff').Gpio;

// Create a new servo motor instance
const servo = new Gpio(17, 'out');

// Function to move the servo motor to a specific angle
function moveServo(angle) {
   servo.servoWrite(angle);
}

// Move the servo motor to 0 degrees
moveServo(0);

// Wait for 2 seconds, then move the servo motor to 90 degrees
setTimeout(() => {
   moveServo(90);
}, 2000);

Instructions

Dans le code ci-dessus, nous importons la bibliothèque onoff et créons une instance de la classe GPIO pour le servomoteur connecté à la broche GPIO 17. La méthode servoWrite nous permet de contrôler la position du servomoteur en précisant l'angle souhaité.

Lorsque nous exécutons le code, le servomoteur se déplace d'abord à 0 degré, puis après un délai de 2 secondes, il se déplace à 90 degrés.

Contrôle du moteur à courant continu

Les moteurs à courant continu sont couramment utilisés en robotique pour fournir du mouvement. JavaScript peut également contrôler les moteurs à courant continu à l'aide de bibliothèques comme « pigpio ». Explorons un exemple qui montre comment contrôler un moteur à courant continu à l'aide de JavaScript.

Exemple

const Gpio = require('pigpio').Gpio;

// Create a new DC motor instance
const motor = new Gpio(17, { mode: Gpio.OUTPUT });

// Function to control the DC motor
function controlMotor(speed, direction) {
   motor.servoWrite(speed * direction);
}

// Move the DC motor forward at full speed
controlMotor(255, 1);

// Wait for 2 seconds, then stop the motor
setTimeout(() => {
   controlMotor(0, 1);
}, 2000);

Instructions

Dans le code ci-dessus, nous utilisons la bibliothèque « pigpio » pour contrôler un moteur à courant continu connecté à la broche GPIO 17. Nous créons une instance de la classe Gpio et définissons le mode sur Gpio.OUTPUT. La méthode servoWrite est utilisée pour contrôler la vitesse et la direction d'un moteur à courant continu. Les valeurs positives pour la variable de direction font avancer le moteur, tandis que les valeurs négatives font reculer le moteur.

Un exemple de code fait avancer un moteur à courant continu à pleine vitesse et s'arrête après un délai de 2 secondes.

Établir un comportement autonome

Maintenant que nous avons exploré le contrôle des différents composants, allons plus loin et construisons un comportement autonome pour notre robot. Nous pouvons le faire en incorporant des capteurs (tels que des capteurs à ultrasons) et en écrivant du code pour répondre à leurs entrées.

Prenons un exemple dans lequel nous construisons un simple robot d'évitement d'obstacles utilisant Raspberry Pi, des servomoteurs, des moteurs à courant continu et des capteurs à ultrasons. Un servomoteur sera utilisé pour faire tourner le capteur à ultrasons, tandis qu'un moteur à courant continu assurera le mouvement.

Exemple

const Gpio = require('onoff').Gpio;
const UltraSonic = require('ultrasonic-rx');

// Create instances of servo motor, DC motor, and ultrasonic sensor
const servo = new Gpio(17, 'out');
const motor = new Gpio(18, 'out');
const ultrasonic = new UltraSonic({ echoPin: 23, triggerPin: 24 });

// Function to control the servo motor
function controlServo(angle) {
   servo.servoWrite(angle);
}

// Function to control the DC motor
function controlMotor(speed) {
   motor.servoWrite(speed);
}

// Function to move the robot forward
function moveForward() {
   controlMotor(255);
}

// Function to stop the robot
function stop() {
   controlMotor(0);
}

// Function to avoid obstacles
function avoidObstacle() {
  const distance = ultrasonic.distance();

   if (distance < 30) {
      controlServo(90);
      stop();
   } else {
      controlServo(0);
      moveForward();
   }
}

// Continuously monitor the environment for obstacles
setInterval(avoidObstacle, 100);

Instructions

Dans le code ci-dessus, nous utilisons la bibliothèque « ultrasonic-rx » pour interagir avec le capteur à ultrasons connecté aux broches GPIO 23 et 24. Nous créons des instances de la classe GPIO pour les servomoteurs et les moteurs à courant continu. La fonction controlServo est chargée de contrôler la position du servomoteur, tandis que la fonction controlMotor contrôle la vitesse du moteur à courant continu.

La fonction éviterObstacle lit la distance du capteur à ultrasons et détermine si un obstacle se trouve à moins de 30 cm. Si un obstacle est détecté, le servomoteur tournera vers l'avant et le robot s'arrêtera. Sinon, le servomoteur est orienté latéralement et le robot avance.

Conclusion

JavaScript, avec l'aide de plateformes comme le Raspberry Pi, offre un moyen accessible et flexible de se plonger dans le domaine passionnant de la robotique. Dans cet article, nous explorons comment construire un robot autonome à l'aide d'un Raspberry Pi et de JavaScript. Nous couvrons le contrôle des servomoteurs et des moteurs à courant continu, ainsi que l'utilisation de capteurs pour créer un comportement autonome. Avec les exemples de code, les explications et les résultats fournis, vous pouvez commencer votre propre parcours de robot JavaScript. Les possibilités sont infinies et avec JavaScript comme allié, vous pouvez débloquer un monde de créativité dans la construction de robots autonomes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer