Table des matières
Configurer le Raspberry Pi
Servomoteur de contrôle
Exemple
Instructions
Contrôle du moteur à courant continu
Établir un comportement autonome
Conclusion
Maison interface Web js tutoriel Robotique : construisez des robots autonomes avec Raspberry Pi et JavaScript

Robotique : construisez des robots autonomes avec Raspberry Pi et JavaScript

Sep 07, 2023 am 10:01 AM

机器人技术:使用 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);
Copier après la connexion

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);
Copier après la connexion

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);
Copier après la connexion

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 de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment créer et publier mes propres bibliothèques JavaScript? Comment créer et publier mes propres bibliothèques JavaScript? Mar 18, 2025 pm 03:12 PM

L'article discute de la création, de la publication et du maintien des bibliothèques JavaScript, en se concentrant sur la planification, le développement, les tests, la documentation et les stratégies de promotion.

Comment optimiser le code JavaScript pour les performances dans le navigateur? Comment optimiser le code JavaScript pour les performances dans le navigateur? Mar 18, 2025 pm 03:14 PM

L'article traite des stratégies pour optimiser les performances JavaScript dans les navigateurs, en nous concentrant sur la réduction du temps d'exécution et la minimisation de l'impact sur la vitesse de chargement de la page.

Que dois-je faire si je rencontre l'impression de code brouillé pour les reçus en papier thermique frontal? Que dois-je faire si je rencontre l'impression de code brouillé pour les reçus en papier thermique frontal? Apr 04, 2025 pm 02:42 PM

Des questions et des solutions fréquemment posées pour l'impression de billets thermiques frontaux pour le développement frontal, l'impression de billets est une exigence commune. Cependant, de nombreux développeurs mettent en œuvre ...

Comment déboguer efficacement le code JavaScript à l'aide d'outils de développeur de navigateur? Comment déboguer efficacement le code JavaScript à l'aide d'outils de développeur de navigateur? Mar 18, 2025 pm 03:16 PM

L'article traite du débogage efficace de JavaScript à l'aide d'outils de développeur de navigateur, de se concentrer sur la définition des points d'arrêt, de l'utilisation de la console et d'analyser les performances.

Qui est payé plus de python ou de javascript? Qui est payé plus de python ou de javascript? Apr 04, 2025 am 12:09 AM

Il n'y a pas de salaire absolu pour les développeurs Python et JavaScript, selon les compétences et les besoins de l'industrie. 1. Python peut être davantage payé en science des données et en apprentissage automatique. 2. JavaScript a une grande demande dans le développement frontal et complet, et son salaire est également considérable. 3. Les facteurs d'influence comprennent l'expérience, la localisation géographique, la taille de l'entreprise et les compétences spécifiques.

Comment utiliser les cartes source pour déboguer le code JavaScript minifié? Comment utiliser les cartes source pour déboguer le code JavaScript minifié? Mar 18, 2025 pm 03:17 PM

L'article explique comment utiliser les cartes source pour déboguer JavaScript minifiée en le mappant au code d'origine. Il discute de l'activation des cartes source, de la définition de points d'arrêt et de l'utilisation d'outils comme Chrome Devtools et WebPack.

La différence dans Console.Log de sortie Résultat: Pourquoi les deux appels sont-ils différents? La différence dans Console.Log de sortie Résultat: Pourquoi les deux appels sont-ils différents? Apr 04, 2025 pm 05:12 PM

Discussion approfondie des causes profondes de la différence de sortie Console.log. Cet article analysera les différences dans les résultats de sortie de la fonction Console.log dans un morceau de code et expliquera les raisons derrière. � ...

TypeScript pour les débutants, partie 2: Types de données de base TypeScript pour les débutants, partie 2: Types de données de base Mar 19, 2025 am 09:10 AM

Une fois que vous avez maîtrisé le didacticiel TypeScript de niveau d'entrée, vous devriez être en mesure d'écrire votre propre code dans un IDE qui prend en charge TypeScript et de le compiler en JavaScript. Ce tutoriel plongera dans divers types de données dans TypeScript. JavaScript a sept types de données: null, non défini, booléen, numéro, chaîne, symbole (introduit par ES6) et objet. TypeScript définit plus de types sur cette base, et ce tutoriel les couvrira tous en détail. Type de données nuls Comme javascript, null en typeScript

See all articles