Abbiamo visto nel precedente articolo LittleBOT – Progetto per un robot cingolato le caratteristiche del robot ed abbiamo detto che il controllo era demandato ai componenti montati sulla scheda di controllo.
In questo articolo faremo l’ analisi della scheda di controllo del robot con la descrizione di tutti i suoi componenti.
Il PCB è stato progettato con il programma online EasyEDA, mentre stata realizzata tramite il servizio offerto dal sito JLCPCB.
![]() |
![]() |
Sito online per creazioni schemi e PCB | Sito produzione PCB |
La scheda di controllo del robot LittleBOT ha le dimensioni di 86 x 58 mm, Quella montata è l’evoluzione della prima versione realizzata con metodologia tradizionale, mentre quella attuale è stata realizzata con metodo industriale con circuito a doppia faccia fori metallizzati e serigrafia.

Prima versione della scheda di controllo
Dallo schema elettrico si evince che questa è stata suddivisa nelle seguenti sezioni:
-
Alimentazione con modulo elevatore di tensione DC-DC
-
Controller con Arduino Nano
-
Controllo motori con Motor Driver 1A Dual TB6612FNG
-
Sensore di luce con fotocellula
-
Sensore di distanza con IR GP2D120
-
Connettore servo tipo Hitec HS81
-
Sensore di temperatura con LM35
-
Bluetooth con HC-05
Indice
Schema elettrico
L’analisi della scheda controllo robot LittleBOT inizia esaminando lo schema totale della scheda di controllo. Sotto sono poi riportati i singoli schemi delle singole sezioni.
Schema della scheda in formato PDF
Lo schema e il relativo PCB sono stati realizzati con il programma EasyEDA: un servizio per il disegno di circuiti e la loro simulazione, progettazione e produzione di PCB. Provatelo è gratuito!
Sezione di alimentazione
L’alimentazione del robot è fornita da una batteria ricaricabile collegata a un connettore X2; la scelta è caduta su un accumulatore agli ioni di litio (a volte abbreviato in Li-Ion).
Il modello utilizzato è una batteria Li-Ion con una tensione di 3,7 e una corrente di 1840 mA/h prodotta dalla ENIX Energies.
Si potrà comunque, utilizzare qualunque altra batteria con caratteristiche analoghe sia per tensioni/correnti sia per dimensioni, per fare in modo che possa essere posizionata sotto la scheda di controllo. Per esempio un’altra valida alternativa è la Polymer Lithium Ion Battery – 2000 mAh prodotta dalla SparkFun.
Tornando allo schema, vediamo che, dopo l’interruttore di accensione, abbiamo un primo stacco denominato VBATT, in cui è presente un partitore formato da R1-R2 che viene collegato alla porta analogica A1 , per monitorare lo stato di carica della batteria.
Il valore della tensione potrà essere monitorato e si potrà sapere in anticipo quando la batteria andrà ricaricata.
Convertitore DC/DC
Dato che la tensione di 3,7 V non è sufficiente per alimentare l’elettronica e i motori del robot, viene utilizzato un mini convertitore DC/DC siglato nello schema come U3: il modulo è prodotto dalla Pololu.
Ha dimensioni particolarmente ridotte (10,7 x 22,4 x 5,8 mm) ed è in grado di convertire una tensione continua compresa tra 1,5 e 16 volt in una tensione di uscita da 2,5 a 9,5 volt (regolabile tramite trimmer). La massima corrente disponibile è di circa 800 mA.
La scheda si basa su un integrato SC4501 prodotto dalla Semtech: un regolatore switching di tipo step-up current-mode ad alta frequenza di commutazione con un transistor di potenza integrato da 2A.
La sua frequenza di commutazione elevata (programmabile fino a 2 MHz), consente l’utilizzo di piccoli componenti passivi esterni a montaggio superficiale. Dispone di un Soft-start programmabile che elimina l’alta corrente di spunto in fase di avviamento.
La tensione d’uscita può essere regolata tramite un trimmer, in questo caso sarà regolato per un valore di circa 7V. Sulla scheda il modulo è montato in orizzontale utilizzando il connettore X8.
Sezione Processore
La mente di tutto il robot è rappresentata da un Arduino Nano basata su Atmega 328.
Ha circa le stesse funzionalità della Arduino UNO. Non ha una presa di corrente continua e funziona con un cavo Mini-B USB al posto di uno standard.
Specifiche tecniche:
Microcontroller | ATmega328 |
Tensione di funzionamento | 5V |
Tensione in ingresso | 7-12 V (consigliata) |
Tensione in ingresso | 6-20 V (limiti) |
I / O digitali | 14 (di cui 6 con output PWM) |
Ingressi analogici | 6 |
Corrente continua per I / O Pin | 40 mA |
Di corrente per Pin 3,3 V CC | 50 mA |
Flash Memory | 32 KB di cui 0,5 KB utilizzati dal bootloader |
SRAM | 2 KB |
EEPROM | 1 KB |
Velocità di clock | 16 MHz |
Caratteristiche:
- Ripristino automatico durante il download del programma
- Led presenza tensione blu
- Verde (TX), rosso (RX) e arancione (L) LED
- Ingresso alimentazione rilevamento automatico / commutazione
- Piccola mini-B USB per la programmazione e il monitor seriale
- ICSP per la programmazione diretta
- Spaziatura dei pin 2.54 tipo DIP
- Pulsante di reset
L’alimentazione, oltre che tramite la connessione Mini-B USB, è fornita tramite il pin 30 in quanto sulla scheda è presente un regolatore UA 78M05, che fornisce in uscita i 5V sul pin 27.
La fonte di alimentazione è selezionata automaticamente.
Sulla scheda di controllo, la tensione di alimentazione è derivata dal convertitore DC/DC e la tensione in uscita dal pin 27 viene poi utilizzata per alimentare l’elettronica dei sensori e del modulo motore.
Alle porte I/O digitali e a quelle A/D di Arduino sono connessi i vari sensori e il modulo motore secondo questa tabella.
Pin | Funzione |
---|---|
Pin Digitale 0 | RX da modulo Bluetooth |
Pin Digitale 1 | TX da modulo Bluetooth |
Pin Digitale 2 | Buzzer |
Pin Digitale 3 | Velocità motore A PWMA |
Pin Digitale 4 | Comando motore A AIN2 |
Pin Digitale 5 | Comando motore A AIN1 |
Pin Digitale 6 | Standby motori STBY |
Pin Digitale 7 | Comando motore B BIN1 |
Pin Digitale 8 | Comando motore B BIN2 |
Pin Digitale 9 | Velocità motore A PWMB |
Pin Digitale 11 | Comando Servo |
Pin Digitale 12 | Faro |
Pin Digitale 13 | Led su Arduino Nano |
Pin Analogico A0 | Misurazione foto resistenza |
Pin Analogico A | Misurazione tensione batteria |
Pin Analogico A2 | Misurazione temperatura |
Pin Analogico A7 | Misurazione distanza |
Per la programmazione del modulo, sarà utilizzata la Mini-B USB. La presenza della tensione di alimentazione sarà segnalata dall’accensione del led POW , mentre il traffico tramite la linea seriale, sarà monitorata tramite i led TX e RX presenti sulla scheda Arduino Nano.
Modulo controllo motore
Per pilotare i due moto-riduttori è stato utilizzato un modulo in cui è utilizzato un integrato TB6612FNG che è in grado di pilotare due motori a corrente continua con una corrente costante di 1.2 A (3.2 A di picco) interfacciandosi con un micro microcontrollore.
L’integrato è un H-bridge di tipo MOSFET molto più efficiente rispetto a un ponte H-bridge basato su BJT, il che consente di avere più corrente per alimentare i motori e meno da trarre dalla rete logica.
L’integrato è montato su una piccola breakout board che misura solamente 20.3 x 20,3 mm prodotta dalla SparkFun (Motor Driver 1A dual TB6612FNG) il che permette l’accesso diretto a tutte le caratteristiche del TB6612FNG, sono inoltre presenti i condensatori di alimentazione e i condensatori di disaccoppiamento su entrambe le linee di alimentazione.
Ognuno dei due canali motore ha due pin di controllo direzione e un pin di controllo della velocità che accetta un ingresso PWM con una frequenza fino a 100 kHz. Il pin STBY deve essere posto a livello alto per porre il driver in modalità standby.
Due segnali di ingresso (IN1 e IN2) possono essere utilizzati per comandare il motore in una delle quattro modalità di funzionamento – rotazione oraria CW, rotazione antioraria CCW, a freno rapido e stop.
La tensione di alimentazione della logica (VCC) può essere nel range di 2.7-5.5VDC; nella nostra scheda è derivata da quella fornita da Arduino Nano, mentre l’alimentazione del motore (VM) è limitata a una tensione massima di 15VDC, nel nostro caso +7V fornita dal modulo DC/DC.
Caratteristiche del modulo utilizzato
- Tensione di alimentazione: 15 V max = VM, VCC = 2.7-5.5V
- Corrente di uscita: Ia = 1,2 A (medio) / 3.2A (picco)
- Controllo standby per risparmiare energia
- CW / CCW / short freno / stop modalità di controllo motore
- Built-in circuito di shutdown termico e circuito a bassa tensione rilevazione
- Spaziatura dei pin 2,5 mm
- Condensatori di filtraggio su entrambe le linee di alimentazione
- Dimensioni: 20.3×20,3mm
Per il pilotaggio sono utilizzate 7 linee digitali connesse al processore.
Il senso di rotazione è evidenziato da una coppia di led Bicolore tipo L-57EGW, ognuno con la propria resistenza di limitazione.
Il modulo andrà collegato sulle pin strip X3A e X3B, mentre i motori andranno collegati al connettore X7.
Per quanto riguarda i moto-riduttori, per ridurre lo scintillio dovuto allo sfregamento delle spazzole sul collettore, che può causare interferenze con la circuiteria elettronica, sono stati dotati di un condensatore da 100 nF tra positivo e negativo dell’alimentazione .
Sezione Buzzer
Sulla scheda di controllo è presente un buzzer per l’emissione di segnali acustici. Il Buzzer ( in italiano cicalino), è un dispositivo audio di segnalazione, che può essere di tipo meccanico, elettromeccanico o piezoelettrico.
Gli usi tipici dei cicalini sono nei cerca persone, gli allarmi, timer e la conferma di input dell’utente, come un clic del mouse o della tastiera.
Il cuore dei segnalatori acustici piezoelettrici è un semplice disco piezoelettrico, consistente di una lastra ceramica e di uno strato metallico applicato.
Quando il disco viene pilotato da un circuito oscillatorio, si parla di un trasduttore piezoelettrico, quando il circuito oscillatorio è incorporato nella cassa si parla di un buzzer piezoelettrico.
Quello utilizzato nel progetto è del tipo piezoelettrico denominato PK-12N40PAQ e presenta le seguenti caratteristiche:
- Tensione di alimentazione (v) 3÷15
- Consumo di corrente (mA) 10 max
- Livello di pressione sonora a 10cm 83dB
- Frequenza di oscillazione: 4100 Hz
- Temperatura operativa.(°C) -20~ + 90
- Peso 0,8 g
Per non sovraccaricare la porta del processori, il buzzer è pilotato tramite un transistor NPN tipo BC 337, la cui base è alimentata tramite una resistenza di limitazione R6 da 4,7 kΏ; sulla linea di alimentazione del buzzer è inoltre presente un’ulteriore resistenza di limitazione R7 da 10 Ώ.
Sezione faro di illuminazione
Il modulo luci è formato da un circuito stampato a singola faccia in cui sono presenti 2 led bianchi luce ad alta intensità, mentre sul lato rame sono saldate 2 resistenze SMT per la limitazione della corrente.
![]() |
![]() |
Lato rame | Lato LED |
Caratteristiche:
- Tipo led: Led bianco ad altissima luminosità.
- Contenitore standard 5mm (T1 3/4)
- Luminosità 10.000 mcd
- Caduta tensione 3,4V
- Corrente max 20mA
Per il dimensionamento delle resistenze abbiamo come dati:
- Tensione alimentazione: 5V
- Caduta di tensione del led: 3,4V
- Corrente massima: 20 mA
- Numero led: 2
Dal calcolo si ottiene un valore teorico di 82 ohm che può essere elevato al valore di 100 ohm
Per il calcolo consiglio questo link.
Per il collegamento alla scheda di controllo è presente un connettore X3 a 2 poli, i cavi sono di colore rosso e bianco.
Sezione sensore luce
Il sensore di luce è formato da una semplice fotoresistenza, questi dispositivi sono sensibili alle radiazioni luminose, essi sono costituiti da materiali semiconduttori leggermente drogati come Solfuro di Cadmio (CdS), Solfuro di Piombo (PbS), Selenio (Se) e Antimoniuro di Indio (InSb).
In commercio si possono trovare diversi modelli di fotoresistenza, quella utilizzata in questo progetto ha queste caratteristiche:
- Resistenza (sensore illuminato) 1 K ohm, (sensore non illuminato) 10 K ohm
- Massima tensione di lavoro 150 Vcc
- Potenza dissipabile 100 mW
- Dimensioni 2 x 4x 5 mm
- Interasse Pins 4 mm
Nel circuito proposto, nel caso ideale, le due resistenze, di eguale valore, collegate come nello schema dividerebbero in parti uguali la tensione, nel punto di giunzione e si misurerebbe una tensione che sarebbe la metà di quella di alimentazione.
Nel circuito reale uno dei due elementi è variabile e varia in funzione della luce che lo irradia.
Quando la fotoresistenza è colpita dalla massima luce, al punto di giunzione si troverà la massima tensione +5V; quando ci sarà buio al punto si otterrà V/2 = 5v / 2 = 2,5v.
La tensione di uscita è misurata tramite una porta A0 di Arduino Nano.
![]() |
![]() |
Sezione sensore distanza
Il robot dispone di un sensore di distanza collegato al connettore X4, si tratta di un sensore a infrarossi della serie GP2D120 prodotto dalla SHARP
![]() |
![]() |
Sezione connettore servo
Per muovere il sensore frontale e il faro di illuminazione frontale è presente un servomotore tipo Hitec HS81 collegato al connettore X5 a azionato dalla porta D11
![]() |
![]() |
Caratteristiche tecniche del servo HITEC HS-81:
Control System: | +Pulse Width Control 1500usec Neutral |
Required Pulse: | 3-5 Volt Peak to Peak Square Wave |
Operating Voltage: | 4.8-6.0 Volts |
Operating Temperature Range: | -20 to +60 °C |
Operating Speed (4.8V): | 0.11 sec/60° at no load |
Operating Speed (6.0V): | 0.09 sec/60° at no load |
Stall Torque (4.8V): | 2.6 kg.cm |
Stall Torque (6.0V): | 3 kg.cm |
Operating Angle: | 45 Deg. one side pulse traveling 450 usec |
360 Modifiable: | No |
Direction: | Clockwise/Pulse Traveling 1500 to 1900 usec |
Current Drain (4.8V): | 8.8 mA/idle and 220 mA no load operating |
Current Drain (6.0V): | 9.1 mA/idle and 280 mA no load operating |
Dead Band Width: | 8 usec |
Motor Type: | 3 Pole Ferrite |
Potentiometer Drive: | Direct Drive |
Bearing Type: | None, outer case serves as bearing |
Gear Type: | All Nylon |
Connector Wire Length: | 160 mm |
Dimensions: | 29.8 x 12 x 29.6 mm |
Weight: | 16.6g |
Sensore di temperatura
Il sensore di temperatura LM35, è molto semplice da utilizzare e da collegare in quanto si presenta un contenitore di tipo TO92 analogo a quello di un normale transistor; necessita di un collegamento ad una porta ADC (nel robot LittleBOT è connesso alla porta A2) per la lettura del valore di tensione fornito dal sensore.
Il sensore si presenta con 3 terminali: uno per l’alimentazione, uno di massa e uno per l’uscita della tensione proporzionale alla temperatura rilevata che è pari a 10 mV per ogni grado centigrado, ed è calibrato in gradi Celsius. Le sue principali caratteristiche sono:
Altezza | 5.2mm |
Profondità | 4.19mm |
Lunghezza | 5.2mm |
Package fornitore | TO-92 |
Funzione | Sensore di temperatura |
Pin Count | 3 |
Precisione | ±0.6°C |
Sensibilità | 10 mV/°C |
Temperatura massima | 100°C |
Temperatura minima | 0°C |
Tensione tipica di funzionamento | 4-30V |
Tipo uscita | Analogica |
![]() |
![]() |
Codice RS 533-5907 |
Sezione modulo Bluetooth
Il connettore U5 permette di collegare un modulo Bluetooth HC-05 che è uno dei moduli più popolari e poco costosi utilizzati per le comunicazioni RF,
Il modulo ha una portata di 10 mt, e si imposta facilmente tramite comandi AT ed è programmabile sia come master che come slave a differenza del modello HC-06 che è solo utilizzabile come slave. Per il collegamento sono utilizzati RX, TX, VCC, GND.
Dato che le linee dati sono a 3.3V mentre quelle di Arduino sono a 5V, sarà necessario inserire un partitore per ridurre la tensione in ingresso sul pin RX del modulo SH-05, mentre questo non sarà necessario sul pin TX.
In teoria si sa che se R1=R2, qualsiasi sia il loro valore, quello che ottiene è un partitore di tensione simmetrico. Applicando in ingresso 10V in uscita si avranno 5V; variando il rapporto tra R1 ed R2 a favore di R1 ( R1 > R2 ) in uscita al partitore di tensione si avrà una tensione di uscita inferiore a Vi/2; variando il rapporto a favore di R2 ( R1 < R2 ) si ottiene una Vo > Vi/2.
Dato che dobbiamo avere in uscita una tensione inferiore ai 3.3V partendo da una tensione di 5V, si è optato per un valore di R8 pari a 1.2kΩ e R9= 2.2 kΩ, con un rapporto pari a 0,545 il che garantisce un valore della tensione in uscita pari a 3.2V.
Dettaglio PCB realizzato con EasyEDA
Sotto sono riportate le immagini relative al PCB della scheda, sia del rendering, realizzati dal programma EasyEDA

Vista del PCB lato TOP

PCB lato BOTTOM

Vista 3D del PCB lato TOP
Realizzazione del PCB
Il PCB è stato realizzato utilizzando il servizio fornito dal sito JLCPCB, il più grande produttore di prototipi di PCB in Asia, che offre prototipi di PCB a rotazione rapida 24 ore su 24, assemblaggio SMT e produzione affidabile di PCB in piccoli lotti. Il PCB misura 58×86 mm, è a doppia faccia con fori metallizzati
Il progetto completo può essere scaricato dal dal mio account presso OSHWLab, utilizzando questo link
Per le istruzioni per realizzare il PCB presso la JLCPCB, vedere l’articolo Come realizzare i vostri PCB tramite il sito JLCPCB.
Fasi di montaggio
Nella slideshow sono riportati i passaggi per la realizzazione della scheda. Si potranno quindi posizionare e saldare i vari componenti seguendo la serigrafia.
Per la saldatura, si utilizzerà un piccolo saldatore a punta fine, della potenza di circa 25 – 30 W, oppure una stazione di saldatura come quella presentata nell’articolo Stazione di saldatura digitale ST50-D 50W.
Componenti necessari
ID | Descrizione | Sigla | Quantità |
---|---|---|---|
1 | led bicolore L-57EGW ø 5mm | D2,D1 | 2 |
2 | Resistenza 10kΩ 5% 1/4 W | R7,R1,R2 | 3 |
3 | Resistenza 4,7KΩ 5% 1/4 W | R6 | 1 |
4 | Resistenza 10Ω 5% 1/4 W | R5 | 1 |
5 | Connettore 3 poli | X4,X5 | 2 |
6 | Transistor BC337 | Q1 | 1 |
7 | LM35DZ | U4 | 1 |
8 | Resistenza kΩ 5% 1/4 W | R3,R4 | 2 |
9 | Fotocellula 5 mm | FTR1 | 1 |
10 | Modulo POLOLU-791 | U3 | 1 |
11 | Connettore 2 poli | X3 | 1 |
12 | Connettore 4 poli | X1 | 1 |
13 | SWITCH SLIDE | S1 | 1 |
14 | Connettore 2 poli | X2 | 1 |
15 | Arduino Nano 3.0 | U2 | 1 |
16 | Buzzer PK-12N40PAQ | SG1 | 1 |
17 | Modulo bluetooth HC-05 | U5 | 1 |
18 | Resistenza 1,2kΩ 5% 1/4 W | R8 | 1 |
19 | Resistenza 2,2kΩ 5% 1/4 W | R9 | 1 |
20 | Modulo motore TB6612 | U1 | 1 |
21 | Condensatore elettrolitico 1uF | C1 | 1 |
22 | Condensatore poliestere 100nF | C2 | 1 |
S’inizierà con le resistenze, si potrà quindi, procedere con i diodi led, facendo attenzione alla tacca di riferimento. Si terminerà con l’interruttore a slitta, le varie pintrip e connettori.
Terminata la saldatura, si potranno inserire i vari moduli facendo sempre riferimento alla serigrafia, specialmente per il loro orientamento.
Modulo caricabatteria
Per la carica della batteria Li-Ion, si è scelto una piccolo circuito prodotto dalla SparkFun codice PRT-10161.
Questo permette, utilizzando un alimentatore da 5V, oppure direttamente la presa USB del PC, di caricare la batteria con una corrente selezionabile tra 100 e 500 mA E’ altresì possibile caricare batterie single-cell LiPo o Li-Polymer.
La scheda incorpora un circuito di carica basato sull’integrato prodotto dalla Microchip tipo MCP73831/2.
Il dispositivo è contenuto in un piccolo package SOT-23 a 5 pin e per il suo funzionamento sono necessari un basso numero di componenti esterni: è stato creato appositamente per quelle applicazioni portatili che necessitano di ricarica da una porta USB.
L’integrato utilizza un algoritmo di carica con corrente e tensione costante con precondizionamento e fine della carica selezionabile. Altre informazioni a questa pagina.
![]() |
![]() |
Taratura della tensione di alimentazione
Unica operazione di taratura da compiere è quella del trimmer presente sul modulo IC3: per fare questo, ruotare il trimmer sino a leggere tramite un multimetro digitale che tra il pin d’uscita e GND vi sia una tensione di 7-8V.
Articoli pubblicati sul web che parlano del robot
Di seguito sono riportati i link agli articoli che trattano della costruzione e uso del robot LittleBot e pubblicati sul blog Elettronica Oper Source.
Per altri miei articoli pubblicati sul blog, vedere articolo Adrirobot su Elettronica Open Source