LittleBOT – Scheda controllo robot – Progetto completo

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.

analisi scheda controllo robot

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.

analisi scheda controllo robot

Prima versione della scheda di controllo

Dallo schema elettrico si evince che questa è stata suddivisa nelle seguenti sezioni:

 

analisi scheda controllo robot

 

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.
analisi scheda controllo robot

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!

Scaricare schema

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.

analisi scheda controllo robotSi 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.analisi scheda controllo robot 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.

dc-dc_pololu.jpg

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:
MicrocontrollerATmega328
Tensione di funzionamento5V
Tensione in ingresso7-12 V (consigliata) 
Tensione in ingresso6-20 V (limiti)  
I / O digitali14 (di cui 6 con output PWM)
Ingressi analogici6
Corrente continua per I / O Pin40 mA
Di corrente per Pin 3,3 V CC50 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.

PinFunzione
Pin Digitale 0RX da modulo Bluetooth
Pin Digitale 1TX da modulo Bluetooth
Pin Digitale 2 Buzzer
Pin Digitale 3Velocità motore A PWMA
Pin Digitale 4 Comando motore A AIN2
Pin Digitale 5Comando motore A AIN1
Pin Digitale 6Standby motori STBY
Pin Digitale 7Comando motore B BIN1
Pin Digitale 8Comando motore B BIN2
Pin Digitale 9Velocità motore A PWMB
Pin Digitale 11Comando Servo
Pin Digitale 12Faro
Pin Digitale 13 Led su Arduino Nano
Pin Analogico A0Misurazione foto resistenza
Pin Analogico AMisurazione tensione batteria
Pin Analogico A2Misurazione temperatura
Pin Analogico A7Misurazione 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.

analisi scheda controllo robot

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 .

Led BI-COLORE 2 PIN

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 Ώ.

analisi scheda controllo robot

Transistor NPN BC337

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


Datasheet Servo

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:

Altezza5.2mm
Profondità4.19mm
Lunghezza 5.2mm
Package fornitore TO-92
FunzioneSensore di temperatura
Pin Count 3
Precisione±0.6°C
Sensibilità10 mV/°C
Temperatura massima100°C
Temperatura minima 0°C
Tensione tipica di funzionamento 4-30V
Tipo uscitaAnalogica

analisi scheda controllo robot

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

analisi scheda controllo robot

Vista del PCB lato TOP

analisi scheda controllo robot

PCB lato BOTTOM

analisi scheda controllo robot

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 necessarianalisi scheda controllo robot

IDDescrizioneSiglaQuantità
1led bicolore L-57EGW ø 5mmD2,D12
2Resistenza 10kΩ 5% 1/4 WR7,R1,R23
3Resistenza 4,7KΩ 5% 1/4 WR61
4Resistenza 10Ω 5% 1/4 WR51
5Connettore 3 poliX4,X52
6Transistor BC337Q11
7LM35DZU41
8Resistenza kΩ 5% 1/4 WR3,R42
9Fotocellula 5 mmFTR11
10Modulo POLOLU-791U31
11Connettore 2 poli X31
12Connettore 4 poliX11
13SWITCH SLIDES11
14Connettore 2 poliX21
15Arduino Nano 3.0U21
16Buzzer PK-12N40PAQSG11
17Modulo bluetooth HC-05U51
18Resistenza 1,2kΩ 5% 1/4 WR81
19Resistenza 2,2kΩ 5% 1/4 WR91
20Modulo motore TB6612U11
21Condensatore elettrolitico 1uFC11
22Condensatore poliestere 100nFC21

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