La piattaforma Arduino è stata realizzata interamente su breadboard seguendo le informazioni che si prossimo trovare qui: http://arduino.cc/en/Main/Standalone
Rispetto alle indicazioni del sito non ho realizzato la parte di alimentazione (stabilizzatore 7805) perché già dispongo di un alimentatore stabilizzato a 5 V.
Ho invece aggiunto il modulo di comunicazione seriale USB per la comunicazione con il computer (programmazione e scambio dati per debug). Lo schema di collegamento finale del sistema Arduino di base è il seguente:
Il condensatore da 0.1 µF tra il pin 1 del 328 e il DTS del modulo RS232 serve a fornire in modo automatico un impulso di reset quando viene caricato un nuovo sketch.
I componenti base necessari per la realizzazione di una piattaforma Arduino sono quindi i seguenti:
– microcontrollore ATMEGA 328p-PU con Arduino Uno Bootloader
– modulo RS232 USB per la connessione al computer (FT232RL USB to Serial adapter module USB TO RS232 Max232 for Arduino)
– quarzo da 16 MHz
– 1 reisstenza da 10 kΩ
– 2 condensatori da 22 pF
– pulsante normalmente
– 1 LED e 1 resistenza da 220 Ω (non strettamente indispensabile ma utile per verificare il corretto funzionamento)
I componenti aggiuntivi necessari alla realizzazione del piccolo robot sono i seguenti:
– sonar (HC-SR04 scheda sensore ultrasuoni sonar sensori di distanza arduino)
– accelerometro con giroscopio (giroscopio con accelerometro 3 assi Mpu-6050 shield arduino)
– 2 motori passo passo con relativa elettronica di pilotaggio (Motore passo passo con driver ULN2003A stepper shield arduino)
– modulo BLE (Wireless Serial Port BLE Module for Arduino, Bluetooth 4.0)
Questi componenti verranno aggiunti in modo progressivo nei post che seguiranno.
Il robot disporrà di due modi di funzionamento: telecomandato o autonomo. In modalità telecomandata seguirà i comandi che verranno inviati dall’app su iPad mediante BLE mentre in modalità autonoma si muoverà nell’ambiente cercando di evitare gli ostacoli. La selezione tra modalità telecomandata e modalità automatica avverrà sempre dall’app.
Quando il robot è in modalità automatica il sonar gli consente di valutare la distanza da un oggetto e verrà utilizzato dal robot per capire che si sta avvicinando troppo ad un ostacolo e quindi deve cambiare direzione. L’accelerometro potrà essere invece utilizzato dal robot per individuare un impatto con un ostacolo da uno dei lati non coperti dal sonar.
Il robot verrà programmato per tentare di andare sempre in avanti (verso la zona coperta dal sonar), nel caso in cui si avvicini ad un ostacolo si muoverà all’indietro sterzando a sinistra e poi andrà nuovamente avanti sterzando a destra. Nel caso di impatto con un ostacolo (ai lati o dietro) cercherà di muoversi nella direzione opposta rispetto all’ostacolo.