Sommario:
- Passaggio 1: teoria alla base del progetto
- Passaggio 2: progettazione PCB
- Passaggio 3: realizzazione del PCB
- Passaggio 4: progettazione del braccio
- Passaggio 5: stampa delle parti
- Passaggio 6: mettere tutto insieme
- Passaggio 7: programmazione di Arduino
- Passaggio 8: programmazione in Python
- Passaggio 9: elenco delle parti
- Passaggio 10: considerazioni finali
Video: Braccio robotico controllato da Arduino e PC: 10 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:02
I bracci robotici sono ampiamente utilizzati nell'industria. Che si tratti di operazioni di montaggio, saldatura o anche uno viene utilizzato per l'attracco sulla ISS (Stazione Spaziale Internazionale), aiutano l'uomo nel lavoro o lo sostituiscono totalmente. Il braccio che ho costruito è una rappresentazione più piccola del braccio robotico che dovrebbe essere utilizzato per spostare gli oggetti. È controllato da arduino pro mini che ha già una libreria integrata per il controllo dei servi. I servi sono controllati da PWM (Pulse Width Modulation) che non è difficile da programmare, ma questa libreria lo rende più facile. L'utente può controllare quei servi da potenziometri progettati per fungere da divisori di tensione o da un programma su PC che utilizza 4 cursori per controllare i servomotori.
Per questo progetto ho dovuto progettare il mio PCB personalizzato e realizzarlo, creare modelli 3D del braccio e scrivere il codice che controlla tutto. Inoltre ho codificato un programma aggiuntivo in Python che invia segnali ad arduino che riesce a decodificare quel segnale e spostare i servi nella posizione impostata dall'utente.
Passaggio 1: teoria alla base del progetto
Arduino è fantastico in quanto offre una libreria gratuita con cui lavorare. Per questo progetto ho utilizzato la libreria Servo.h che rende il controllo dei servi molto più semplice.
Il servomotore è controllato da PWM -Pulse Width Modulation- il che significa che per controllare il servo è necessario effettuare brevi impulsi di tensione. Il servo può decodificare la lunghezza di questo segnale e ruotare in una determinata posizione. Ed è qui che ho usato la libreria già menzionata. Non ho dovuto calcolare la lunghezza del segnale da solo, ma ho usato le funzioni della libreria a cui ho appena passato il parametro in gradi e fa segnale.
Per controllare i servi ho usato dei potenziometri che fungono da divisori di tensione. Le schede Arduino hanno diversi convertitori analogico/digitale che ho utilizzato per il progetto. Fondamentalmente arduino sta monitorando la tensione sul pin centrale sul potenziometro e se ruota su un lato la tensione è 0 Volt (valore = 0) e dall'altro è 5 Volt (valore = 1023). Questo valore viene quindi scalato dall'intervallo 0 - 1023 a 0 - 180 e quindi passato alla funzione già menzionata.
Un altro argomento è la comunicazione seriale con arduino che tratterò solo brevemente. Fondamentalmente il programma scritto su PC invia il valore scelto dall'utente, arduino può decodificarlo e spostare il servo nella posizione data
Passaggio 2: progettazione PCB
Ho progettato 2 PCB: uno per il controllo principale dove c'è arduino e i pin per i servi e il secondo sono i potenziometri. Il motivo per 2 PCB è che volevo controllare il braccio robotico da una distanza di sicurezza. Entrambi i circuiti sono collegati da un cavo di una determinata lunghezza, nel mio caso 80 cm.
Per la fonte di alimentazione ho scelto un adattatore esterno perché i servi che ho usato consumano molta più energia di quanto arduino possa fornire. Come puoi vedere ci sono alcuni condensatori che non ho ancora menzionato. Sono condensatori utilizzati per la filtrazione. Come ora saprai, il servomotore è controllato da brevi impulsi. Questi impulsi possono far cadere la tensione di alimentazione e i potenziometri che in precedenza avevano un intervallo di 0-5 volt ora hanno un intervallo più piccolo. Ciò significa che la tensione sul pin centrale cambia e arduino ottiene questo valore e cambia la posizione in cui si trova il servomotore. Questo può andare avanti all'infinito e provoca oscillazioni indesiderate che possono essere eliminate da alcuni condensatori paralleli all'alimentazione.
Passaggio 3: realizzazione del PCB
Per fare PCB ti consiglio di leggere questo.
Ho usato il metodo Iron on Glossy paper e ha funzionato alla grande.
Poi ho saldato le parti sul PCB. Puoi vedere che ho usato la presa arduino nel caso in cui ne avessi bisogno in futuro.
Passaggio 4: progettazione del braccio
Questa non è stata affatto la parte più difficile della realizzazione di questo progetto.
L'intero setup è composto da 8 parti di cui 4 non sono parti mobili - scatola per potenziometri e base dove si trova arduino - e altre quattro sono il braccio stesso. Non entrerò in molti dettagli tranne che il design è piuttosto intuitivo e in qualche modo semplice. È progettato per adattarsi al mio PCB personalizzato e ai servi che includerò nell'elenco delle parti.
Passaggio 5: stampa delle parti
Le parti sono state stampate sulla stampante Prusa. Alcune facce dovevano essere leggermente rettificate e forati. Anche i pilastri di supporto dovevano essere rimossi.
Passaggio 6: mettere tutto insieme
In questo passaggio come dice il titolo ho messo tutto insieme.
All'inizio ho saldato i fili sui potenziometri e poi quei fili sul PCB. I potenziometri si adattano bene ai fori e ho incollato a caldo il PCB sui pilastri che erano stampati sul fondo della scatola. Puoi praticare dei fori nella tavola e nella scatola, ma ho scoperto che incollarlo è più che sufficiente. Poi ho chiuso entrambe le parti della scatola e le ho fissate in posizione con 4 viti che si incastrano nei fori che avevo disegnato.
Come passaggio successivo ho realizzato un cavo a nastro piatto per collegare entrambe le schede.
Nella scatola principale ho saldato i fili dal pin VCC del connettore per passare e poi a Vcc della scheda e da GND della scheda a GND del connettore. Quindi ho incollato a caldo il connettore in posizione e l'ho montato sui pilastri. Il connettore si inserisce direttamente nel foro, quindi non è necessaria la colla a caldo.
Quindi, utilizzando le viti, ho fissato il servo inferiore al fondo della scatola.
Dopo di che ho messo la parte superiore della scatola sulla parte inferiore e come con la scatola del potenziometro l'ho fissata con 4 viti.
La parte successiva è stata un po' complicata, ma sono riuscito a mettere insieme il resto del braccio con vari dadi e cuscinetti e non era così stretto come mi aspettavo perché ho progettato alcune tolleranze tra le parti, quindi è più facile lavorarci.
E come passaggio finale ho messo del nastro adesivo sul fondo delle scatole perché altrimenti sarebbero scivolate.
Passaggio 7: programmazione di Arduino
Ho già menzionato come funziona il programma in teoria dietro il progetto, ma lo spezzerò ancora di più.
Quindi all'inizio dobbiamo definire alcune variabili. Per lo più viene copiato 4 volte perché abbiamo 4 servi e secondo me non è necessario fare una logica più complicata solo per rendere il programma un po' più corto.
Successivamente c'è l'impostazione void in cui sono definiti i pin dei servi.
Poi c'è void loop - parte del programma che si ripete all'infinito. In questo part program prende il valore dal potenziometro lo ridimensiona e lo mette in uscita. Ma c'è un problema che il valore del potenziometro salta un po', quindi ho dovuto aggiungere un filtro che fa la media degli ultimi 5 valori e poi mette in uscita. Questo impedisce oscillazioni indesiderate.
L'ultima parte del programma legge i dati dalla porta seriale e decide cosa fare in base ai dati inviati.
Per comprendere appieno il codice, ti suggerisco di visitare i siti Web ufficiali di Arduino.
Passaggio 8: programmazione in Python
Questa parte di questo progetto non è necessaria ma penso che dia solo più valore a questo progetto.
Python offre tonnellate di librerie che sono gratuite ma in questo progetto sto usando solo tkinter e serial. Tkinter è usato per GUI (Graphical User Interface) e seriale come dice il nome è usato per la comunicazione seriale.
Questo codice crea una GUI con 4 cursori che hanno un valore minimo di 0 e massimo 180. Potrebbe suggerirti che è in gradi e ogni cursore è programmato per controllare un servo. Questo programma è piuttosto semplice: prende il valore e lo invia ad arduino. Ma il modo in cui trasmette è interessante. Se scegli di cambiare il valore del primo servo a 123 gradi, invia al valore arduino 1123. Il primo numero di ogni numero inviato indica quale servo sta per essere controllato. Arduino ha un codice che può decodificarlo e muovere il servo giusto.
Passaggio 9: elenco delle parti
- Arduino Pro Mini 1 pezzo
- Servo FS5106B 1 pezzo
- Servo Futaba S3003 2 pezzi
- Pin header 2x5 1 pezzo
- Pin header 1x3 6 pezzi
- Condensatore 220uF 3 pezzi
- Micro Servo FS90 1 pezzo
- Connettore AWP-10 2 pezzi
- Connettore FC681492 1 pezzo
- Interruttore P-B100G1 1 pezzo
- Presa 2x14 1 pezzo
- TTL-232R-5v - convertitore 1 pezzo
- Potenziometro B200K 4 pezzi
- e molte altre viti, cuscinetti e dadi
Passaggio 10: considerazioni finali
Grazie per aver letto questo e spero di averti almeno motivato. Questo è il mio primo progetto più grande che ho realizzato da solo senza copiare cose da Internet e dal primo post di istruzioni. So che il braccio potrebbe essere aggiornato ma per ora ne sono soddisfatto. Tutte le parti e i codici sorgente sono gratuiti, puoi utilizzarli e modificarli nel modo che preferisci. Se hai domande, non esitare a farle nella sezione commenti. Puoi anche guardare i video, non sono di ottima qualità ma mostrano le funzionalità del progetto.
Consigliato:
Braccio robotico controllato da encoder rotativo: 6 passaggi
Braccio robotico controllato da encoder rotativo: ho visitato howtomechatronics.com e ho visto il braccio robotico controllato da bluetooth. Non mi piace usare il bluetooth, inoltre ho visto che possiamo controllare il servo con un encoder rotativo, quindi l'ho riprogettato per poter controllare il robot braccio usa l'encoder rotativo e registralo
Braccio robotico controllato da Arduino con 6 gradi di libertà: 5 passaggi (con immagini)
Braccio robotico controllato da Arduino con 6 gradi di libertà: sono membro di un gruppo di robotica e ogni anno il nostro gruppo partecipa a una fiera annuale di Mini-Maker. A partire dal 2014, ho deciso di costruire un nuovo progetto per l'evento di ogni anno. All'epoca avevo circa un mese prima dell'evento per mettere insieme qualcosa
Braccio robotico controllato da Arduino di Lego Mindstorm: 6 passaggi
Braccio robotico controllato da Arduino da Lego Mindstorm: riutilizza due vecchi motori Lego Mindstorm in un braccio di presa controllato da un Arduino Uno. Questo è un progetto Hack Sioux Falls in cui abbiamo sfidato i bambini a costruire qualcosa di interessante con un Arduino
Braccio robotico controllato da Nunchuk (con Arduino): 14 passaggi (con immagini)
Braccio robotico controllato da Nunchuk (con Arduino): i bracci robotici sono fantastici! Li hanno le fabbriche di tutto il mondo, dove dipingono, saldano e trasportano cose con precisione. Possono anche essere trovati nell'esplorazione dello spazio, nei veicoli azionati a distanza sottomarini e persino nelle applicazioni mediche! E ora puoi
Braccio robotico addestrabile controllato da gesti tramite Bluetooth ad Arduino: 4 passaggi
Braccio robotico addestrabile controllato da gesti tramite Bluetooth ad Arduino: ci sono due modalità nel braccio. Il primo è la modalità manuale che puoi spostare il braccio con il bluetooth nel tuo telefono cellulare spostando i cursori sull'app. Allo stesso tempo, puoi salvare le tue posizioni e puoi giocare… La seconda è la modalità gesto che usa il tuo ph