Nota

Ciao, benvenuto nella SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts Community su Facebook! Approfondisci le tue conoscenze su Raspberry Pi, Arduino ed ESP32 insieme ad altri appassionati.

Perché unirti a noi?

  • Supporto esperto: Risolvi i problemi post-vendita e le sfide tecniche con l’aiuto della nostra comunità e del nostro team.

  • Impara e condividi: Scambia suggerimenti e tutorial per migliorare le tue competenze.

  • Anteprime esclusive: Ottieni accesso anticipato agli annunci di nuovi prodotti e anteprime speciali.

  • Sconti esclusivi: Approfitta di sconti riservati sui nostri prodotti più recenti.

  • Promozioni festive e concorsi: Partecipa a concorsi e promozioni durante le festività.

👉 Sei pronto a esplorare e creare con noi? Clicca su [Qui] e unisciti oggi stesso!

2.2.5 Sensore di Evitamento Ostacoli IR

Introduzione

In questo progetto, impareremo a conoscere il modulo sensore a infrarossi per l’evitamento degli ostacoli, un modulo sensore che può essere utilizzato per rilevare ostacoli a breve distanza, con poca interferenza, facile da assemblare e da usare, ecc. Può essere ampiamente utilizzato per evitare ostacoli nei robot, nei carrelli di evitamento ostacoli, nel conteggio delle linee di montaggio, ecc.

../_images/2.2.5IR_Obstacle1.png

Componenti Necessari

In questo progetto, abbiamo bisogno dei seguenti componenti.

../_images/2.2.5component.png

È sicuramente comodo acquistare un kit completo, ecco il link:

Nome

ARTICOLI IN QUESTO KIT

LINK

Kit Raphael

337

Raphael Kit

Puoi anche acquistarli separatamente dai link qui sotto.

INTRODUZIONE AI COMPONENTI

LINK PER L’ACQUISTO

Scheda di estensione GPIO

ACQUISTA

Breadboard

ACQUISTA

Cavi Jumper

ACQUISTA

Modulo di evitamento ostacoli

ACQUISTA

Schema Elettrico

../_images/IR_schematic.png

Procedure Sperimentali

Passo 1: Costruisci il circuito

../_images/2.2.5fritzing.png

Passo 2: Cambia directory.

cd ~/raphael-kit/python

Passo 3: Esegui.

sudo python3 2.2.5_IrObstacle.py

Dopo che il codice è stato eseguito, quando metti la mano davanti alla sonda del modulo, l’indicatore di uscita sul modulo si accenderà e «Detected Barrier!» verrà ripetutamente stampato sullo schermo fino a quando la mano non verrà rimossa.

Codice

Nota

Puoi Modificare/Reimpostare/Copiare/Eseguire/Interrompere il codice qui sotto. Ma prima devi accedere al percorso del codice come raphael-kit/python. Dopo aver modificato il codice, puoi eseguirlo direttamente per vedere l’effetto.

#!/usr/bin/env python3
import RPi.GPIO as GPIO
import time

ObstaclePin = 17

def setup():
   GPIO.setmode(GPIO.BCM)       # Numerazione GPIO secondo la posizione fisica
   GPIO.setup(ObstaclePin, GPIO.IN, pull_up_down=GPIO.PUD_UP)

def loop():
   while True:
      if (0 == GPIO.input(ObstaclePin)):
         print ("Detected Barrier!")
         time.sleep(1)


def destroy():
   GPIO.cleanup()                     # Rilascia le risorse

if __name__ == '__main__':     # Il programma parte da qui
   setup()
   try:
      loop()
   except KeyboardInterrupt:  # Quando viene premuto 'Ctrl+C', il programma distrugge() sarà eseguito.
      destroy()

Spiegazione del Codice

def setup():
GPIO.setmode(GPIO.BCM)       # Numerazione GPIO secondo la posizione fisica
GPIO.setup(ObstaclePin, GPIO.IN, pull_up_down=GPIO.PUD_UP)

Imposta la modalità GPIO su numerazione BCM. Imposta ObstaclePin in modalità input e inizializzalo a livello alto (3,3v).

def loop():
   while True:
      if (0 == GPIO.input(ObstaclePin)):
         print ("Detected Barrier!")

Quando ObstaclePin è a livello basso, stampa «Detected Barrier!». Significa che è stato rilevato un ostacolo.

Immagine del Fenomeno

../_images/2.2.5IR.JPG