Search Code

Lis 74: Kosalela Module ya Sensor ya Infrared ya Makasi na Arduino

Lis 74: Kosalela Module ya Sensor ya Infrared ya Makasi na Arduino

Libosolo

Búku oyo ezali kolakisa ndenge ya kosalela ba senseur ya mosika ya infrarouge (IR) ya Sharp mibale to koleka na Arduino mpo na komeka mosika mpe kolakisa bafandimi na Serial Monitor. Atako senseur moko ezali na ntina, mingi ya ba applications ya mokili ya solo, lokola motuka ya mayele, loboko ya robot, to masini nyonso oyo ezali kotambola, esengaka komeka mosika uta na ba directions ebele na mbala moko. Na ndakisa, okoki kotia senseur moko na liboso mpo na komeka mosika liboso, mpe mosusu na ngambo ya droite to gauche mpo na kokima ba collisions. Tutoriel oyo elakisi yo ndenge ya kobongisa Arduino na yo mpo na kosalela ba senseur ebele na efficacité, kolanda vidéo ya ntina oyo ezali kolimbola ba spécifications mpe fonctionnement ya senseur moko na moko.

Tala awa ba idées ya ba projets pratiques mpo na kopesa yo inspiration:

  • Kotonga robot oyo ekimaka ba obstacles na komeka mosika na ngambo ya gauche, droite, mpe liboso.
  • Kokela assistant ya parking ya mayele oyo esalelaka ba senseur ebele mpo na kokamba motuka na esika ya moke.
  • Kokela système ya sécurité oyo ezali kokamba porte to corridor na ba senseur oyo batiami na ba angles ndenge na ndenge.
  • Kosala installation ya art interactive epai mosika ya loboko ya moto oyo azali kotala ebongwanaka na oyo ezali kolakisa.
Sharpt IR distance sensor

Na vidéo oyo, likambo ya ntina ezali na wiring mpe code oyo esengeli mpo na kotambwisa ba senseur ya Sharp IR ebele. Démonstration esalelaka ba senseur mibale ya GP2Y0A21YK0F, oyo emekaka mosika uta na 10 kino 80 cm. Code ebongisami mpo na kokola pete, mpo okoki kobakisa senseur ya misato, ya minei, to mingi lisusu na ba lignes ya code moke.

Hardware mpe Ba Composants

Mpo na kolanda projet oyo, okosengela ba composants oyo:

  • Bokiti ya Arduino (na ndakisa, Uno, Mega).
  • Ba senseur ya mosika ya Sharp IR mibale to koleka (na ndakisa, GP2Y0A21YK0F).
  • Ba fils ya jumper.
  • Breadboard (oyo ezali na ntina te, mpo na ba connexions pete).

Guide ya Wiring

Senseur ya Sharp IR ezali na ba fils misato: motane (puissance), moindo (terre), mpe ya jaune (sortie ya signal). Wiring ezali pete. Mpo na senseur ya liboso, kanga fil na yango ya motane na pin ya 5V ya Arduino, fil ya moindo na pin ya terre (GND), mpe fil ya signal ya jaune na pin ya analogique, na ndakisa, A1. Mpo na senseur ya mibale, kanga fil na yango ya motane na pin ya 5V yango moko to mosusu, fil ya moindo na GND, mpe fil ya jaune na pin ya analogique mosusu, lokola A2.

Soki ba pin ya 5V esili, vidéo epesaka solution ya mayele. Okoki kosalela pin nyonso ya digitale lokola source ya puissance. Na code, pin ya digitale 2 ebongisami lokola sortie mpe etiami na HIGH, oyo epesaka 5V ya libela. Na yango okanga ba fils ya motane ya ba senseur na yo na pin ya digitale oyo esika na pin ya 5V oyo ebongisami. Ba fils ya terre ekoki kokangama na ba pin nyonso ya GND na Arduino. Vidéo elakisi démonstration ya mise en place oyo na [00:06:10].

Mpo na référence ya visual ya ba connexions, tala diagramme ya wiring oyo ezali na nse:

Arduino wiring for multiple Sharp IR distance sensors
Arduino wiring for multiple Sharp IR distance sensors
Arduino wiring for Sharf IR distance sensor
Arduino wiring for Sharf IR distance sensor
Arduino wiring for Sharp IR sensor with LCD1602
Arduino wiring for Sharp IR sensor with LCD1602

Explication ya Code

Section oyo elukisi ba parties ya code oyo utilisateur akoki kobongola, oyo nyonso ezali na likolo ya sketch. Mpo na yango okokende kopesa ba pin na yo mpe ba modèles ya senseur.

Liboso, code ezali kosangisa bibliothèque ya ntina mpo na ba senseur ya Sharp IR, #include <SharpIR.h>. Bibliothèque oyo esalaka mathématique ya ntina mpo na kobongola voltage ya analogique uta na senseur na komekama ya mosika.

Na sima, okopesa ba pin ya analogique mpo na senseur na yo moko na moko. Code ya ndakisa esalelaka #define IR1 A1 mpe #define IR2 A2. Soki ozali kosalela ba senseur koleka mibale, okobakisa ba définitions mosusu awa, lokola #define IR3 A3.

Partie ya ntina mingi ya configuration ezali kotia modèle ya solo mpo na senseur na yo. Code esalelaka #define model1 1080 mpe #define model2 1080. Nombre oyo ezali te na libanda; elobaka na bibliothèque senseur nini ozali na yango, mpo ete modèle na modèle ezali na courbe ya voltage-to-distance ndenge na ndenge. Ba commentaires ya code epesaka liste ya lisalisi:

  • 2 kino 15 cm GP2Y0A51SK0F salelaka 215
  • 4 kino 30 cm GP2Y0A41SK0F / série GP2Y0AF30 salelaka 430
  • 10 kino 80 cm GP2Y0A21YK0F salelaka 1080
  • 10 kino 150 cm GP2Y0A60SZLF salelaka 10150
  • 20 kino 150 cm GP2Y0A02YK0F salelaka 20150
  • 100 kino 550 cm GP2Y0A710K0F salelaka 100550

Esengeli yo kobongola valeur oyo mpo na kokokana na senseur na yo ya solo. Na ndakisa, soki ozalaki kosalela GP2Y0A02YK0F, okobongola définition na #define model1 20150. Code na sima esalaka objet moko mpo na senseur na yo moko na moko, lokola SharpIR SharpIR1(IR1, model1);. Ligne oyo ekangisaka pin mpe modèle mpo na senseur ya liboso. Soki obakisi ba senseur mosusu, okokopa ligne oyo mpe okobongola nkombo ya objet, pin, mpe modèle.

Na fonction setup(), Serial Monitor ebandisami na 9600 baud. Oyo ezali vitesse oyo Arduino asololaka na ordinateur na yo. Code ezali mpe na section mpo na kosalela pin ya digitale lokola source ya 5V soki esengeli, lokola elobamaki na section ya wiring. Oyo esalemaka na pinMode(2,OUTPUT); mpe digitalWrite(2, HIGH);.

Na suka, fonction loop() ezali na logique ya liboso. Ezali na delay(500); na ebandeli, oyo etiyaka ntango kati na ba lectures moko na moko na 500 millisecondes. Okoki kobongola oyo mpo na kosala ba lectures mingi to moke. Ntina ya loop ezali epai okengelaka mosika uta na senseur na yo moko na moko na fonction distance() ya bibliothèque, lokola int dis1=SharpIR1.distance();. Bafandimi na sima ekomamaka na Serial Monitor na maloba ya kolimbola, lokola Serial.print("Distance (1): ");, elandi na valeur mpe unité "cm".

Démonstration ya Projet ya Bomoi

Na vidéo, motɛ́li azali kolakisa ndenge ya kosala na ba senseur mibale. Ndenge okoki komona na ndakisa na [00:07:44], Serial Monitor ezali kolakisa ba distance oyo esengeli na ba senseur mibale. Soki eloko moko etyami liboso ya senseur ya liboso, motángo ya "Distance (1)" ekobongwana. Ndenge moko mpe, soki eloko moko etyami liboso ya senseur ya mibale, motángo ya "Distance (2)" ekobongwana. Vidéo ezali kolakisa ete, soki obombi papelo moko na mosika, ba senseur ezali kotánga pene na 23 mpe 24 cm. Soki senseur moko ezipami, motángo na yango ekokita na pene na 17 cm, oyo ezali kondimisa ete senseur nyonso ezali kosala na ndenge na yango moko mpe ezali kopesa ba données ya distance na ntango ya solo mpo na direction na yango. Oyo ezali kondimisa ete code ekoki kosala na ba senseur ebele na mbala moko.

Bikabu

  • [00:00] Liboso ya Kosalela Ba Senseur ya Sharp IR Ebele
  • [00:28] Kosalela mpo na Ba Senseur ya Distance Ebele
  • [01:34] Ndimbola ya Code: Bibliothèque mpe Ndimbola ya Ba Pin
  • [02:24] Kobongisa Ba Modèle ya Senseur mpe Kosala Ba Objets
  • [04:15] Ndimbola ya Fonctions ya Setup mpe Loop
  • [06:10] Mokambi ya Kokangisa Ba Senseur Ebele
  • [07:44] Ndakisa ya Bomoi na Ba Senseur Mibale

Images

Sharpt IR distance sensor GP2Y0A21YK0F
Sharpt IR distance sensor GP2Y0A21YK0F
Arduino wiring for multiple Sharp IR distance sensors
Arduino wiring for multiple Sharp IR distance sensors
Arduino wiring for Sharf IR distance sensor
Arduino wiring for Sharf IR distance sensor
Sharpt IR distance sensor
Sharpt IR distance sensor GP2Y0A21YK0F
Arduino wiring for Sharp IR sensor with LCD1602
Arduino wiring for Sharp IR sensor with LCD1602
176-Using a Sharp IR sensor module with Arduino
Langue: C++
++
/*
 * Using two or more Sharp IR distance sensors with Arduino
 * Measure distance 

 * Download and resource page for this video https://robojax.com/RJT143
 * Watch video instructions for this video: https://youtu.be/WQ3oFyF5qeY
 * 
 * Watch main video explaining the Sharp IR distance sensor:
 * https://robojax.com?vid=robojax-sharp_IR
 * 
 * Written by Ahmad Shamshiri for Robojax.com on Saturday, December 1, 2018 
 * at 20:56 in Ajax, Ontario, Canada

 * 
  * This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.
 * This code has been downloaded from Robojax.com
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <https://www.gnu.org/licenses/>.
 */

#include <SharpIR.h>

#define IR1 A1 // define signal pin
#define IR2 A2 // define signal pin

#define model1 1080 // for GP2Y0A21YK0F  used 1080
#define model2 1080 // for GP2Y0A21YK0F  used 1080

// Sharp IR code for Robojax.com
// ir: the pin where your sensor is attached
/*
2 to 15 cm GP2Y0A51SK0F  use 215
4 to 30 cm GP2Y0A41SK0F / GP2Y0AF30 series  use 430
10 to 80 cm GP2Y0A21YK0F  use 1080
10 to 150 cm GP2Y0A60SZLF use 10150
20 to 150 cm GP2Y0A02YK0F use 20150
100 to 550 cm GP2Y0A710K0F  use 100550
*/
SharpIR SharpIR1(IR1, model1);
SharpIR SharpIR2(IR2, model2);

void setup() {
    // Multiple Sharp IR Distance meter code for Robojax.com
 Serial.begin(9600);
 Serial.println("Robojax Sharp IR  ");

 // extra pin for 5V if needed
 pinMode(2,OUTPUT);// define pin 2 as output
 digitalWrite(2, HIGH);// set pin 2 HIGH so it always have 5V
  // Robojax.com 20181201
}

void loop() {
    // Sharp IR code for Robojax.com 20181201
    delay(500);   

  unsigned long startTime=millis();  // takes the time before the loop on the library begins

  int dis1=SharpIR1.distance();  // this returns the distance for sensor 1
  int dis2=SharpIR2.distance();  // this returns the distance for sensor 2
  // Sharp IR code for Robojax.com 20181201

  Serial.print("Distance (1): ");
  Serial.print(dis1);
  Serial.println("cm");
  
  Serial.print("Distance (2): ");
  Serial.print(dis2);
  Serial.println("cm");
     // Sharp IR code for Robojax.com
     
}
452-Lesson 74: Using Two Sharp Infrared Sensors with Arduino
Langue: C++
++
/*
  * Lesson 74: Using two or more Sharp IR distance sensors
 * Sharp IR (infrared) distance measurement module for Arduino
 * Measures the distance in cm. 
 * Written by Ahmad Shamshiri for Robojax.com 
 * on February 25, 2019 at 21:38 in Ajax, Ontario, Canada




 * Original library: https://github.com/guillaume-rico/SharpIR
 
 * Watch video instructions for this code: https://youtu.be/WQ3oFyF5qeY
 * 
 * Full explanation of this code and wiring diagram is available at
 * my Arduino Course at Udemy.com here: http://robojax.com/L/?id=62

 * Written by Ahmad Shamshiri on February 3, 2018 at 07:34
 * in Ajax, Ontario, Canada. www.robojax.com
 * 


If you found this tutorial helpful, please support me so I can continue creating 
content like this. 

or make a donation using PayPal http://robojax.com/L/?id=64



 *  * This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.* 
 * This code has been downloaded from Robojax.com
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <https://www.gnu.org/licenses/>.

*/




 */
  // Sharp IR code for Robojax.com
#include 

#define IR A0 // define signal pin
#define model 1080 // used 1080 because model GP2Y0A21YK0F is used
// Sharp IR code for Robojax.com
// ir: the pin where your sensor is attached
// model: an int that determines your sensor:  1080 for GP2Y0A21Y
//                                            20150 for GP2Y0A02Y
//                                            430 for GP2Y0A41SK   
/*
2 to 15 cm GP2Y0A51SK0F	use 1080
4 to 30 cm GP2Y0A41SK0F / GP2Y0AF30 series	use 430
10 to 80 cm GP2Y0A21YK0F	use 1080
10 to 150 cm GP2Y0A60SZLF	use 10150
20 to 150 cm GP2Y0A02YK0F	use 20150
100 to 550 cm GP2Y0A710K0F	use 100550

*/
#include <SharpIR.h>

#define IR1 A1 // define signal pin
#define IR2 A2 // define signal pin

#define model1 1080 // for GP2Y0A21YK0F  used 1080
#define model2 1080 // for GP2Y0A21YK0F  used 1080

// Sharp IR code for Robojax.com
// ir: the pin where your sensor is attached
/*
2 to 15 cm GP2Y0A51SK0F  use 215
4 to 30 cm GP2Y0A41SK0F / GP2Y0AF30 series  use 430
10 to 80 cm GP2Y0A21YK0F  use 1080
10 to 150 cm GP2Y0A60SZLF use 10150
20 to 150 cm GP2Y0A02YK0F use 20150
100 to 550 cm GP2Y0A710K0F  use 100550
*/
SharpIR SharpIR1(IR1, model1);
SharpIR SharpIR2(IR2, model2);

void setup() {
    // Multiple Sharp IR Distance meter code for Robojax.com
 Serial.begin(9600);
 Serial.println("Robojax Sharp IR  ");

 // extra pin for 5V if needed
 pinMode(2,OUTPUT);// define pin 2 as output
 digitalWrite(2, HIGH);// set pin 2 HIGH so it always have 5V
  // Robojax.com 20181201
}

void loop() {
    // Sharp IR code for Robojax.com 20181201
    delay(500);   

  unsigned long startTime=millis();  // takes the time before the loop on the library begins

  int dis1=SharpIR1.distance();  // this returns the distance for sensor 1
  int dis2=SharpIR2.distance();  // this returns the distance for sensor 2
  // Sharp IR code for Robojax.com 20181201

  Serial.print("Distance (1): ");
  Serial.print(dis1);
  Serial.println("cm");
  
  Serial.print("Distance (2): ");
  Serial.print(dis2);
  Serial.println("cm");
     // Sharp IR code for Robojax.com
     
}

Fichiers📁

Fritzing File

Mabala a mangwe