Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Pathfinder

Composants et fournitures

Arduino UNO
L'un des composants principaux.
× 1
Capteur à ultrasons - HC-SR04 (Générique)
L'un des composants principaux.
× 1
Batterie Li-Ion 1000mAh
L'un des composants principaux.
× 2
Cathode commune diffuse RVB
L'un des composants principaux.
× 1
Sonnerie
Une des fournitures nécessaires.
× 1
Résistance 330 ohm
Une des fournitures nécessaires.
× 3
Câble USB-A vers B
Une des fournitures nécessaires.
× 1
Câbles de raccordement (générique)
Une des fournitures nécessaires.
× 20

Outils et machines nécessaires

Arduino Materia 101
Une des machines principales.
Tournevis Diligent
L'un des outils nécessaires.

Applications et services en ligne

Arduino IDE
L'une des principales applications.
Autodesk Fusion 360
L'un des services en ligne.

À propos de ce projet

Résumé

Le document représente la conception d'un robot évitant les obstacles avec la capacité de détecter des objets sur son parcours et de naviguer autour de ces objets en prenant une décision appropriée. Il présente une unité robotique basée sur Arduino UNO et Adafruit Motor Shield où le code est écrit dans le logiciel Arduino IDE. L'évitement des obstacles est l'un des facteurs clés considérables pour le développement de robots mobiles. La mise en œuvre du capteur de distance à ultrasons placé sur le micro-servomoteur a donné plus de précision pour détecter les objets environnants. Ce robot conçu est différent des autres robots disponibles en raison de l'intégration d'un avertisseur magnétique et d'une LED CC RVB diffuse grâce auxquels il a la capacité d'indiquer la procédure de détection d'objets et de contrôler la vitesse des moteurs à engrenages à courant continu dans 4 types de circonstances. En tant que robot autonome, la possibilité de manœuvrer dans des conditions inconnues sans créer d'impact a été exécutée. De plus, cette technologie conçue peut être déployée pour des opérations militaires et d'assistance humanitaire en améliorant la capacité de détection d'objets dans divers environnements.

Multimédia

Interprétation

Les bibliothèques incluses ajoutées dans le code de bloc sont les suivantes,

AFMotor.h
Servo.h

Les connexions définies attribuées dans le code en ligne sont les suivantes :

définir BuzzPIN A0

définir TrigPIN A1

définir EchoPIN A2

définir LEDBPIN A3

définir LEDGPIN A4

définir LEDRPIN A5

définir DCMROFF 25

Le programme prévu prévu dans l'architecture du robot est le suivant,

  • Capacité de détecter des objets sur son chemin par des plages de distance prédéterminées.
  • Recherchez un nouveau chemin par rapport à une direction ouverte.
  • Indiquez la détection d'objets et contrôlez sa vitesse.

Toutes les opérations s'effectueraient de manière autonome sans nécessiter de contrôle externe.

Ce projet a présenté les détails essentiels pour la conception d'un robot mobile qui a été mis en œuvre avec la capacité d'éviter les obstacles, de naviguer seul et d'indiquer le mouvement des motoréducteurs à courant continu en allumant la couleur sélective d'une LED CC RVB diffusée dans 4 situations différentes. Le robot conçu a montré une variance par rapport aux autres robots évitant les obstacles en termes d'indication lumineuse et sonore, de contrôle de la vitesse du moteur et de technique de manœuvre intense en détectant des obstacles d'une portée de 180 degrés devant le robot ; ce qui était une tâche difficile à combiner grâce à une programmation appropriée. Le robot a été construit sur la plate-forme Arduino UNO Rev3 à l'aide du logiciel Arduino IDE v1.8.5 pour l'intégration du code d'assemblage approprié afin d'acquérir les fonctions nécessaires. Cette intégration a rendu le robot capable d'effectuer les opérations requises sans interaction humaine et avec une précision considérable. Avec d'autres développements en combinant une caméra de diffusion et une technologie sans fil, ce robot peut être utilisé efficacement pour des opérations militaires afin de détecter différents types d'activités, tandis que ses unités de base peuvent être utiles pour aider les humains malvoyants ou malentendants à notifier l'emplacement des objets environnants.

Vitrine du projet Youth Zest

Code

  • Programme
ProgrammeArduino
Le programme d'assemblage, pour configurer en conséquence cette machine autonome.
#include  // Ajout de la bibliothèque de kits Adafruit Motor Shield pour Arduino.#include  // Ajout de la bibliothèque Servo Motor.#define BuzzPIN A0 // Attribuez le PIN A0 en tant que BuzzPIN (Connectez le PIN Arduino UNO "A0" avec le PIN Buzzer "+"). PIN).#define EchoPIN A2 // Attribuez le PIN A2 comme EchoPIN (Connectez le PIN Arduino UNO "A2" avec le PIN "Trig" du capteur sonar à ultrasons).#define LEDBPIN A3 // Assignez le PIN A3 comme LEDBPIN (Connectez Arduino UNO "A3" PIN avec code PIN "LEDB" à cathode commune diffuse RVB).#define LEDGPIN A4 // Attribuez le PIN A4 comme LEDGPIN (Connectez le code PIN Arduino UNO "A4" avec le code PIN "LEDG" à cathode commune diffuse RVB).#define LEDRPIN A5 // Attribuez le code PIN A5 en tant que LEDRPIN (Connectez le PIN Arduino UNO "A5" avec le PIN "LEDR" à cathode commune diffuse RVB). #define DCMROFF 25 // Ceci définit le décalage pour permettre les différences entre les deux moteurs de traction CC.AF_DCMo pour M1 (1, MOTOR12_64KHZ); // Créer DCMotor #1 à l'aide de la sortie M1, régler sur une fréquence PWM de 64 kHz.AF_DCMotor M2 (2, MOTOR12_64KHZ); // Créer DCMotor #2 à l'aide de la sortie M2, régler sur une fréquence PWM de 64 kHz. Servo SER1; // Créer un objet Servo pour contrôler Servo.int Search (void) { // Déclaration de variable de type entier. Durée flottante =0,0 ; // Déclaration de variable de type flottant. flottant CM =0,0 ; // Déclaration de variable de type flottant. digitalWrite (TrigPIN, LOW); // Sortie TrigPIN en 0V (niveau logique bas). délaiMicrosecondes (2) ; // Retard de 2 us, envoie une impulsion élevée de 10 us au capteur sonar à ultrasons "TrigPIN". digitalWrite (TrigPIN, HAUT); // Sortie TrigPIN en 5V (niveau logique haut). délaiMicrosecondes (10) ; // Retard de 10us. digitalWrite (TrigPIN, LOW); // Sortie TrigPIN en 0V (niveau logique bas). Durée =pulseIn (EchoPIN, HIGH); // Commencer à compter le temps, jusqu'à nouveau EchoPIN retour à la logique "High Level" et mettre le "Time" dans la variable appelée "Duration". CM =(Durée/58,8); // Convertir la distance en CM. retour CM ; // Retour à CM.}int RightDistance, LeftDistance; // Distances de chaque côté.float Distance =0.00; // Variable de type flottant declaration.void setup () { // Boucle de configuration. pinMode (BuzzPIN, SORTIE); // Déclarez BuzzPIN comme "PIN de sortie". pinMode (TrigPIN, SORTIE); // Déclarez TrigPIN comme "PIN de sortie". pinMode (EchoPIN, INPUT); // Déclarez EchoPIN comme "PIN de sortie". pinMode (LEDBPIN, SORTIE); // Déclarez LEDBPIN comme "PIN de sortie". pinMode (LEDGPIN, SORTIE); // Déclarez LEDGPIN comme "PIN de sortie". pinMode (LEDRPIN, SORTIE); // Déclarez LEDRPIN comme "PIN de sortie". SER1.attache (10) ; // Attache le servo sur la broche 10 (SER1 sur le kit Adafruit Motor Shield pour Arduino à l'objet Servo).} void loop () { // Main loop. SER1.write (80); // Indique au servo de se positionner à 80 degrés (face vers l'avant). retard (100); // Retard de 0,1s. Distance =Recherche (); // Mesure de la distance en CM. if (Distance <30) { // Si obstacle trouvé à 30cm. digitalWrite (BuzzPIN, ÉLEVÉ); // Sortie BuzzPIN en 5V (niveau logique haut). digitalWrite (LEDBPIN, LOW); // Sortie LEDBPIN en 0V (niveau logique bas). digitalWrite (LEDGPIN, LOW); // Sortie LEDGPIN en 0V (niveau logique bas). digitalWrite (LEDRPIN, HAUT); // Sortie LEDRPIN en 5V (Logic haut niveau). M1.setSpeed ​​(100); // Ralentir. M2.setSpeed ​​(100); // Ralentir. ChangePath (); // Si l'avance est bloquée Changer de direction. } else if ((Distance>=30) &&(Distance <60)) { // Si obstacle trouvé entre 30cm et 60cm. digitalWrite (BuzzPIN, LOW); // Sortie BuzzPIN en 0V (niveau logique bas). digitalWrite (LEDBPIN, ÉLEVÉ); // Sortie LEDBPIN en 5V (Logic haut niveau). digitalWrite (LEDGPIN, LOW); // Sortie LEDGPIN en 0V (niveau logique bas). digitalWrite (LEDRPIN, LOW); // Sortie LEDRPIN en 0V (niveau logique bas). M1.setSpeed ​​(150); // La vitesse augmente légèrement. M2.setSpeed ​​(150); // La vitesse augmente légèrement. Effronté (); // Le robot se déplace vers l'avant. } else if ((Distance>=60) &&(Distance <90)) { // Si obstacle trouvé entre 60cm et 90cm. digitalWrite (BuzzPIN, LOW); // Sortie BuzzPIN en 0V (niveau logique bas). digitalWrite (LEDBPIN, LOW); // Sortie LEDBPIN en 0V (niveau logique bas). digitalWrite (LEDGPIN, ÉLEVÉ); // Sortie LEDGPIN en 5V (Logic haut niveau). digitalWrite (LEDRPIN, LOW); // Sortie LEDRPIN en 0V (niveau logique bas). M1.setSpeed ​​(200); // Accélérer. M2.setSpeed ​​(200); // Accélérer. Effronté (); // Le robot se déplace vers l'avant. } else { // Si l'obstacle ne peut pas être trouvé à 90cm. digitalWrite (BuzzPIN, LOW); // Sortie BuzzPIN en 0V (niveau logique bas). digitalWrite (LEDBPIN, ÉLEVÉ); // Sortie LEDBPIN en 5V (niveau logique haut). digitalWrite (LEDGPIN, ÉLEVÉ); // Sortie LEDGPIN en 5V (Logic haut niveau). digitalWrite (LEDRPIN, HAUT); // Sortie LEDRPIN en 5V (Logic haut niveau). M1.setSpeed ​​(250); // La vitesse augmente complètement. M2.setSpeed ​​(250); // La vitesse augmente complètement. Effronté (); // Le robot se déplace vers l'avant. }}void ChangePath () { // Boucle de changement de chemin. Arrêter (); // Arrêt du robot. En arrière (); // Robot exécuté en sens inverse. Arrêter (); // Arrêt du robot. SER1.write (12) ; // Vérifiez la distance à droite. retard (500); // Retard de 0.5s. DistanceDroite =Recherche (); // Définir la bonne distance. retard (500); // Retard de 0.5s. SER1.write (160); // Vérifiez la distance à gauche. retard (1000); // Retard de 1s. LeftDistance =Recherche (); // Définir la distance à gauche. retard (500); // Retard de 0.5s. SER1.write (80); // Retour au centre. retard (500); // Retard de 0.5s. ComparerDistance (); // Trouver la distance la plus longue.}void CompareDistance () { // Boucle de comparaison de distance. if (RightDistance> LeftDistance) { // Si la droite est moins obstruée. Tournez à droite (); // Robot tourne à droite. } else if (LeftDistance> RightDistance) { // Si Left est moins obstrué. Tourner à gauche (); // Robot tourne à gauche. } else { // Si les deux sont également obstrués. Faire demi-tour (); // Robot fait demi-tour. }}void Forward () { // Boucle avant. M1.run (AVANT) ; // Tournez DCMotor #1 sur Forward. M2.run (AVANT) ; // Tournez DCMotor #1 sur Forward.}void Backward () { // Boucle arrière. M1.run (ARRIÈRE); // Tournez DCMotor #1 vers l'arrière. M2.run (ARRIÈRE); // Tournez DCMotor #2 vers l'arrière. retard (500); // Delay for 1s.}void TurnRight () { // Boucle de virage à droite. M1.run (ARRIÈRE); // Tournez DCMotor #1 vers l'arrière. M2.run (AVANT) ; // Tournez DCMotor #2 vers Forward. M1.setSpeed ​​(100+DCMROFF); // Calibrer la vitesse du DCMotor #1. retard (300); // Delay for 0.7s.}void TurnLeft () { // Boucle de virage à gauche. M1.run (AVANT) ; // Tournez DCMotor #1 sur Forward. M2.run (ARRIÈRE); // Tournez DCMotor #2 vers l'arrière. M2.setSpeed ​​(100+DCMROFF); // Calibrer la vitesse du DCMotor #2. retard (300); // Delay for 0.7s.}void TurnAround () { // Boucle Trun Around. M1.run (AVANT) ; // Tournez DCMotor #1 sur Forward. M2.run (ARRIÈRE); // Tournez DCMotor #2 vers l'arrière. M2.setSpeed ​​(100+DCMROFF); // Calibrer la vitesse du DCMotor #2. retard (700); // Delay for 2.1s.}void Stop () { // Arrêt de la boucle. M1.run (LIBÉRER); // Relâchez DCMotor #1. M2.run (LIBÉRER) ; // Relâchez DCMotor #2. retard (100); // Retard de 0,1 s.}

Pièces et boîtiers personnalisés

Châssis
Le châssis du robot, pour aménager en conséquence cette machine autonome.

Schémas

Le schéma électrique, pour paramétrer en conséquence cette machine autonome.

Processus de fabrication

  1. Composants de circuit
  2. Circuit intégré
  3. Envoyer des données de capteur d'un Arduino à un autre à l'aide de Firebase
  4. Dés numériques Arduino
  5. Capteur de température multiple
  6. MOSMusique
  7. Qu'est-ce que la microélectronique ?
  8. Composants de perceuse
  9. Composants du moteur à combustion interne