Tinkercad Ultrasonic ping

Tinkercad Ultrasonic ping ti permette di acquisire le informazioni sulla distanza di oggetti e pareti per i tuoi progetti di robotica e domotica.

Thinkercad Ultrasonic ping example

Il tutorial tinkercad ultrasonic ping sensor riprende la serie di semplici tutorial che ho realizzato utilizzando il tool di simulazione omonimo.

Trovi nella pagina Corso Arduino Gratuito con Tinkercad i precedenti tutorial organizzati in singole video lezioni in un percorso formativo che si sta arricchendo ogni giorno di più.

Il video del Tinkercad Ultrasonic ping

Come per i precedenti video-tutorial anche il tinkercad ultrasonic ping è in formato video:

a differenza degli altri in questo esempio ho utilizzato uno degli esperimenti proposti dal sito e leggerai nel prossimo paragrafo il commento al codice esempio in modo da poterlo manipolare ed adattare alle tue esigenze.

Il tinkercad Ultrasonic ping è pubblico, ossia ho reso l’esempio disponibile per chiunque desideri provare direttamente il mio esempio: lo trovi qui.

Il principio di funzionamento del sensore ad ultrasuoni

il principio di funzionamento con cui il sensore funziona è quello del sonar, ossia del tempo impiegato da onda ad ultrasuoni per rimbalzare su un oggetto.

Misurando il tempo impiegato potrai calcolare la distanza dell’oggetto.

Ultrasonic Ping concept diag

nota che per attivare l’echo time pulse è necessario generare lo Start Pulse.

Nello sketch leggerai come generare tale impulso di avvio sul sensore ultrasonico.

Lo sketch tinkercad ultrasonic ping

lo sketch del tinkercad ultrasonic ping lo hai già intravisto nel video.

Ti riporto lo sketch usato:

/*
  Ping))) Sensor

  This sketch reads a PING))) ultrasonic
  rangefinder and returns the distance to the
  closest object in range. To do this, it sends a
  pulse to the sensor to initiate a reading, then
  listens for a pulse to return.  The length of
  the returning pulse is proportional to the
  distance of the object from the sensor.

  The circuit:
   * +V connection of the PING))) attached to +5V
   * GND connection attached to ground
   * SIG connection attached to digital pin 7

  http://www.arduino.cc/en/Tutorial/Ping

  This example code is in the public domain.
*/

int inches = 0;

int cm = 0;

long readUltrasonicDistance(int pin)
{
  pinMode(pin, OUTPUT);  // Clear the trigger
  digitalWrite(pin, LOW);
  delayMicroseconds(2);
  // Sets the pin on HIGH state for 10 micro seconds
  digitalWrite(pin, HIGH);
  delayMicroseconds(10);
  digitalWrite(pin, LOW);
  pinMode(pin, INPUT);
  // Reads the pin, and returns the sound wave travel time in microseconds
  return pulseIn(pin, HIGH);
}

void setup()
{
  pinMode(7, INPUT);
  Serial.begin(9600);

}

void loop()
{
  // measure the ping time in cm
  cm = 0.01723 * readUltrasonicDistance(7);
  // convert to inches by dividing by 2.54
  inches = (cm / 2.54);
  Serial.print(inches);
  Serial.print("in, ");
  Serial.print(cm);
  Serial.println("cm");
  delay(100); // Wait for 100 millisecond(s)
}

le prime linee rappresentano il commento allo sketch in cui l’autore descrive il funzionamento generale dello stesso ed aggiunge come deve essere collegato il sensore ad Arduino;

linee 22-24: definisci due variabili di tipo intero in cui memorizzerai la distanza dell’oggetto in inch ( pollici ) e la distanza dell’oggetto in centimetri;

linea 27: definisci la funzione readUltrasonicDistance() a cui passi il pin di connessione del sensore;

linea 28: imposta la modalità OUTPUT per il pin a cui è connesso il sensore;

linee 28-34: invii una sequenza di inizializzazione, start pulse come l’hai letta nel paragrafo precedente,  in cui porti il pin a LOW per 3 microsecondi e poi HIGH per 10 microsecondi, quindi porti nuovamente il pin a LOW;

linea 35: metti il pin in modalità INPUT;

linea 37: restituisce il valore, in microsecondi, degli impulsi HIGH letti sul pin, puoi trovare qui la descrizione del comando;

linee 42-43: imposta in INPUT il pin 7 e attiva il monitor seriale a 9600 baud;

linea 50: moltiplica il valore letto sul pin 7, mediante la funzione readUltrasonicDistance(), per la costante 0.01723;

linea 52: dividi il valore in cm per 2.54 ( pollice ) ed assegna tale valore alla variabile inches.

linee 53-56: scrivi sul monitor Seriale i valori in cm e pollici rilevati dal sensore;

linea 57: attendi ad ogni ciclo di loop() 100 millisecondi prima di eseguire una nuova rilevazione.

  • Questo sito ed i suoi contenuti è fornito "così com'è" e Mauro Alfieri non rilascia alcuna dichiarazione o garanzia di alcun tipo, esplicita o implicita, riguardo alla completezza, accuratezza, affidabilità, idoneità o disponibilità del sito o delle informazioni, prodotti, servizi o grafiche correlate contenute sul sito per qualsiasi scopo.
  • Ti chiedo di leggere e rispettare il regolamento del sito prima di utilizzarlo
  • Ti chiedo di leggere i Termini e Condizioni d'uso del sito prima di utilizzarlo
  • In qualità di Affiliato Amazon io ricevo un guadagno dagli acquisti idonei qualora siano presenti link al suddetto sito.

Permalink link a questo articolo: https://www.mauroalfieri.it/robotica-domotica/thinkercad-ultrasonic-ping.html

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.