🚀 Introduzione
Vuoi iniziare a costruire un vero braccio robotico controllato da Arduino? 🤖🦾
In questo progetto realizzerai un braccio robotico a due assi utilizzando Arduino UNO e due servomotori.
Il primo servomotore controllerà la rotazione della base, permettendo al braccio di spostarsi verso destra e verso sinistra.
Il secondo servomotore controllerà il movimento verticale del braccio, permettendogli di sollevarsi e abbassarsi.
Il sistema sarà comandato tramite quattro pulsanti:
Mantenendo premuto un pulsante, il servomotore corrispondente si muoverà gradualmente nella direzione scelta.
👉 Il movimento progressivo evita gli spostamenti improvvisi e rende il controllo del braccio più preciso.
Questo progetto costituisce una base importante per realizzare successivamente sistemi robotici più complessi, come pinze automatiche, bracci controllati con potenziometri e sistemi pick and place.
Vuoi iniziare a costruire un vero braccio robotico controllato da Arduino? 🤖🦾
In questo progetto realizzerai un braccio robotico a due assi utilizzando Arduino UNO e due servomotori.
Il primo servomotore controllerà la rotazione della base, permettendo al braccio di spostarsi verso destra e verso sinistra.
Il secondo servomotore controllerà il movimento verticale del braccio, permettendogli di sollevarsi e abbassarsi.
Il sistema sarà comandato tramite quattro pulsanti:
- rotazione verso sinistra;
- rotazione verso destra;
- sollevamento del braccio;
- abbassamento del braccio.
Mantenendo premuto un pulsante, il servomotore corrispondente si muoverà gradualmente nella direzione scelta.
👉 Il movimento progressivo evita gli spostamenti improvvisi e rende il controllo del braccio più preciso.
Questo progetto costituisce una base importante per realizzare successivamente sistemi robotici più complessi, come pinze automatiche, bracci controllati con potenziometri e sistemi pick and place.
🎯 Cosa realizzerai
Con Arduino creerai un braccio robotico che:
Con Arduino creerai un braccio robotico che:
- 🤖 utilizza due servomotori;
- ↔️ ruota la base verso destra e verso sinistra;
- ↕️ solleva e abbassa il braccio;
- 🔘 viene controllato tramite quattro pulsanti;
- 🐢 esegue movimenti graduali;
- 📐 limita gli angoli per proteggere la struttura;
- 🛑 si ferma quando nessun pulsante viene premuto;
- 💡 utilizza un LED per indicare un movimento in corso;
- ⚙️ permette di modificare velocità e limiti;
- ✅ utilizza codice compatibile con Arduino UNO.
🧰 Materiale necessario
Per una struttura molto leggera possono essere utilizzati due servomotori SG90.
Se il braccio è più pesante, è consigliabile utilizzare almeno un servomotore MG90S o un modello con una coppia maggiore per il movimento verticale.
- 1x Arduino UNO;
- 2x servomotori SG90, MG90S o compatibili;
- 1x struttura per braccio robotico a due assi;
- 4x pulsanti;
- 1x LED;
- 1x resistenza da 220 Ω;
- 1x alimentatore esterno stabilizzato da 5V;
- 1x condensatore elettrolitico da 470 µF o 1000 µF, consigliato;
- 1x breadboard;
- cavetti jumper;
- viti e supporti per fissare i servomotori;
- cavo USB.
Per una struttura molto leggera possono essere utilizzati due servomotori SG90.
Se il braccio è più pesante, è consigliabile utilizzare almeno un servomotore MG90S o un modello con una coppia maggiore per il movimento verticale.
🛒 Non hai ancora i componenti?
Molti dei progetti presenti su progettiarduino.com utilizzano componenti elettronici di base come LED, resistenze, sensori e breadboard.
Se stai iniziando con Arduino, il modo più semplice è utilizzare un kit completo per principianti, che include quasi tutti i componenti necessari per realizzare molti dei progetti presenti sul sito.
👉 Kit Arduino consigliato:
ℹ️ Link di affiliazione Amazon: in qualità di Affiliato Amazon ricevo un guadagno dagli acquisti idonei, senza alcun costo aggiuntivo per te.
https://amzn.to/4b3dxjW
📘 Vuoi imparare Arduino passo dopo passo?
Se vuoi approfondire e realizzare progetti più completi, puoi dare un'occhiata anche ai miei libri dedicati ad Arduino.
All'interno troverai spiegazioni semplici, schemi chiari e molti progetti pratici pensati per chi parte da zero.
👉 Scopri i miei libri su Arduino:
ℹ️ Link di affiliazione Amazon: in qualità di Affiliato Amazon ricevo un guadagno dagli acquisti idonei, senza alcun costo aggiuntivo per te.
https://amzn.to/4rfzjXE
Molti dei progetti presenti su progettiarduino.com utilizzano componenti elettronici di base come LED, resistenze, sensori e breadboard.
Se stai iniziando con Arduino, il modo più semplice è utilizzare un kit completo per principianti, che include quasi tutti i componenti necessari per realizzare molti dei progetti presenti sul sito.
👉 Kit Arduino consigliato:
ℹ️ Link di affiliazione Amazon: in qualità di Affiliato Amazon ricevo un guadagno dagli acquisti idonei, senza alcun costo aggiuntivo per te.
https://amzn.to/4b3dxjW
📘 Vuoi imparare Arduino passo dopo passo?
Se vuoi approfondire e realizzare progetti più completi, puoi dare un'occhiata anche ai miei libri dedicati ad Arduino.
All'interno troverai spiegazioni semplici, schemi chiari e molti progetti pratici pensati per chi parte da zero.
👉 Scopri i miei libri su Arduino:
ℹ️ Link di affiliazione Amazon: in qualità di Affiliato Amazon ricevo un guadagno dagli acquisti idonei, senza alcun costo aggiuntivo per te.
https://amzn.to/4rfzjXE
📚 Librerie necessarie
Il progetto utilizza la libreria:
La libreria Servo è normalmente già inclusa nell’Arduino IDE e non richiede installazioni aggiuntive.
Per controllare i servomotori viene utilizzata la funzione:
servo.write(angolo);
Il valore dell’angolo è generalmente compreso tra 0° e 180°.
Nel progetto verranno però utilizzati limiti più ristretti per ridurre il rischio di danneggiare la struttura meccanica.
Il progetto utilizza la libreria:
- Servo.
La libreria Servo è normalmente già inclusa nell’Arduino IDE e non richiede installazioni aggiuntive.
Per controllare i servomotori viene utilizzata la funzione:
servo.write(angolo);
Il valore dell’angolo è generalmente compreso tra 0° e 180°.
Nel progetto verranno però utilizzati limiti più ristretti per ridurre il rischio di danneggiare la struttura meccanica.
🦾 Struttura del braccio robotico
Il sistema utilizza due movimenti principali.
Servomotore della base
Il primo servomotore permette di ruotare tutto il braccio:
Servomotore del braccio
Il secondo servomotore permette di:
I due movimenti possono essere comandati separatamente oppure contemporaneamente, premendo un pulsante della base e uno del braccio nello stesso momento.
Il sistema utilizza due movimenti principali.
Servomotore della base
Il primo servomotore permette di ruotare tutto il braccio:
- verso sinistra;
- verso destra.
Servomotore del braccio
Il secondo servomotore permette di:
- sollevare il braccio;
- abbassare il braccio.
I due movimenti possono essere comandati separatamente oppure contemporaneamente, premendo un pulsante della base e uno del braccio nello stesso momento.
🔌 Schema di collegamento
Servomotore della base
Servomotore del braccio
Pulsante rotazione a sinistra
Pulsante rotazione a destra
Pulsante sollevamento
Pulsante abbassamento
Non sono quindi necessarie resistenze esterne di pull-up o pull-down.
LED di movimento
Servomotore della base
- filo del segnale → pin digitale 9;
- filo rosso → positivo dell’alimentazione esterna da 5V;
- filo marrone o nero → GND dell’alimentazione esterna.
Servomotore del braccio
- filo del segnale → pin digitale 10;
- filo rosso → positivo dell’alimentazione esterna da 5V;
- filo marrone o nero → GND dell’alimentazione esterna.
Pulsante rotazione a sinistra
- un terminale → pin digitale 2;
- terminale opposto → GND.
Pulsante rotazione a destra
- un terminale → pin digitale 3;
- terminale opposto → GND.
Pulsante sollevamento
- un terminale → pin digitale 4;
- terminale opposto → GND.
Pulsante abbassamento
- un terminale → pin digitale 5;
- terminale opposto → GND.
Non sono quindi necessarie resistenze esterne di pull-up o pull-down.
LED di movimento
- anodo → pin digitale 7 tramite resistenza da 220 Ω;
- catodo → GND.
💻 Codice Arduino
🔘 Funzionamento dei pulsanti
Poiché viene utilizzata la modalità INPUT_PULLUP, la logica dei pulsanti è invertita:
Quando Arduino rileva un valore LOW, modifica gradualmente l’angolo del servomotore associato.
Poiché viene utilizzata la modalità INPUT_PULLUP, la logica dei pulsanti è invertita:
- pulsante non premuto → valore HIGH;
- pulsante premuto → valore LOW.
Quando Arduino rileva un valore LOW, modifica gradualmente l’angolo del servomotore associato.
⚠️ Alimentazione dei servomotori
I servomotori non devono essere alimentati direttamente dal pin 5V di Arduino quando devono muovere una struttura meccanica.
Durante il movimento, un servomotore può assorbire una corrente molto superiore a quella richiesta quando è fermo.
Due servomotori alimentati direttamente da Arduino possono provocare:
Utilizza un’alimentazione esterna stabilizzata da 5V capace di fornire almeno 1,5–2 A.
Per servomotori più potenti potrebbe essere necessaria una corrente maggiore.
I servomotori non devono essere alimentati direttamente dal pin 5V di Arduino quando devono muovere una struttura meccanica.
Durante il movimento, un servomotore può assorbire una corrente molto superiore a quella richiesta quando è fermo.
Due servomotori alimentati direttamente da Arduino possono provocare:
- riavvii improvvisi della scheda;
- movimenti irregolari;
- vibrazioni;
- perdita della comunicazione USB;
- surriscaldamento del regolatore;
- danneggiamento della scheda.
Utilizza un’alimentazione esterna stabilizzata da 5V capace di fornire almeno 1,5–2 A.
Per servomotori più potenti potrebbe essere necessaria una corrente maggiore.
🔧 Calibrazione iniziale
Prima di montare le leve sui servomotori:
Questa procedura permette di montare la struttura partendo da una posizione conosciuta.
Prima di montare le leve sui servomotori:
- scollega i bracci meccanici;
- carica il programma;
- alimenta Arduino e i servomotori;
- attendi che raggiungano la posizione iniziale;
- scollega nuovamente l’alimentazione;
- monta le leve nella posizione corretta;
- controlla manualmente che nulla sia bloccato;
- riaccendi il circuito.
Questa procedura permette di montare la struttura partendo da una posizione conosciuta.
🔘 Pressione contemporanea dei pulsanti
Il programma controlla che non vengano eseguiti due comandi opposti sullo stesso asse.
Se vengono premuti contemporaneamente:
È comunque possibile muovere contemporaneamente i due assi.
Ad esempio puoi premere:
Il programma controlla che non vengano eseguiti due comandi opposti sullo stesso asse.
Se vengono premuti contemporaneamente:
- sinistra e destra → la base rimane ferma;
- su e giù → il braccio rimane fermo.
È comunque possibile muovere contemporaneamente i due assi.
Ad esempio puoi premere:
- base sinistra;
- braccio su.
💡 LED di movimento
Il LED collegato al pin 7 indica quando Arduino sta modificando realmente la posizione di almeno un servomotore.
Il LED risulta:
Se un pulsante viene mantenuto premuto dopo aver raggiunto il limite massimo, il LED si spegne perché il servomotore non può avanzare ulteriormente.
Il LED collegato al pin 7 indica quando Arduino sta modificando realmente la posizione di almeno un servomotore.
Il LED risulta:
- acceso → movimento in corso;
- spento → braccio fermo o limite raggiunto.
Se un pulsante viene mantenuto premuto dopo aver raggiunto il limite massimo, il LED si spegne perché il servomotore non può avanzare ulteriormente.
🧠 Perché è un progetto importante
Con questo progetto impari a:
Con questo progetto impari a:
- controllare più servomotori;
- realizzare un sistema robotico a due assi;
- utilizzare pulsanti con INPUT_PULLUP;
- gestire movimenti progressivi;
- utilizzare millis() al posto di delay();
- limitare gli angoli di movimento;
- proteggere una struttura meccanica;
- alimentare correttamente i servomotori;
- eseguire movimenti simultanei;
- progettare la base di un braccio robotico;
- creare codice compatibile con Arduino UNO.
🔄 Varianti possibili
Vuoi migliorare il progetto?
Vuoi migliorare il progetto?
- 🕹️ aggiungi un joystick analogico;
- 🎛️ controlla i servo con due potenziometri;
- ✋ aggiungi una pinza con un terzo servomotore;
- 💾 salva alcune posizioni nella memoria EEPROM;
- ▶️ crea una sequenza automatica;
- 🔘 aggiungi un pulsante per tornare al centro;
- 📟 visualizza gli angoli su un display LCD;
- 🔢 mostra le posizioni su un display OLED;
- 📡 controlla il braccio tramite Bluetooth;
- 🌐 aggiungi un controllo Wi-Fi;
- 🎮 utilizza un controller esterno;
- 🚨 aggiungi un pulsante di arresto;
- 🧲 monta un piccolo elettromagnete;
- 📦 trasforma il sistema in un pick and place;
- ⚙️ utilizza servomotori più potenti;
- 🦾 aggiungi altri assi di movimento.