L’idea mi è nata perche per sperimentare con arduino non avevo abbastanza spazio per inserire i vari componenti.
Questo è il progetto finale:
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
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>
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