77 commenti su “ISArduino – Micro Robot Inseguitore solare con Arduino

    • Certamente, ricordati però che ho dovuto modificarlo manualmente per farlo andare a rotazione continua.
      Qualsiasi servo va bene, io ho usato gi AE09 della AEOLIAN, ma come ti ripeto qualsiasi servo va bene… Anzi quelli un po’ più grossi forse meglio… sono più facili da modificare…
      Ciao!!!

  1. Hi. Your micro robot is great and i want made one, but i have some problem with code. This is my first time i use Arduino mega 2560, and i don’t now were the problem is? When i verifi Arduino report me Error:
    sketch_apr07a.cpp:8:25: error: Narcoleptic.h: No such file or directory
    sketch_apr07a.cpp: In function ‘void loop()’:
    sketch_apr07a:53: error: ‘Narcoleptic’ was not declared in this scope
    If you can help thanks.

    • Dear Niksa,
      you forgot to install/import “Narcoleptic Library”, that you can found here:
      http://code.google.com/p/narcoleptic/
      Anyway the purpose of this part of code is just to save power and is optional.
      If you don’t care about power saving, you can remove from the code the line #9 and change the line:
      Narcoleptic.delay(15);
      with just:
      delay(15);
      Hope this help

    • Figurati, ogni domanda è lecita.
      Effettivamente potrebbe non essere chiarissimo, perchè l’avevo dato per scontato.
      L’alimentazione viene presa direttamente da Arduino, percui l’alimentazione (in questo caso la batteria a 9V) va collegata all’ingresso di Arduino (VIN oppure il connettore DC IN).
      A presto

  2. Ciao, perchè quando carico il programma mi dice:
    4: error: expected constructor, destructor, or type conversion before ‘;’ token
    sketch_jun05a:93: error: expected unqualified-id before numeric constant
    sketch_jun05a:165: error: expected unqualified-id before numeric constant
    sketch_jun05a:173: error: expected unqualified-id before numeric constant
    sketch_jun05a:181: error: expected unqualified-id before numeric constant
    sketch_jun05a:261: error: expected unqualified-id before numeric constant
    devo inserire una costante? se si, mi puoi dire dove?
    Grazie per la risposta.

  3. ciao, sono sempre io :-). Ho comprato un servo monza ssa120m con ingranaggi in metallo, vorrei sapere quale link devo seguire per modificare il servo: il primo, secondo o il terzo?
    Grazie per la risposta e scusa per la domanda un po “banale”.

  4. Segui tutti i link e poi smonta il tuo servo… Alla fine anche se ha gli ingranaggi in metallo sono tutti simili. Il concetto è che va bloccato il potenziometro e scollegato in qualche modo dagli ingranaggi.
    Saluti e a presto

  5. Ciao,come faccio ad inserire il codice all interno dell arduino e non perderlo dopo aver scollegato il cavo USB?Grazie

    • Ciao Tommaso,
      non capisco bene la domanda…
      Quando inserisci il codice in Arduino e poi scolleghi il cavo USB il codice non viene perso, ma rimane memorizzato dentro il microcontrollore dell’Arduino…
      A presto

    • So che esistono servi a rotazione continua a prezzi ragionevoli.
      L’idea di fondo della modifica è per chi eventualmente avesse già dei servi standard.
      A presto

  6. Ciao, come mai quando carico il codice e punto una luce artificiale vicino alle due fotoresistenze il servo si gira di pochi gradi?
    Ho un servo a rotazione a continua.
    Non c’è un modo per dire al servo di continuare a seguire la luce artificiale del telefono?

    • Caro Giacomo,
      teoricamente lo sketch che hai caricato, dovrebbe già funzionare come tu chiedi.
      Come si può vedere dal codice, il tutto è molto semplice: viene letto il valore delle due LDR, e quella con il valore più alto, provoca uno spostamento del servo in quella direzione, finche il valore non torna uguale per entrambe le LDR.
      Il problema può essere quindi legato a diversi fattori:
      1 – Non è stata fatta correttamente la calibrazione del servo (il valore Center che deve far si che il servo rimanga fermo)
      2 – Le fotoresistenze non sono da 20K, e quindi fa aggiustato leggermente il circuito
      3 – Il servo non funziona correttamente
      Dovresti provare innanzitutto a fare la prova che ho effettuato io all’inizio del video, cioè muovere il supporto e vedere se il tutto rimane diretto verso la lucem, poi vedere eventualmente se le due LDR sono girate correttamente (devono puntare a circa 45 gradi, e non dritte altrimenti il tutto non funziona, ed infine modificare lo sketch per visualizzare nella seriale i valori delle fotoresistenze per vedere cosa eventualmente non va.
      Fammi sapere
      A presto

  7. Ciao, ho eseguito passo passo il tutto, nella seriale inoltre vedo i valori delle fotoresistenze, il problema è che il servo non si muove, resta totalmente fermo. Non riesco a capire quale possa essere il problema…

    • Ciao Francesco,
      il problema potrebbe essere il collegamento con il servo…
      L’unico modo per risolvere il problema è… DEBUG, DEBUG e ancora DEBUG!!!
      Passa nella seriale anche il valore di uscita del servo. Se quel valore è corretto allora il problema è proprio il servo!!! 🙂
      A presto

  8. Salve e ciao, mi chiamo Stefano e sono da poco rimasto stregato da Arduino. Ho preso un servo a rotazione continua..proprio questo http://www.youtube.com/watch?v=WFw546YJ3V4&feature=youtu.be e ho lo stesso problema… Googlando ho scoperto che l’alimentazione di arduino via PC non è sufficiente ma ci vorrebbero 4 pile AA in serie (quindi 6V se dico bene) La mia domanda è non è che su uso la pila da 9 V. (nel kit che ho da poco acquistato ho solo l’attacco per quella) brucio tutto?? (viste le specifiche del servo che prende da 4.8 a 6v). Non vedo bene nel tuo video ma usi…un transistor??un mosfet?? che nello schema di fritzing non vedo…
    Grazie per la pazienza
    S.

    • Ciao Gessi,
      credo di aver capito allora il problema…
      Il servo che ho usato io non ha creato problemi, perchè ho alimentato il tutto con alimentazione esterna e non con usb… Nel tuo caso evidentemente viene superato il limite di mA della porta USB del PC.
      Quindi è sufficiente alimentare il utto esternamente, tramite opportuno regolatore di tesnione (quello che vedi nel video)… Praticamente o hai 5v precisi per alimentare il tutto, oppure alimenti a 9v tramite un regolatore di tensione tipo LM7805… Oppure ancora puoi usare 4 pile AA in serie ed alimentare Arduino tramite l’ingresso Vin, e il servo direttamente dall’alimentazione…
      Spero sia tutto chiaro.
      A presto
      Luca

  9. Scusa volevo chiederti se il sevo che hai utilizzato sarebbe in grado di far ruotare anche una piccola cella fotovoltaica?? Inoltre visto che il mio intento sarebbe creare energia solare, vorrei non utilizzare altra energia per far muovere il servo ..secondo te utilizzando una batteria alimentata dallo stesso pannello potrebbe andare come soluzione??

    • Ciao Matteo,
      per quanto riguarda la prima domanda, dovresti vedere le caratteristiche del servo, le dimensioni, la forza e il pesso della cella…
      La seconda domanda invece non la capisco…!!! Immagino che tra il pannello e la batteria ci sia un circuito di carica solare, quindi sui morsetti di uscita del carica ci puoi attaccare quello che vuoi.
      A presto

      • Si scusa mi ero spiegato malissimo, ovviamente ho un circuito di carica solare. Il mio problema era ricaricare ed utilizzare nello stesso tempo la batteria. La batteria dovrebbe alimentare sia arduino, sia un dispositivo esterno, tipo un piccolo mp3. Comunque ho trovato questa shield(http://www.seeedstudio.com/depot/solar-charger-shield-v2-p-914.html?cPath=132_134) che permette contemporaneamente l’utilizzo e la ricarica di una batteria. Speriamo funzioni 🙂

      • Se hai il circuito di carica, puoi tranquillamente utilizzare la stessa batteria per alimentare un dispositivo esterno e Arduino stesso senza problemi…
        In effetti se guardi lo schema dello shield (http://www.seeedstudio.com/wiki/images/1/1f/Solar_Charger_Shield_.pdf) vedrai che c’è semplicemente un booster ed un circuito di carica.
        Quindi se colleghi il circuito di carica alla batteria, e l’uscita della batteria al tuo carico dovresti essere apposto… Eventualmente devi monitorare il voltaggio in modo da staccare il carico quando la batteria è bassa…
        A presto

      • Ah ok..ora semmai guardo se mi conviene comprarlo o no. Senti scusa il disturbo, ma ti volevo fare un’altra domanda. Vorrei fare un inseguitore solare biassale ovvero a due gradi di libertà(https://www.youtube.com/watch?v=KgJiE1hM-yI). Per realizzarlo non credo sia così difficile, credo che basterebbe mettere altre due fotoresistenze per il sensore per l’altro asse di rotazione. Secondo te, è una cosa difficile da realizzare e soprattutto conviene perdere tempo per farlo(in termini di energia prodotta)?? Inoltre Arduino riuscirebbe a far girare tutti e due i servi? Grazie in anticipo, e scusami per tutte le domande che ti sto facendo 🙂

      • Ciao Matteo, certo che è fattibile, perchè non dovrebbe esserlo? Non è una cosa difficile da realizzare ed esistono già bracci meccanici a due assi servocomandati.
        In termini di energia qualcosa guadagni, dipende quanto è grande il pannello ovviamente, ma forse nel caso specifico del tuo caricabatteria solare, non ha molto senso, probabilmente è più l’energia che sprecheresti di quella che guadagni. Per migliorare ulteriormente il progetto e risparmiare energia, ti consiglio di mandare in standby più spesso il servo (fare un refresh invece che ogni secondo, ogni minuto, o ogni 5-10 minuti, magari con un millis). Andrebbe poi messa una fotoresistenza anche dietro (in direzione opposta alle due attuali) in modo che se la luce dietro fosse più alta di quella davanti, si deve girare il tutto di 180 gradi, questo perchè se il sole per un qualche motivo fosse dietro, le due fotoresistenze si confronterebbero tra di loro senza accorgersi che la fonte luminosa più forte non è davanti, rimanendo difatto esattamente a 180 gradi rispetti al sole (Il mio progetto era solo uno spunto di partenza, contiene ovviamente lacune da migliorare).
        Sull’ultima domanda credo non ci sia nessun problema, ricordati solo se il servo è grosso, di prendere l’alimentazione da una fonte esterna e non dal VCC di Arduino.
        A presto

  10. Rieccomi qua…Tutto molto chiaro, ma non vorrei intasarti il post di commenti… potrei cortesemente inviarti via email il mio file fritzing per verificare se è tutto corretto??qui sul sito non riesco a trovare la tua email però!… ho preso il regolatore da te suggerito ma in molti datasheet segnalano la richiesta di condensatori…non vorrei fare danni… ci vanno poi?? mi sembra di vedere che tu non li hai messi..sono molto ansioso di cominciare ad usare il motorino..
    S.

    • Ciao Gessi,
      mandami pure l’email a toggio78 chiocciola gmail punto com.
      Per quanto riguarda i condensatori, si sarebbero da mettere per evitare ripple.
      A presto

  11. Ciao ho concluso il montaggio dell’inseguitore solare, con la luce di una lampadina funziona tutto perfettamente, ma non la luce solare no..i sensori ovviamente li ho posizionati verso l’alto. Mi sa che è un problema dell’irradiazione solare, che è quasi uniforme da tutte le parti!! Hai qualche consiglio da darmi? Grazie in anticipo

    • Certamente,
      anche io ho avuto questo problema inizialmente… Devi direzionare maggiormente i sensori come nella foto… Oppure puoi direzionarli nella stessa identica direzione racchiudendoli dentro un cilindretto nero che li direzionalizzi maggiormente…
      A presto
      Luca

  12. Oggi ho provato a direzionarli in tutti i modi, ma i risultato è abbastanza scarso. Scusa ma usando un cilindretto nero se la luce è laterale i sensori non si accorgerebbero che proviene da lì, no??
    Scusa per il disturbo ,
    Matteo

  13. Salve, ho usato questo progetto modificandolo, così da inseguire il sole su due gradi di libertà. Volevo sapere se è possibile sapere quanto equivale lo spostamento in gradi del servo
    Grazie!

    • Ciao Simone,
      purtroppo non è possibile sapere i gradi perchè il servo a rotazione continua non ti da questa informazione, infatti il servo va in una direzione finché non incontra stabilità tra le due fotoresistenze. Probabilmente puoi risolvere il tutto con un encoder rotativo o un potenziometro.
      A presto

  14. Ciao, ho notato che nel video c’è un transistor di potenza mentre nello schema di montaggio non è presente. Potresti spiegarmi il suo compito nel funzionamento del circuito.
    Se uso delle fotoresistenze da 33-72k invece da te indicate cosa cambia nel mio circuito?
    Grazie.

    • Ciao,
      non è un transistor di potenza, ma semplicemente un regolatore di tensione…
      Siccome il consumo del servo motore è tale da non permettere l’utilizzo direttamente dai 5 volt dell’Arduino Mini Pro, ho utilizzato un regolatore esterno per alimentare il servo…
      Niente di particolare…
      Per quanto riguarda le fotoresistenze, dovrai necessariamente modificare i valori delle resistenze: prova, prova e ancora prova!!! 🙂
      A presto

  15. Ciao scusa di nuovo… sto realizzando un inseguitore come progetto per l’esame di stato seguendo la tua guida qui. Il problema è che non mi funziona come te… Ho usate ArduinoUno , ho provato con servo con rotazione continua e non continua , 2 fotoresistenze da 33-72k con in parallelo di ognuna una resistenza da 51Kohm , 2 resistenze da 4,7Kohm tra le due fotoresistenze e il tuo listato caricato su arduino ma l’insieme non mi funziona. Potresti spiegarmi perchè?? GRAZIE IN ANTICIPO

    • Ciao,
      verifica stampando sulla seriale i valori passati al servo.
      Eventulamente se i valori sono giusti, il server non ha abbastanza corrente… Alimentalo da una sorgente diversa da Arduino.
      Oppure le fotoresistenze non sono posizionate correttamente… Prova comunque a scrivere i valori sulla seriale e vedrai che dovrebbe sistemarsi.
      A presto

  16. Ciao scusa come faccio a scrivere i valori sulla seriale ???

    E poi sullo schermo seriale con arduino collegato al pc mi usciva sempre 1 che non so cosa significhi poi lo ho collegato con un alim entatore esterno e il servo andava bene.

  17. Io alimento arduino con alimentatore esterno da 9v 600mA e va benino solo che il servo non mi fa la ruotazione di 180 gradi ma solo di circa 30 gradi come mai?? grazie e scusa ancora il disturbo

    • Dovrebbe essere sufficiente, se il servo gira solo di 30, la cosa più probabile è che non sia un servo a rotazione continua…
      A presto

  18. Ciao scusami ancora… ma io ho provato a mettere un servo a rotazione continua ma gira senza mai fermasi, cioè come se le fotoresistenze non esistessero…ma ho provato con quello a rotazione non continua ma mi gira solo di 30 gradi circa… le fotoresistenze nn ho trovato quelle da 20k ma da 33k ho messo in parallelo 51k e arrivo cmq a 20k ma non so perche a te funzioni e a me no… cosa puo essere?…

  19. Ciao Toggio, grande progetto 😉 Volevo chiederti una cosa se utilizzo delle fotoresistenze da 1kohm le resistenze normali da quanto dovranno essere ? Grazie

  20. Scusa una domanda, ma non era meglio usare una resistenza da 100Khom, visto che per scegliere il valore della resistenza bisogna fare il partitore di tensione, e con quella da 100 l’uscita torna migliore?

    • Perchè l’uscita torna migliore?
      Io ho provato varie resistenza e quelle erano quelle che più si adattavano al valore delle mie fotoresistenze…
      A presto

    • da i miei calcoli dovrebbe tornare :Tensione al buio: 5v*((100K/(2M+10K))=0.24V
      Tensione alla luce: 5v*((100K/(2K+10K))=4.9V
      Perchè se ho capito bene la fotoresistenza diventa una resistenza di 2 MOhm al buio e 2 KOhm in piena luce. Quindi facendo il partitore viene in quel modo. Se tu avessi invece posizionato la vcc verso R, e la fotoresistenza verso massa, la resistenza da 4.7K sarebbe stata perfetta!! Almeno questo è quello che credo, prova anche te a fare il partitore e dimmi se ti torna uguale a me

      • Tra la teoria e la pratica, spesso le cose sono diverse 🙂
        L’unico consiglio è prova!!!
        Io avevo fatto dei calcoli, e mi veniva diverso da come poi l’ho realizzato, ma alla fine sostituendo le resitenze quasi a caso, alla fine mi veniva tutto ottimale.
        A presto

  21. Ciao,ho tentato di fare il tuo inseguitore di luce con Arduino nano v3.0,ho riscontrato il seguente problema: quando la luce va sopra una fotoresistenza gira continuamente a loop o a destra o a sinistra in base a quale fotoresistenza direziono la luce,mi potresti dire qual’è il problema e come risolverlo? Grazie in anticipo.

    • Verifica attentamente il codice, probabilmente c’è qualcosa di errato.
      Stampa i valori di debug sulla seriale (sensorValue, sensorValue2 e Value): quando la luce è equidistante dalle due fotocellule dovrebbe fermarsi tutto e Value dovrebbe essere a 0.
      Maggiore è la differenza tra sensorValue e sensorValue2, maggiore è la differenza di luce. In situazione di equilibrio la distanza e < 10.
      A presto

  22. Ciao, ho fatto il tuo inseguitore con arduino e dopo qualche modifica ha funzionato benissimo! ora ero sto provando a farlo con arduino mini come il tuo e ho dei problemi a caricare lo sketch attraverso il convertitore USB seriale perché non lo trovo tra le porte seriali(come se non lo avessi collegato)metre ho seguito questo link per farlo http://www.google.it/imgres?imgurl=http://www.logicaprogrammabile.it/wp-content/uploads/2013/01/ArduinoMiniUsbSerial.png&imgrefurl=http://www.logicaprogrammabile.it/programmare-arduino-mini/&h=334&w=622&sz=65&tbnid=4oBvbTq-z9x5jM:&tbnh=64&tbnw=120&prev=/search%3Fq%3Dconvertitore%2Busb%2Bseriale%2Barduino%26tbm%3Disch%26tbo%3Du&zoom=1&q=convertitore+usb+seriale+arduino&usg=__F3PELiZvGx7aanfoRxs8xrlNx_8=&docid=8dk9zKxjYX4ACM&sa=X&ei=fsrdUZaVNYOS4ASW74HIBg&ved=0CGMQ9QEwBQ&dur=329
    sapresti aiutarmi? grazie in anticipo 🙂

  23. Scusa la mia ignoranza ma nel video l’integrato che diciamo spunta dalla basetta breadboard a cosa serve?

  24. ciao..cm va??
    ho una piccola domanada..forse anche stupida!!
    perche dopo aver fatto la differenza tra i due valori letti dividi per 10????mi riesci a spiegare un po nei dettagli?? plllzzz grazie in anticipo!!! 🙂

    • Il regolatore di tensione l’ho usato perchè ho alimentato il tutto a 9V e il regolatore integrato non aveva sufficiente potenza per poter alimentare anche il servo.
      A presto!

  25. bellissimo video …. volevo capire con precisione quali materiali hai usato … e cosa è di preciso una una board Arduino UNO …. scusa delle domande inutili ma mi sono appassionato da poco

    grazie

  26. ciao senti ho provato a caricare il codice nella scheda arduino ma mi fa board at com1 is not available ke può essere ? grazie in anticipo

  27. Ciao, avrei un problema col tuo progetto. L’ho riprodotto nel modo che hai descritto, però quando rileva la luce continua a girare e non si blocca a destra o a sinistra, in pratica se faccio luce su una fotoresistenza gira in un senso, se faccio luce sull’altra gira nell’altro ma, ripeto, non si ferma. Cosa potrebbe essere?

  28. che resistenze posso usare per le fotoresistenze??? e due fotoresistenze diverse si possono usare lo stesso??? grazie in anticipo… 🙂

  29. hello sir i have the same setup for a bigger model, i have the uno board and a bigger continuous servo i used you code removed the energy saving bit as i didn’t have that library and it partially works the motor doesn’t stop completely perfectly, although i changed my center to 90 as you suggested i’m planning to use the motor to touch the outer rim of a turntable, its almost there its my final year project please help sir!!!

Lascia un commento