Comment Faire Un Mini Radar Avec Arduino

Télécharger au format docx, pdf ou txt
Télécharger au format docx, pdf ou txt
Vous êtes sur la page 1sur 21

Mini Radar avec

Arduino

Réalisée par : Encadré par :


Mahtlouthi Ahmed Aziz Mr. Abidi
Ben Zekri Aziz
Griguiche Melek
Morchdi Akram

Page | 1
Sommaire:
Introduction………………………………………………………………………….4
Matériel Requis ……………………………………………………………………5
Montage du Circuit.……………………………..…………………………….7
Programmation de l'Arduino…………………………………………………8
Test et Calibration…………………………………………………………….20
Conclusion……………………………………………………………………….…21

Page | 2
Sommaire des images
Image 1 : carte Arduino…….....………………………………………………5
Image 2 : capter Ultrason.........................................................5
Image 3 : Servomoteur.............................................................5
Image 4 : Ecran LCD..................................................................6
Image 5 : Fil de connexion.......................................................6

Page | 3
Introduction
Le projet de mini radar avec Arduino est une expérience passionnante qui
permet de comprendre les principes de base de la détection d'objets à l'aide
d'ondes radio. Dans ce projet, nous allons utiliser un capteur à ultrasons
connecté à une carte Arduino pour mesurer la distance entre le capteur et les
objets environnants. Nous allons ensuite afficher ces informations sur un écran
LCD pour créer un mini radar en temps réel.

Page | 4
Matériel Requis
Carte Arduino
Une carte Arduino Uno ou équivalent est nécessaire pour ce projet.

Module Radar
Un module radar à ultrasons est requis pour détecter les objets en mouvement.

Servomoteur
Un servomoteur est nécessaire pour faire tourner le module radar et effectuer les
mesures.

Ecran LCD
Un écran LCD est nécessaire pour afficher les résultats de la mesure

Page | 5
Breadboard et Fils de Connexion
Une breadboard et des fils de connexion sont nécessaires pour connecter les
différents composants.

Page | 6
Montage du Circuit
Matériel requis
Pour le montage du circuit du mini radar, vous aurez besoin des éléments
suivants :
 Une carte Arduino
 Un module radar à ultrasons
 Servomoteur
 Un écran LCD
 Des fils de connexion
Étapes du montage
Voici les étapes à suivre pour monter le circuit du mini radar :
1. Connectez le module radar à ultrasons à la carte Arduino en utilisant les
fils de connexion.
2. Connectez l'écran LCD à la carte Arduino en utilisant les fils de
connexion.
3. Assurez-vous que toutes les connexions sont correctement fixées et
sécurisées.

Page | 7
Programmation de l'Arduino
Configuration de l'Arduino
Avant de commencer la programmation de l'Arduino pour le mini radar, assurez-
vous que vous avez correctement configuré votre carte Arduino. Assurez-vous
d'avoir installé le logiciel Arduino IDE et connecté votre Arduino à votre
ordinateur via un câble USB. Vérifiez également que vous avez sélectionné le
bon type de carte et le bon port série dans l'IDE Arduino.
Programmation du mini radar
La programmation du mini radar avec Arduino implique l'utilisation du langage
de programmation Arduino, qui est basé sur le langage de programmation C++.
Vous pouvez commencer par définir les broches d'entrée et de sortie de votre
Arduino, puis écrire le code pour lire les données du capteur radar et les afficher
sur un écran LCD ou les transmettre à un ordinateur via une connexion série.
Voici le code Arduino :
1.// Includes the Servo library

2.#include <Servo.h>

3.// Defines Tirg and Echo pins of the Ultrasonic


Sensor

4.const int trigPin = 10;

5.const int echoPin = 11;

6.// Variables for the duration and the distance

7.long duration;

8.int distance;

9.Servo myServo; // Creates a servo object for


controlling the servo motor

10. void setup() {

11. pinMode(trigPin, OUTPUT); // Sets the trigPin


as an Output

Page | 8
12. pinMode(echoPin, INPUT); // Sets the echoPin
as an Input

13. Serial.begin(9600);

14. myServo.attach(12); // Defines on which pin


is the servo motor attached

15. }

16. void loop() {

17. // rotates the servo motor from 15 to 165


degrees

18. for(int i=15;i<=165;i++){

19. myServo.write(i);

20. delay(30);

21. distance = calculateDistance();// Calls a


function for calculating the distance measured by
the Ultrasonic sensor for each degree

22. Serial.print(i); // Sends the current degree


into the Serial Port

23. Serial.print(","); // Sends addition


character right next to the previous value needed
later in the Processing IDE for indexing

24. Serial.print(distance); // Sends the distance


value into the Serial Port

25. Serial.print("."); // Sends addition


character right next to the previous value needed
later in the Processing IDE for indexing

26. }

Page | 9
27. // Repeats the previous lines from 165 to 15
degrees

28. for(int i=165;i>15;i--){

29. myServo.write(i);

30. delay(30);

31. distance = calculateDistance();

32. Serial.print(i);

33. Serial.print(",");

34. Serial.print(distance);

35. Serial.print(".");

36. }

37. }

38. // Function for calculating the distance


measured by the Ultrasonic sensor

39. int calculateDistance(){

40. digitalWrite(trigPin, LOW);

41. delayMicroseconds(2);

42. // Sets the trigPin on HIGH state for 10


micro seconds

43. digitalWrite(trigPin, HIGH);

44. delayMicroseconds(10);

Page | 10
45. digitalWrite(trigPin, LOW);

46. duration = pulseIn(echoPin, HIGH); // Reads


the echoPin, returns the sound wave travel time
in microseconds

47. distance= duration*0.034/2;

48. return distance;


49. }

Voici le code pour l’affichage :


1.import processing.serial.*; // imports library
for serial communication

2.import java.awt.event.KeyEvent; // imports


library for reading the data from the serial port

3.import java.io.IOException;

4.Serial myPort; // defines Object Serial

5.// defubes variables

6.String angle="";

7.String distance="";

8.String data="";

9.String noObject;

10. float pixsDistance;

11. int iAngle, iDistance;

12. int index1=0;

13. int index2=0;

14. PFont orcFont;

Page | 11
15. void setup() {

16. size (1200, 700); // ***CHANGE THIS TO YOUR


SCREEN RESOLUTION***

17. smooth();

18. myPort = new Serial(this,"COM4", 9600); //


starts the serial communication

19. myPort.bufferUntil('.'); // reads the data


from the serial port up to the character '.'. So
actually it reads this: angle,distance.

20. }

21. void draw() {

22. fill(98,245,31);

23. // simulating motion blur and slow fade of


the moving line

24. noStroke();

25. fill(0,4);

26. rect(0, 0, width, height-height*0.065);

27. fill(98,245,31); // green color

28. // calls the functions for drawing the radar

29. drawRadar();

30. drawLine();

Page | 12
31. drawObject();

32. drawText();

33. }

34. void serialEvent (Serial myPort) { // starts


reading data from the Serial Port

35. // reads the data from the Serial Port up to


the character '.' and puts it into the String
variable "data".

36. data = myPort.readStringUntil('.');

37. data = data.substring(0,data.length()-1);

38. index1 = data.indexOf(","); // find the


character ',' and puts it into the variable
"index1"

39. angle= data.substring(0, index1); // read the


data from position "0" to position of the
variable index1 or thats the value of the angle
the Arduino Board sent into the Serial Port

40. distance= data.substring(index1+1,


data.length()); // read the data from position
"index1" to the end of the data pr thats the
value of the distance

41. // converts the String variables into Integer

42. iAngle = int(angle);

43. iDistance = int(distance);

Page | 13
44. }

45. void drawRadar() {

46. pushMatrix();

47. translate(width/2,height-height*0.074); //
moves the starting coordinats to new location

48. noFill();

49. strokeWeight(2);

50. stroke(98,245,31);

51. // draws the arc lines

52. arc(0,0,(width-width*0.0625),(width-
width*0.0625),PI,TWO_PI);

53. arc(0,0,(width-width*0.27),(width-
width*0.27),PI,TWO_PI);

54. arc(0,0,(width-width*0.479),(width-
width*0.479),PI,TWO_PI);

55. arc(0,0,(width-width*0.687),(width-
width*0.687),PI,TWO_PI);

56. // draws the angle lines

57. line(-width/2,0,width/2,0);

58. line(0,0,(-width/2)*cos(radians(30)),(-
width/2)*sin(radians(30)));

59. line(0,0,(-width/2)*cos(radians(60)),(-
width/2)*sin(radians(60)));

60. line(0,0,(-width/2)*cos(radians(90)),(-
width/2)*sin(radians(90)));

Page | 14
61. line(0,0,(-width/2)*cos(radians(120)),(-
width/2)*sin(radians(120)));

62. line(0,0,(-width/2)*cos(radians(150)),(-
width/2)*sin(radians(150)));

63. line((-
width/2)*cos(radians(30)),0,width/2,0);

64. popMatrix();

65. }

66. void drawObject() {

67. pushMatrix();

68. translate(width/2,height-height*0.074); //
moves the starting coordinats to new location

69. strokeWeight(9);

70. stroke(255,10,10); // red color

71. pixsDistance = iDistance*((height-


height*0.1666)*0.025); // covers the distance
from the sensor from cm to pixels

72. // limiting the range to 40 cms

73. if(iDistance<40){

74. // draws the object according to the angle


and the distance

75. line(pixsDistance*cos(radians(iAngle)),-
pixsDistance*sin(radians(iAngle)),(width-
width*0.505)*cos(radians(iAngle)),-(width-
width*0.505)*sin(radians(iAngle)));

76. }

Page | 15
77. popMatrix();

78. }

79. void drawLine() {

80. pushMatrix();

81. strokeWeight(9);

82. stroke(30,250,60);

83. translate(width/2,height-height*0.074); //
moves the starting coordinats to new location

84. line(0,0,(height-
height*0.12)*cos(radians(iAngle)),-(height-
height*0.12)*sin(radians(iAngle))); // draws the
line according to the angle

85. popMatrix();

86. }

87. void drawText() { // draws the texts on the


screen

88. pushMatrix();

89. if(iDistance>40) {

90. noObject = "Out of Range";

91. }

92. else {

93. noObject = "In Range";

94. }

Page | 16
95. fill(0,0,0);

96. noStroke();

97. rect(0, height-height*0.0648, width, height);

98. fill(98,245,31);

99. textSize(25);

100. text("10cm",width-width*0.3854,height-
height*0.0833);

101. text("20cm",width-width*0.281,height-
height*0.0833);

102. text("30cm",width-width*0.177,height-
height*0.0833);

103. text("40cm",width-width*0.0729,height-
height*0.0833);

104. textSize(40);

105. text("ENERGEN ", width-width*0.875, height-


height*0.0277);

106. text("Angle: " + iAngle +" °", width-


width*0.48, height-height*0.0277);

107. text("Distance: ", width-width*0.26, height-


height*0.0277);

108. if(iDistance<40) {

109. text(" " + iDistance +" cm", width-


width*0.225, height-height*0.0277);

110. }

Page | 17
111. textSize(25);

112. fill(98,245,60);

113. translate((width-
width*0.4994)+width/2*cos(radians(30)),(height-
height*0.0907)-width/2*sin(radians(30)));

114. rotate(-radians(-60));

115. text("30°",0,0);

116. resetMatrix();

117. translate((width-
width*0.503)+width/2*cos(radians(60)),(height-
height*0.0888)-width/2*sin(radians(60)));

118. rotate(-radians(-30));

119. text("60°",0,0);

120. resetMatrix();

121. translate((width-
width*0.507)+width/2*cos(radians(90)),(height-
height*0.0833)-width/2*sin(radians(90)));

122. rotate(radians(0));

123. text("90°",0,0);

124. resetMatrix();

125. translate(width-
width*0.513+width/2*cos(radians(120)),(height-
height*0.07129)-width/2*sin(radians(120)));

126. rotate(radians(-30));

127. text("120°",0,0);

Page | 18
128. resetMatrix();

129. translate((width-
width*0.5104)+width/2*cos(radians(150)),(height-
height*0.0574)-width/2*sin(radians(150)));

130. rotate(radians(-60));

131. text("150°",0,0);

132. popMatrix();

Page | 19
Test et Calibration
Test du Mini Radar
Avant de commencer à utiliser le mini radar, il est important de le tester pour
vérifier son bon fonctionnement.
La calibration du mini radar est essentielle pour assurer des mesures précises.
Voici les étapes à suivre pour calibrer le radar :
1. Placer le mini radar dans un environnement ouvert et dégagé, loin de tout
objet qui pourrait interférer avec les mesures.
2. Alimenter le mini radar et attendre qu'il se stabilise.
3. Utiliser un objet de référence dont la distance est connue pour calibrer le
radar. Placer cet objet à une distance connue du radar.
4. Ajuster les paramètres du radar pour obtenir une mesure précise de la
distance entre le radar et l'objet de référence.

Page | 20
Conclusion
Récapitulatif du Projet
Le projet de mini radar avec Arduino a été un succès. Nous avons réussi à créer
un système fonctionnel qui peut détecter et afficher la distance des objets en
temps réel. En utilisant des capteurs ultrasoniques et un écran LCD, nous avons
pu mesurer avec précision la distance des objets dans la plage de détection du
radar. De plus, nous avons développé une interface utilisateur simple qui affiche
les informations de distance de manière claire et lisible. Ce projet démontre la
faisabilité de créer un mini radar abordable et facile à construire en utilisant des
composants électroniques courants et la plateforme Arduino.

Page | 21

Vous aimerez peut-être aussi