Macchina arduino con scatola vecchio decoder

A volte è possibile riciclare cose impensabili coma la vecchia scatola di un decoder TV.
L’idea mi è nata perche per sperimentare con arduino non avevo abbastanza spazio per inserire i vari componenti.
Questo è il progetto finale:Macchina arduino sensore pir

Questo è lo schema

Primo passo 12 volt stabilizzate

Il primo passo è l’alimentazione le normali batterie stilo non hanno abbastanza potenza ho optato per una batteria del trapano
molto potenti ma con un voltaggio superiore a questo. Ho aggiunto uno stabilizzatore per auto a 12 volt.Questi 12 volt vanno a finire in driver per mmotori L298N da questo driver tiro fuori i 5 volt per alimentare i vari sensori questo perchè arduino non potrebbe avere la corrente necessaria che in totale non supera i 500 mA


Bussola

In verità si dovrebbero fare un po di calcoli di corrente per preservare arduino e i suoi componenti tenedo presente che ogni pin di arduino non dovrebbe erogare più di 40 mA,e che in Vin non dovrebbero entrare più di 500 mA.Il tutto si risolve mettendo delle resistenze i cui valori sono dati dalla legge di OHM.

codice

Questo è il codice trovato in rete e da me modificato

codice

Nell’esempio non compare il modulo wireless perchè mi si è rotto e quindi ho dovuto riadattare il codice

Funzionamento

Ho pensato che potesse essere divertente farla funzionare in questo modo:Quando qualcuno si avvicina da dietro il sensore infrarosso lo rileva e fa scappare la macchina,il sonar davanti calcola la distanza se la distanza è inferiore a 20 cm ha due opzioni se nessuno lo insegue si ferma se qualcuno lo insegue gira

Questo è il codice senza teleomando di macchina che scappa via

Buon Divertimento!!

Con telecomando

Nel progetto esposto non c’è bisogno del telecomando ,ma se si vuole telecomandare la macchina questo è il codice:

Telecomando

Il telecomando è molto semplice basta un joistick di arduino collegato sulla porta A0 e A1 che gli permette di andare avanti e indietro destra e sinistra.e un modul nrf24l01 da collegare ai soliti pin come lo schema sopra.e ovviamente questo è il progetto completo :
progetto con telecomando

joistick arduino
joistick arduino

La macchina non va dritta

Se si è fortunati la macchina va dritta ,ma può capitare che i due motorini vadano a velocità diverse.Una prima soluzione sarebbe quella di capire empiricamente qual’è il motorino più veloce per dargli meno potenza.

Una seconda soluzione è un pò più sofisticata perchè bisogna calcolare il pid per ogni motorino e usarlo poi nel codice.
Fortunatamente l’ ingegnere Paolo Aliverti tra centinaia di video ha fatto uno anche su questo :video youtube Paolo Aliverti n° 712

Si parte mettendo al banco la macchina con kp =1 e si aumenta per decimale fino a che l’errore non raggiunge il setpoint e lo supera
si fissa allora kp e si incrementa sempre di decimali ki partendo stavolta da zero,fino a chè ki non oscilla intorno al setpoint
quindi a volte maggiore e a volte minore del setpoint a questo punto si fissa ki e si procede ad aumentare kd,sempre di decimali
partendo da zero fino a chè l’errore dal setpoint è veramente minimo
si può usare questa libreria come suggerito da Paolo Aliverti nel Video Youtube n°712
una volta calcolati i coefficienti la velocità reale del motore sarà data da

Questo è una bozza del codice che ancora devo sviluppare per automatizzare la ricerca senza introdurre i valori a mano

l’immagine gif spiega più di tante parole per come procedere

Questa è una buona base di partenza per poi applicare il pid