Vi piacerebbe realizzare un progetto al 100% con le vostre mani, senza la necessità di essere ingegneri o geni e al tempo stesso, mostrare il vostro capolavoro agli amici sapendogli spiegare anche il funzionamento? Se le risposte sono si allora con questa guida potete realizzare tutto ció, con una spesa abbastanza contenuta. Sono uno studente liceale con la passione per l'informatica, l'elettronica e la meccanica ed ho deciso di condividerla realizzando questa guida.
***Ho creato un pdf che vi consiglio di scaricare dal mio drive per poter godere a pieno le foto e i contenuti. Nel file .rar ci saranno anche i codici per i PIC ed altro materiale. Ringrazio Elettronica Open Source per avermi concesso questo spazio e vi auguro buona lettura.***
Optimus I: il domobot
L'obbiettivo è stato quello di utilizzare materiale di recupero completamente riadattato. Ciò non toglie che se avete un budget superiore potete tranquillamente realizzare gli elementi in modo più preciso e più professionale, come cercherò di specificare. Ed ora passiamo alla pratica!
Meccanica
Materiale:
- foglio MDF (spessore 10mm) da circa 40x40cm;
- x4 distanziatori (diam. 8 mm) da 12 cm. (usare una barra filettata M8 da 48 cm tagliata in segmenti Da 12 cm);
- X20 dadi;
- X1 sensore ultrasuoni HC-SR04;
- X1 servo da modellismo;
- X2 staffe per motori;
- X2 motori;
- X2 ruota omnidirezionale;
- plastica modellabile su ebay;
- Camera d’aria bici (anche forata).
La struttura è fatta da due ponti (1 inferiore e 1 superiore) collegati da segmenti di viti senza fine M8 bloccate con dei dadi e un supporto per il servo (vedremo in seguito). La prima cosa da fare è ritagliare i 2 ponti e il supporto per il servo dalla tavola di MDF. Le misure dei ponti sono 25cm X 12,5cm il supporto 4,5cm X 12,5cm. Per rendere il tutto più "carino" consiglierei di arrotondare la parte anteriore come in foto (nel caso abbiate una CNC, potreste realizzarli al computer e ritagliarli su legno o su alluminio, se avete una stampante 3D potete realizzarloaumentando la precisione e migliorando l’estetica). A questo punto dovreste realizzare i fori sui ponti per inserire i distanziatori (io per sbaglio li ho fatti dopo la verniciatura il che rovina la vernice nei punti di foratura).
Per la verniciatura ho usato le bombolette di pittura spray grigia (ponti) e color oro (supporto) e ho fatto 3 maschere con un intervallo di 30m l’uno (meglio fare 100 passaggi che svuotare la bomboletta in uno solo altrimenti si creano crepe e rischiate di rovinare tutto), per poi passare una maschera protettiva trasparente dopo qualche ora. Vi consiglio di aspettare almeno 24 h dopo la verniciatura prima di continuare per evitare che la vernice si rovini.
Il passaggio successivo è tagliare la barra filettata in 4 segmenti da 12cm l’uno. Potete usare un Dremel sega a nastro o semplicemente un seghetto alternativo (non spezzate la barra quando arrivate quasi alla fine del taglio, bensì tagliatela per tutto il diametro altrimenti la filettatura in quel punto si rovina e i dadi non li metterete più.
Per migliorare l’estetica potreste realizzare il foro per il distanziatore con una punta da 8 mm e con una punta da circa 15 mm realizzare un foro che non arrivi all’altra parte ma solo come cava per far scendere il dado da realizzare sui fori della parte superiore del ponte superiore e la parte superiore del ponte inferiore, in altre parole le parti visibili.
Detto ciò, dobbiamo procedere con il fissaggio del servo sul suo supporto. Nonostante in commercio si sarebbero potute trovare tante cose, io ho optato per il 100% home made, pertanto ho acquistato una plastica su ebay, chiamata plastica modellabile. Si vende a peso e in forma di pellet. Si prende una pentola di acqua bollente e si mette una certa quantità di questi pellet; dopo un po’ si squagliano e diventa una massa omogenea. In questo modo avete il tempo per dare qualsiasi forma vogliate prima che si raffreddi. Alla fine s’immerge in acqua fredda e il gioco è fatto. Avevo cercato di fare anche le ruote con questa tecnica ma poi ho cambiato materiale per praticità e perché la plastica sarebbe scivolata a terra non dando il giusto grip.
I supporti li ho modellati a mano ovviamente. Ho fatto anche dei sostegni per mantenere il sensore a ultrasuoni (vedremo dopo), e l’ho legato alla squadretta del servo, usando i piedini di alcuni LED bruciati che avevo come se fossero fil di ferro.
A questo punto si fissa il servo al supporto, che a sua volta verrà fissato al ponte inferiore con delle viti, che passeranno dalla parte inferiore del ponte, perpendicolarmente fin dentro la tavoletta del supporto.
In seguito collochiamo i supporti per i motori ed i motori stessi. Nel mio caso i motori sono comprensivi di motoriduttore, e per far quadrare il tutto ho dovuto modificare le staffette a L forandole. Ci sono molti tipi di motori che potete usare, l’importante è che adattiate il tutto in base alle vostre esigenze. Inoltre, ho aggiunto una ruota onnidirezionale sulla parte anteriore in modo da non creare resistenza ai motori in azione.
Per finire realizziamo le ruote. Prendiamo una tavola di legno e ritagliamo dei cerchi di diametro 6cm. Per fare ciò ho usato un utensile per trapano in grado di fare buchi grandi ma senza “consumare” la parte interna del foro, in altre parole l’utensile ritaglia il legno invece di fresarlo, per cui recuperiamo quella parte per le ruote. In seguito per dare “grip” alle ruote e dare spessore (perché altrimenti il ponte inferiore toccherebbe a terra), ho ritagliato delle striscette di gomma da una camera d’aria di una bici e l’ho avvolta sulla circonferenza della ruota e bloccata con una vite (nel caso abbiate una stampante 3D, ovviamente vi conviene realizzare il tutto al pc e fare un solo giro di gomma sulla ruota come battistrada).
Per collegare invece le ruote ai motori (che avevano un asse con terminale a mezza luna), ho usato la parte metallica dei mammut elettrici in modo da usare la vite come fermo sull’asse. Il pezzetto metallico l’ho letteralmente fuso su uno di plexiglass che poi ho incollato con l’Attack sulle ruote di legno.
I dadi servono per fermare i ponti tra i distanziatori e per fermare in seguito il circuito elettrico del robot (vedremo dopo).
Elettronica
Materiale elettronico:
- LM317;
- L7805 con dissipatore;
- X2 IRF640N;
- PIC16F877A;
- PIC12F675;
- Quarzo oscillatore 4 Mhz;
- Socket per i pic (40 pin e 8 pin);
- Display LCD a matrici 16X2;
- condensatori elettrolitici;
- condensatori generici;
- resistenze;
- diodi;
- connettori (per esempio i molex a 2 pin, e connettori per collegare cavi a un pcb).
Materiale per il circuito:
- Basetta ramata dimensioni 16X10 cm;
- cloruro ferrico;
- fogli stampa su metalli;
- ferro da stiro;
- stampante;
- saldatore.
In un robot, altra "parte" fondamentale è l’elettronica. Essa comprende il circuito e gli elementi elettronici (resistenze, condensatori, oscillatori, PIC, display, sensori).
Se collegate una batteria ad un LED con dei cavi avete già creato un circuito; quello che andremo a fare sarà un po’ più complicato ma comunque facile da capire. La differenza dal circuito batteria-LED è il numero di elementi e il modo in cui il circuito è realizzato. Non useremo, infatti, i cavi per collegare gli elementi (eccetto che in alcuni casi), bensì un PCB (=Printed Circuit Board=circuito stampato). Qualunque apparecchio elettronico ne è provvisto perché rende possibile la collocazione di tanti elementi in spazi ridotti.
Il principio è semplice, un PCB è composto da due facce; la faccia componenti e la faccia piste. Sulla faccia componenti si trovano i diversi componenti mentre sul lato piste si trovano i terminali dei componenti saldati ai Pad che sono a loro volta collegati alle piste (cavi “stampati” sulla basetta ramata). Un PCB vergine è composto da una lastra di vetronite (la parte in verde della foto) e una lastra di rame ben incollata su un lato(la parte gialla che nella foto si trova su entrambe le facce della vetronite). Dal momento in cui ci serve un supporto per il nostro circuito (la basetta con le piste), dobbiamo cercare di incidere il rame, in modo da lasciare solamente il “disegno” delle piste e i pad per i nostri componenti.
Ci sono principalmente 3 modi per farlo.
- Incisione tramite CNC;
- Transfer di toner;
- fotoincisione.
1) Il primo e il più facile; basta realizzare il disegno con una programma CAD e mettere la basetta sotto una CNC facendole fare tutto il lavoro di incisione attorno alle piste in modo da far saltare il rame dove non serve.
2) Il secondo metodo (che ho usato io) è quello di usare un foglio per il transfer (come quello delle magliette…attenzione alla stampante quando comprate il foglio transfer se è una getto di inchiostro o laser, penso che si possa fare solo con il toner altrimenti non avviene il trasferimento). Dovete stampare il circuito sul foglio transfer (ricordate di farlo a specchio! Scegliete nelle impostazioni della stampante) e poi poggiarlo con il toner rivolto verso la parte ramata della basetta. Poggiate un foglio di giornale sul tutto e letteralmente stirarlo per circa 45s muovendovi in continuazione. In seguito quando si è raffreddato tirate molto lentamente il foglio transfer dal rame scoprendo che il toner è rimasto sul rame lasciando il disegno del circuito (nel caso rimanga della plastica del foglio togliere con l’acqua strofinando con le dita ma attenzione a non far saltare il toner dal rame, in caso di pezzi da aggiustare usate un pennarello indelebile tipo quelli dei DVD). In seguito c’è la fase dell’incisione e si usa il cloruro ferrico (FeCl₃) ma per velocizzare il processo si riscalda a circa 80°C (attenzione è nocivo e corrosivo! Non respirate i vapori! Usate protezioni adatte come guanti in lattice e occhiali!)
Attenzione: il cloruro ferrico scioglie i metalli pertanto NON usate contenitori metallici di nessun tipo. Se lo comprate in forma di pellet, dovete prima scioglierlo in acqua).
Versate del FeCl₃ in un contenitore e immergete la basetta finché non vedete che il rame circostate le piste si sia sciolto totalmente (se prolungate troppo i tempi verrà sciolto anche il rame sotto il toner che in questo caso funge da copertura per il rame contro l’effetto corrosivo del FeCl₃). Lavate la basetta e bucate con un trapano (preferibilmente a colonna) per realizzare i terminali dei componenti. Infine se volete potete rimuovere il toner fatelo con dell’acetone (se lo lasciate funge da protezione contro l’ossido).
3) Il terzo metodo avviene tramite fotoincisione. È simile al secondo metodo per la parte finale. Permette di fare un lavoro molto più preciso ma è più impegnativo e delicato specialmente se non avete gli strumenti adatti come il bromografo (con i tempi giusti di esposizione), dunque se non siete esperti, vi consiglio di usare il secondo metodo o il primo. (per maggiori informazioni contattatemi pure).
Alla fine quando avrete il PCB pronto, potete applicare uno strato di Solder Mask (la copertura spesso verde che si usa sui PCB professionali), in modo da proteggere la basetta. Ci sono casi in cui il circuito per problemi di dimensioni o complessità, è disposta su due strati di rame (o di più) opposti alla tavola di vetronite. In tal caso le piste su uno strato si interrompono e attraverso un foro sulla basetta e un “conduttore passante”, essa riprende sull’altra facciata (per questo nella foto ci sono 2 strati di rame).
Ci sarebbe un eventuale quarto metodo casalingo ma molto più grezzo, quello di utilizzare una tavoletta millefori, composta appunto da tanti fori nei quali inserite i componenti e dal lato di sotto create le connessioni con ponti di fili o stagno.
Infine bisogna saldare i componenti sul PCB. (In alcuni circuiti invece si usa la saldatura per SMD o saldatura superficiale nei quali i componenti si saldano direttamente sul lato piste. Tale tecnica richiede buona esperienza)
Il risultato sarà questo (io non ho usato il Solder Mask)
Potete montare la basetta sul resto del robottino realizzando dei buchi sul PCB in modo da farlo scendere attraverso i 4 distanziatori dei ponti (attenzione a non forare dove ci sono le piste). A questo punto abbiamo finito tutta la parte fisica del robot.
***ATTENZIONE i pad 29 e 33 devono essere collegati tra loro dalla faccia componenti tramite un cavetto ponte. Lo stesso Vale per i pad 30-32***
Programma
La parte che ci rimane è probabilmente la più difficile di un robot. Considerate che ciò che abbiamo fatto finora senza un programma è solo un giochino da bambini senza utilità; bisogna realizzare un codice da caricare sui PIC. Un robot potrebbe essere bello esteticamente ma ciò che colpisce è ciò che sa fare e a mio parere gran parte dipende dal (o dai) programmatore/i.
La prima cosa da fare è avere le idee chiare su ciò che vogliamo che faccia e dunque: deve procedere in linea dritta finché non trova un ostacolo, dopodiché girare verso il lato in cui il prossimo ostacolo è più lontano. Passiamo a fare un diagramma di flusso per capire meglio il concetto e per aiutare poi la realizzazione del codice.
Materiale elettronico:
- PICkit2 o il nuovo PICkit3 (o compatibili);
- socket per PIC (facoltativo);
- Mikrobasic (se volete modificare il mio codice);
- ovviamente i 2 pic (già montati sul PCB);
- un pc
Alla fine del documento troveret i codici che ho usato, da inserire nel PIC16F877A e nel PIC12F675.
Il PIC principale, il PIC16F877A, si occupa di tutto il sistema (scansione distanze, movimenti delle ruote, gestione display, gestione PIC12F675) tranne che il movimento del servo che è gestito dal PIC12F675.
La distanza degli oggetti è misurata tramite il sensore a ultrasuoni (HC-SR04). Dal pic si invia un segnale al modulo che inizia la misura e quando finisce ritorna un altro segnale al PIC indicando la fine. Il modulo è composto da un “altoparlante” e un “microfono”. Si invia il segnale (trigger) al modulo, che risponde con un treno di onde da 40 MHz dall’altoparlante e si mette in attesa finché il treno di onde, non rimbalza contro un oggetto e viene intercettato dal microfono del modulo. Il sensore reinvia un segnale al PIC indicando la fine della scansione. Sapendo che la velocità del suono nell’aria è circa 340 m/s e che secondo le leggi della cinematica, s=v*t ovvero lo spazio è uguale al prodotto tra velocità (espressa in metri al secondo) e tempo (espresso in s), usiamo tale espressione per calcolare lo spazio percorso dal suono in un dato intervallo di tempo a una specifica velocità (340 m/s).
I motori sono gestiti tramite la tecnica PWM in modo da poter regolare la velocità. Secondo questa guida il robottino non può muoversi indietro, tuttavia basta aggiungere un ponte a H prima dei motori al posto del singolo MOSFETe con qualche piccola modifica al codice potete far andare il robot indietro.
Il codice che ho postato è testato e funzionante, pertanto basta caricare il codice sul PIC. Nel caso doveste modificare qualunque cosa (anche il raggio delle ruote) dovete obbligatoriamente modificare il codice secondo le vostre esigenze. Se non siete pratici, vi sconsiglio di modificare il codice o l’hardware perché potreste trovarvi in difficoltà.
Il codice è composto da diverse sezioni.
La prima parte è quella in cui si dichiarano le variabili. Ci sono quelle per l’utilizzo del display LCD e quelle che useremo per la gestione dei dati. Ci sono 5 canali di comunicazione tra LCD e PIC16F877A. Dalla parte LCD abbiamo le porte: RS, EN, D4, D5, D6, D7; che sono rispettivamente collegate con le porte RB2, RB3, RB4, RB5, RB6, RB7 del PIC.
Nella seconda inizializziamo il PIC. Per farlo specifichiamo quali saranno le porte di input, quali di output, quali entrate saranno digitali e quali analogiche, si settano i timer e i moduli per il PWM (Pulse Width Modulation). Nel codice ho commentato ogni riga.
La terza parte contiene tutte le SUB-PROCEDURES ovvero le funzioni che saranno chiamate dal corpo del programma e che eseguono una serie di azioni. In effetti, l’init main usata in questo codice per inizializzare il PIC è già un sub-procedure ma ho ritenuto meglio separarla per una questione di comprensione.
Le sub che ho usato eseguono diverse azioni. Una si occupa di far avanzare il robottino attivando contemporaneamente entrambi i motori. I numeri tra parentesi sono per il PWM perché i motori non vengono semplicemente “accesi”, ma gestiti col PWM per regolare le velocità. Ciò mi è servito per compensare i difetti meccanici del robottino come la diversa dimensione delle ruote, e campanatura o convergenza (il robottino non andava dritto, per cui ho dovuto dare più potenza a una ruota).
Sub procedure ahead PWM1_Start() ' start PWM1 PWM2_Start() ' start PWM2 PWM1_Set_Duty(255) PWM2_Set_Duty(215) delay_ms(500) end sub
C’è una sub che ferma il robottino
sub procedure mantain PWM1_Set_Duty(0) PWM2_Set_Duty(0) delay_ms(20) end sub
Quella che lo fa girare a sinistra e quella che lo fa girare a destra. Da notare, che il robottino attiva la ruota opposta al lato di sterzata, per un tempo X che lo permetta di girare di 90°, per cui compie una curva perfetta a sinistra o a destra. Per il calcolo del tempo si devono considerare il raggio delle ruote e altri piccoli fattori. Per ottenere tale valore o si procede per via sperimentale o matematicamente. Il mio consiglio se non siete “pratici” con la fisica è di farlo provando altrimenti dovete essere certi che la ruota sia perfetta, dovete sapere il valore preciso della velocità di rotazione dell’asse del motore e avere sempre la stessa tensione sul motore altrimenti cambia velocità. Montato il tutto, partite con questi valori e lo fate girare poi mano mano perfezionate i valori del PWM, affinché vada dritto.
sub procedure turnleft PWM1_Set_Duty(0) PWM2_Set_Duty(255) delay_ms(1250) PWM2_Set_Duty(0) delay_ms(200) end sub sub procedure turnright PWM1_Set_Duty(255) PWM2_Set_Duty(0) delay_ms(1250) PWM1_Set_Duty(0) delay_ms(200) end sub
Le 2 routine che si occupano di comandare l’altro PIC, il PIC12F675, indica che se la porta 5 è portata a livello alto (=1 o 5V o abilitate) e le altre a livello basso (=0 o 0V o disabilitate), deve posizionare il servo al centro, lo stesso vale con la porta 6 per posizionarlo a destra e per la porta 7 per posizionarlo a sinistra. Avrei potuto fare il tutto in modo più diretto con un solo PIC, ma non volevo complicare troppo le cose, altrimenti avrei dovuto usare un altro modulo PWM del PIC e sarebbe servito solamente a muovere il servo. Dal momento che il PIC non controllava più il servo per gestire le altre funzioni del robot, il servo poteva muoversi liberamente perché non era più controllato dal PIC, pertanto usandone un altro ho potuto usare un controller tutto dedicato al servo. Un’alternativa poteva essere quella di far girare il servo costantemente da un lato a un altro e misurare costantemente le distanze. Il robot dovrebbe in quel caso aggiustare la sua posizione costantemente. Evitando di dover fare curve di 90°.
La quarta ed ultima parte è il vero e proprio corpo del programma.
Abbiamo la chiamata a due funzioni;
main: mantain InitMain()
- la preparazione del display;
- l’azzeramento delle variabili;
Il commando di mettere il servo al centro;
servo_center
La procedura che misura la distanza degli oggetti, le mostra sul display e lo assegna alla variabile.
distance2 while true PORTb.1 = 1 ' Trigger the module for 15usec delay_us(15) PORTb.1 = 0 while PORTA.4 = 0 ' Waiting for the echo nop wend TMR1L = 0 ' Clear the TMR1L value TMR1H = 0 ' Clear the TMR1H value T1_start while PORTA.4 = 1 ' While echo received, let the TMR1 count wend T1_stop duration_us = TMR1H << 8 + TMR1L distance1 = duration_us * 0.1724 distance2 = distance1 - 10 WordToStr(distance2, length_mm) Lcd_Out(2,1,"Distance->") ' Write text in 2nd row Lcd_Out(2,11,length_mm) ' Write text in 2nd row Lcd_Out(2,15,"mm") ' Write text in 2nd row
Una delle parti più importanti del programma è l’if che segue. Il ruolo di tale funzione è confrontare la distanza dell’oggetto con un valore campione (nel nostro caso 40cm, in modo da permettere al robottino di fermarsi e poi fare manovra), nel caso la distanza sia inferiore o uguale al valore dato, si deve fermare.
if distance2<400 then 'STOP IF ROBOT GOES UNDER THE SECURITY LINE (40CM) mantain duration_us=0 distance1=0
Verificatasi la condizione di validità dell’if, il PIC principale invia un segnale al PIC12F675 affinché posizioni il servo a sinistra in modo da poter misurare la distanza a sinistra del robottino.
'*********************************LEFT************************************ Lcd_Out(1,1,"Distance left ") ' Write text in 1st row servo_left delay_ms(1000) PORTb.1 = 1 ' Trigger the module for 15usec delay_us(15) PORTb.1 = 0 while PORTA.4 = 0 ' Waiting for the echo nop wend TMR1L = 0 ' Clear the TMR1L value TMR1H = 0 ' Clear the TMR1H value T1_start while PORTA.4 = 1 ' While echo received, let the TMR1 count wend T1_stop duration_us = TMR1H << 8 + TMR1L distance1 = duration_us * 0.1724 distanceleft = distance1 - 10 WordToStr(distanceleft, length_mm) Lcd_Out(2,1,"Distance->") ' Write text in 2nd row Lcd_Out(2,11,length_mm) ' Write text in 2nd row Lcd_Out(2,15,"mm") ' Write text in 2nd row
Analogamente si esegue la scansione a destra.
Infine il servo si mette al centro e il robottino prende un’altra importante decisione, quella di andare a sinistra o a destra in base al lato in qui la presenza di un ostacolo è a una distanza maggiore.
'******************************END CHECK********************************* if distanceleft>distanceright then 'COMPARE THE LEFT AND RIGHT VARIABLES turnleft 'AND GO WHERE OBJECTS ARE FARTHER else turnright end if else ahead 'GO AHEAD IF ROBOT IS OVER SECURITY LINE (10cm) end if delay_ms(100) 'PAUSE distanceleft=0 distanceright=0 wend end.
il codice del PIC12F675 si trova sempre nella documentazione completa, è molto semplice ed è già commentato.
Caricamento codici sui PIC
Una volta scritti i codici, dobbiamo caricarli sui PIC. Ci sono 2 modi per farlo. Entrambi richiedono un apparecchio chiamato programmatore con il suo rispettivo programma e compilatore. La maggior parte dei PIC della MICROCHIP è compatibile con il PICkit2 un famoso programmatore a mio parere davvero eccezionale! Nel caso non vogliate spendere cifre elevate, potete comprare dei cloni o dispositivi compatibili o addirittura crearvelo voi stessi (ci sono tantissime guide online)! La funzione di un programmatore è di caricare un file di tipo .hex (che nel nostro caso lo genera stesso il Mikrobasic al momento della compilazione) da un pc (o nel caso del PICkit2 con memoria interna dalla memoria stessa), su un PIC.
Il primo metodo
Consiste nel collegare il PICkit 2 a un piccolo dispositivo chiamato “programming socket” (costa circa 7-8 euro), che serve come adattatore per il PIC affinché si possa collegare al programmatore. Installato il programma del PiCkit 2, collegato il PiCkit2 al pc, il socket al PiCkit2 e il PIC al socket (attenzione a come collegate il PIC al socket: un collegamento sbagliato potrebbe bruciarci il PIC, il collegamento è diverso per ogni socket), rimane solamente quello di caricare il file .hex.
Aprite il programma del programmatore fate importa (o carica) hex e poi premete su scrivi.
Il secondo metodo
Più economico e veloce ma richiede una preparazione. Si usa la tecnica dell’ ICSP (In Circuit Serial Programming-programmazione seriale nel circuito) che permette di programmare direttamente diversi integrati tra cui i microcontrollori PIC (anche se ho sentito che la tecnica del primo metodo è l’ICSP ritengo che una vera programmazione in circuito debba essere fatta senza dover smontare il PIC dal circuito). Per fare ciò dobbiamo avere un circuito (su cui è presente il PIC da programmare) predisposto per usare questa tecnica. Basta collegare il programmatore a una porta presente sul circuito, collegata al PIC in modo particolare. Ho già predisposto il circuito del nostro robottino di tale porta per qui si può usare, anche se io nel mio progetto non l’ho fatto, bastava semplicemente forare il PCB nei pad della porta e saldare uno strip maschio.
Conclusioni
Spero di essere stato chiaro sintetico ma completo. Se avete dubbi, potete tranquillamente scrivermi. A breve scriverò una guida anche per la creazione di una CNC, e spero di poter continuare a scrivere altre guide come questa. Ringrazio inoltre i diversi forum di elettronica e informatica come grix e electroyou per la mano che mi danno, e senza dubbio Elettronica Open Source per lo spazio per la pubblicazione
***Ecco il link al mio drive***
Buon Lavoro e alla prossima guida!!!
MDN NGenAir
Uno studente di liceo? E hai fatto tutto per fatti tuoi? Bravo ragazzo!
Sarebbe stato meglio mettere uno schema in questo articolo e magari l’immagine non rende giustizia ma meriti tanti complimenti.
Quanti anni hai? 15? 17?
La ringrazio signore. Si ho 17 anni la ringrazio anche del consiglio. Nell'eventualità c'è lo schema fatto con EagleCad e i codici nell'allegato. E' una passione che coltivo da anni e che spero di portare avanti.
Giorgio, mi raccomando, trattamelo bene che è appena arrivato…. 🙂
Si, lo schema sarebbe servito, lo avevamo valutato, e hai ragione anche sull’immagine.
Tuttavia, c’è da valutare un aspetto non trascurabile della faccenda: abbiamo dato spazio ad un ragazzo in gamba che può e deve migliorare ancora e ancora.
Nei suoi prossimi articoli andrà sempre meglio e sarà sempre più professionale.
Dagli tempo 😉
E nel frattempo, auguriamoci tutti che trovi lo spazio e gli apprezzamenti che merita tramite social media così da sfidare seriamente chi è in testa…
In bocca al lupo 😉
Si e debbo un grande grazie a te altrimenti mi sarei rassegnato subito. Spero di migliorare presto e caricare altre guide che ho già in programma 🙂
Un gran bel lavoro, soprattutto per la tua giovane età.
Mi hai fatto venir in mente quando iniziai a programmare i PIC in assembler.
Ancora complimenti e non perdere questa bella passione.
La ringrazio per l’attenzione e le garantisco che continuerò finchè posso 😉
Io ne stò realizzando uno simile, ho usato:
1) un motorino stepper per le ruote;
2) un motorino stepper per lo sterzo
3) un motorino cc per il movimento del radar
4) il radar a raggi infrarossi, girevole che si ferma in 6 angolazioni diverse
5) frecce direzioni
6) tutto con pic18F4550
7) programmato con mikroC
immagino sia fantastico… quindi è un tre ruote a tre ruote motrici? le frecce servono solo per l’estetica, o sbaglio?… per il linguaggio come avrai notato ho usato il mikrobasic ma sono passato al mikroc di recente
Ancora è incompleto, i motorini provengono da stampanti, uno con relative ruote dentate movimenta l'asse posteriore dove sono attaccate due ruote ricavate dai meccanismi che trascinano i fogli dentro la stampante. Comandato da un L298 a sua volta pilotato dal PIC. Da questa scheda esce un connettore che porta alla scheda che movimenta, sempre con differenziale la ruota di davanti che funge da servosterzo. Per questo stepper ho usato i transistor di media potenza tipo BD139, sempre pilotati dal pic. Mentre il motorino per il radar é in corrente continua quelli dei lettori CD aggiunento altri differenziali e dei contatti di fine corsa piu un encoder ottico per fermarsi nelle sei angolazioni, da dove vengono rivelati gli ostacoli. Come posso pubblicare foto e schemi?
Su questo link ho caricato gli schemi domani faccio le foto
http://500px.com/Giovann01173312
Su questo link potete vedereil video in formato avi:
https://dl.dropboxusercontent.com/u/58451782/robot%20Giovanni%20Urso.avi
scusami ma il collegamento usb per cos’è?
Ho predisposto. Potrà servire per dare dei dati come velocità, ecc..
Guanti e occhiali? Non dimenticate le mascherine…
Quando dici che c’è un quarto metodo casalingo utilizzando la millefori, ti farei osservare che il metodo non è l’ultima spiaggia. Anzi. E peraltro mette a dura prova l’abilità di chi lo usa.