Laboratorio CAD di circuiti elettronici Esercitazione

Download Report

Transcript Laboratorio CAD di circuiti elettronici Esercitazione

Laboratorio CAD di circuiti elettronici
Esercitazione 7
Esercitazione 7
Robot motorizzato evita-ostacoli dotato di sensore ad ultrasuoni
Realizzare il prototipo di una “smart-car” in grado di riconoscere ed evitare in modo autonomo gli
ostacoli che incontra sul suo cammino. Per tale scopo si faccia uso del modulo ad ultrasuoni HCSR04. Le specifiche di progetto sono le seguenti:
- il sensore calcola a intervalli regolari di tempo la distanza tra esso e gli oggetti che incontra
sul suo cammino;
- il microcontrollore decide l’azione da effettuare in base alla distanza calcolata: se la distanza
è maggiore di una certa soglia prestabilita il prototipo procede avanzando nel suo cammino,
se la distanza è minore di tale soglia il prototipo sceglie in maniera intelligente il modo in cui
evitare l’ostacolo. Il modo in cui il prototipo evita l’ostacolo verrà esposto di seguito.
In particolare: Se la distanza risulta essere maggiore di una certa “Soglia1” si setta la velocità dei
motori A e B al valore “1” in modo tale che la smart car proceda avanti alla massima velocità. Se
invece la distanza è compresa tra una “Soglia1” e “Soglia2” la smart-car deve rallentare senza
fermarsi, raggiungendo in corrispondenza della Soglia2 il 60% della massima velocità raggiungibile
dai motori. Un’equazione che stabilisce la legge di variazione della velocità al diminuire della distanza
è la seguente:
𝑑𝑖𝑠𝑡−𝑆𝑜𝑔𝑙𝑖𝑎2
speedA = speedB = 1 − (𝑠𝑝𝑒𝑒𝑑_𝑠𝑜𝑔𝑙𝑖𝑎2 − (𝑠𝑝𝑒𝑒𝑑_𝑠𝑜𝑔𝑙𝑖𝑎2 ∙ 𝑆𝑜𝑔𝑙𝑖𝑎1−𝑆𝑜𝑔𝑙𝑖𝑎2) )
𝑆𝑜𝑔𝑙𝑖𝑎1
𝑠𝑝𝑒𝑒𝑑𝐴 = 𝑠𝑝𝑒𝑒𝑑𝐵 = 1
𝑆𝑜𝑔𝑙𝑖𝑎 2
𝑠𝑝𝑒𝑒𝑑𝐴 = 𝑠𝑝𝑒𝑒𝑑𝐵 = 0.6
Dunque quando la dist = {
Se ancora la distanza è minore di Soglia2 allora abbiamo la velocità del motore B (oppure A) risulta
essere sempre la stessa, mentre la velocità del motore A (oppure B) continua a diminuire fino ad
azzerarsi. In questa situazione la velocità diminuisce al diminuire della distanza con legge:
𝑑𝑖𝑠𝑡−𝑆𝑜𝑔𝑙𝑖𝑎2
speedA = ((1 − 𝑠𝑝𝑒𝑒𝑑_𝑠𝑜𝑔𝑙𝑖𝑎2 ) ∙ 𝑆𝑜𝑔𝑙𝑖𝑎1−𝑆𝑜𝑔𝑙𝑖𝑎2)
𝑆𝑜𝑔𝑙𝑖𝑎2
𝑠𝑝𝑒𝑒𝑑𝐴 = 𝑠𝑝𝑒𝑒𝑑_𝑠𝑜𝑔𝑙𝑖𝑎2
Infatti quando dist = {
𝑠𝑜𝑔𝑙𝑖𝑎_𝑐𝑟𝑖𝑡𝑖𝑐𝑎
𝑠𝑝𝑒𝑒𝑑𝐴 = 0
1
Laboratorio CAD di circuiti elettronici
Esercitazione 7
2