braccio_robotico
Differenze
Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
Entrambe le parti precedenti la revisioneRevisione precedenteProssima revisione | Revisione precedente | ||
braccio_robotico [2021/07/16 19:50] – [Collaudo] admin | braccio_robotico [2023/03/07 08:23] (versione attuale) – [Collaudo] admin | ||
---|---|---|---|
Linea 1: | Linea 1: | ||
+ | |||
+ | |||
+ | |||
====== Braccio Robotico ====== | ====== Braccio Robotico ====== | ||
Linea 212: | Linea 215: | ||
Per tutti i componenti punta da 0,8mm tranne che per: stripline, morsetto a vite, induttore, regolatore dove serve la punta da 1mm. | Per tutti i componenti punta da 0,8mm tranne che per: stripline, morsetto a vite, induttore, regolatore dove serve la punta da 1mm. | ||
- | Ho usato la libreria servo e l' | + | La scheda è stata collaudata usando un reostato come carico e 100mA di corrente e la tensione in uscita, regolata con l' |
+ | |||
+ | {{: | ||
+ | |||
+ | |||
+ | Si osserva un ripple di circa 20mV e il tipico andamento della tensione su Vout prodotta dalla commutazione del regolatore. | ||
+ | |||
+ | ===== Software ===== | ||
+ | |||
+ | |||
+ | Ho usato la libreria servo e l' | ||
+ | |||
+ | FIXME aggiustare i valori dopo la riparazione | ||
Range valori per i 5 attuatori: | Range valori per i 5 attuatori: | ||
Linea 221: | Linea 236: | ||
* base pin 11: 80 sinistra 45°, 40 dritto, 0 45° a destra | * base pin 11: 80 sinistra 45°, 40 dritto, 0 45° a destra | ||
+ | Codice adattato da [[https:// | ||
+ | |||
+ | <code C> | ||
+ | /* da https:// | ||
+ | | ||
+ | | ||
+ | | ||
+ | */ | ||
+ | |||
+ | #include < | ||
+ | |||
+ | // per il range di valori vedi qui | ||
+ | // https:// | ||
+ | Servo base; // 1 0 - 180 | ||
+ | Servo shoulder; | ||
+ | Servo elbow; | ||
+ | Servo wrist_rot; | ||
+ | Servo gripper; | ||
+ | |||
+ | // posizione iniziale | ||
+ | byte pos[5] | ||
+ | // serve per la funzione goPos() | ||
+ | byte oldpos[5] = {90, | ||
+ | |||
+ | // sequenza coordinate | ||
+ | //byte seq[][5] = { | ||
+ | // {90, | ||
+ | // {110, | ||
+ | // {110, | ||
+ | // {110, | ||
+ | // {30, | ||
+ | // {30, | ||
+ | // {30, | ||
+ | // {90, | ||
+ | // {90, | ||
+ | // {90, | ||
+ | // {40, | ||
+ | // {40, | ||
+ | // {40, | ||
+ | // {70, | ||
+ | // {70, | ||
+ | // {70, | ||
+ | // {45, | ||
+ | // {45, | ||
+ | // {45, | ||
+ | // {90, | ||
+ | //}; | ||
+ | |||
+ | byte seq[][5] = { | ||
+ | {90, | ||
+ | {140, | ||
+ | {140, | ||
+ | {140, | ||
+ | {140, | ||
+ | {90, | ||
+ | {90, | ||
+ | {90, | ||
+ | }; | ||
+ | |||
+ | // avvio se arriva del testo da seriale | ||
+ | bool run = false; | ||
+ | |||
+ | void setup() { | ||
+ | Serial.begin(115200); | ||
+ | |||
+ | // abbinamento servo-pin | ||
+ | base.attach(11); | ||
+ | shoulder.attach(10); | ||
+ | elbow.attach(9); | ||
+ | wrist_rot.attach(6); | ||
+ | gripper.attach(5); | ||
+ | |||
+ | // comando posizione iniziale | ||
+ | base.write(pos[0]); | ||
+ | shoulder.write(pos[1]); | ||
+ | elbow.write(pos[2]); | ||
+ | wrist_rot.write(pos[3]); | ||
+ | gripper.write(pos[4]); | ||
+ | |||
+ | Serial.println( "#### invia testo per avviare e per fermare la sequenza ####" ); | ||
+ | } | ||
+ | |||
+ | void loop() { | ||
+ | |||
+ | startStop(); | ||
+ | while (run) { | ||
+ | |||
+ | for ( byte line=0; line < (sizeof(seq)/ | ||
+ | Serial.print(" | ||
+ | for( byte i=0; i<5; i++ ) { | ||
+ | Serial.print(" | ||
+ | pos[i] = seq[line][i]; | ||
+ | } | ||
+ | Serial.print(" | ||
+ | goPos(0, | ||
+ | goPos(1, | ||
+ | goPos(2, | ||
+ | goPos(3, | ||
+ | goPos(4, | ||
+ | delay(1000); | ||
+ | startStop(); | ||
+ | } | ||
+ | delay(2000); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | void goPos(byte servo, Servo instance, byte pause) { | ||
+ | if (oldpos[servo] >= pos[servo]) { | ||
+ | for ( byte i = oldpos[servo]; | ||
+ | instance.write(i); | ||
+ | delay(pause); | ||
+ | } | ||
+ | } | ||
+ | if (oldpos[servo] <= pos[servo]) { | ||
+ | for ( byte i = oldpos[servo]; | ||
+ | instance.write(i); | ||
+ | delay(pause); | ||
+ | } | ||
+ | } | ||
+ | | ||
+ | } | ||
+ | |||
+ | void startStop() { | ||
+ | // se arriva del testo dal monitor seriale | ||
+ | if (Serial.available()> | ||
+ | // senza questo ritardo non legge tutti i dati del buffer! | ||
+ | delay(10); | ||
+ | Serial.println(" | ||
+ | Serial.print(" | ||
+ | Serial.println(Serial.available()); | ||
+ | // svuota il buffer | ||
+ | clearInputBuffer(); | ||
+ | Serial.print(" | ||
+ | Serial.println(Serial.available()); | ||
+ | // toggle della variabile che attiva la sequenza | ||
+ | run = !run; | ||
+ | Serial.print(" | ||
+ | Serial.println(run); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | void clearInputBuffer() { | ||
+ | while (Serial.available() > 0) { | ||
+ | char t = Serial.read(); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | </ | ||
===== Risorse ===== | ===== Risorse ===== | ||
Linea 228: | Linea 391: | ||
* {{ :: | * {{ :: | ||
* {{ : | * {{ : | ||
+ | * {{ :: | ||
===== Navigazione ===== | ===== Navigazione ===== |
braccio_robotico.1626465028.txt.gz · Ultima modifica: 2021/07/16 19:50 da admin