Go Down

Topic: Arduino per brandeggio pan tilt su linux (Read 3191 times) previous topic - next topic

fildevil

Buongiorno a tutti, mi presento sono Filippo ed ho scoperto da poco il mondo di arduino, per ora solo sul web.

Ho una esigenza, cioè vorrei pilotare un brandeggio tipo questo

http://www.microtelecamere.it/motori-telecamere/rotore-telecamera-brandeggio-pan-tilt-esterno-TA3103.htm

usando Arduino in ambiente linux: la mia idea è di creare una interfaccia web con dei pulsanti e comandare arduino via USB.

Non so se sia possibile, forse dico una fesseria perchè sono inesperto.  :smiley-red: Se qualche anima disponibile può indirizzarmi verso qualche guida o qualche sito in particolare ringrazierei moltissimo.
Ad esempio, ancora non so se la board di Arduino è in grado di erogare direttamente i 12V che occorrono sul motore, o serve un ulteriore controller...

Probabilmente bisognerà programmare qualcosa, magari se c'è qualcuno disponibile, potrei ordinare una commessa  :smiley-mr-green: :smiley-mr-green:

Molte grazie a chi mi darò una mano.
Saluti, Fil

leo72

Ciao e benvenuto.


Buongiorno a tutti, mi presento sono Filippo ed ho scoperto da poco il mondo di arduino, per ora solo sul web.

Ho una esigenza, cioè vorrei pilotare un brandeggio tipo questo

http://www.microtelecamere.it/motori-telecamere/rotore-telecamera-brandeggio-pan-tilt-esterno-TA3103.htm

usando Arduino in ambiente linux: la mia idea è di creare una interfaccia web con dei pulsanti e comandare arduino via USB.

Un'interfaccia web è indipendente  dal SO con cui ti colleghi.
Casomai il discorso è che devi fare la pagina web che risiederà su uno shield ethernet montato sull'Arduino.

Quote

Non so se sia possibile, forse dico una fesseria perchè sono inesperto.  :smiley-red: Se qualche anima disponibile può indirizzarmi verso qualche guida o qualche sito in particolare ringrazierei moltissimo.

Qui aspetta l'intervento di quelli che hanno esperienza nel pilotaggio di motori.

Quote

Ad esempio, ancora non so se la board di Arduino è in grado di erogare direttamente i 12V che occorrono sul motore, o serve un ulteriore controller...

No. Ti serve una fonte esterna.

Quote

Probabilmente bisognerà programmare qualcosa, magari se c'è qualcuno disponibile, potrei ordinare una commessa  :smiley-mr-green: :smiley-mr-green:

Non "probabilmente" ma "sicuramente". Sai programmare?

Quote

Molte grazie a chi mi darò una mano.
Saluti, Fil

Ciao.  ;)

fildevil

Grazie Leo sei stato davvero molto disponibile.

Dal momento che brancolo ancora nel buio, perdonami se chiedo ulteriori informazioni: da quello che mi stai dicendo, non dovrebbe essere possibile comandare il tutto tramite pc per poi trasferire il tutto su un web server linux, tipo creando dei pulsanti che richiamano un comando da inviare alla board ... non so se mi riesco a spiegare.

Quanto alla fonte esterna per l'alimentazione, si tratta di un accessorio di arduino, o di tuttaltra cosa?

Con la programmazione, sarà dura perchè sono praticamente a zero... ma ci si può provare, che dite?

sciorty

Dovresti spiegarti un po' meglio, se vuoi semplicemente controllare i servi dal tuo pc non hai bisogno di un'interfaccia web, basta un programmino che invii dei dati all'arduino connesso alla porta USB(comunicazione seriale). Quindi l'arduino non farebbe altro che intercettare questi messaggi ed agire di conseguenza.
Per far muovere i servi -> http://arduino.cc/en/Tutorial/Sweep Ma devi tener conto del fatto che hai bisogno di un'alimentazione esterna per quei servi.

Se poi vuoi interagire con i servi via web da un'altra piattaforma, non so aiutarti io  :smiley-sweat:

kernak

ciao :)

Quote
usando Arduino in ambiente linux: la mia idea è di creare una interfaccia web con dei pulsanti e comandare arduino via USB.

Quote
Casomai il discorso è che devi fare la pagina web che risiederà su uno shield ethernet montato sull'Arduino.


bhe, dipende...
se arduino resta collegato al sistema linux durante l'utilizzo (ad es, anche ad un sistemino embedded  "semplice" come un piccolo router), può benissimo fare a meno dell'ethernet shield ed utilizzare un web server su linux.
Arduino ed il sistema linux si scambieranno informazioni via seriale.

Quote
da quello che mi stai dicendo, non dovrebbe essere possibile comandare il tutto tramite pc per poi trasferire il tutto su un web server linux, tipo creando dei pulsanti che richiamano un comando da inviare alla board ... non so se mi riesco a spiegare.

certo che è possibile

http://arduino.cc/forum/index.php/topic,111240.0.html

fildevil


ciao :)

Quote
usando Arduino in ambiente linux: la mia idea è di creare una interfaccia web con dei pulsanti e comandare arduino via USB.

Quote
Casomai il discorso è che devi fare la pagina web che risiederà su uno shield ethernet montato sull'Arduino.


bhe, dipende...
se arduino resta collegato al sistema linux durante l'utilizzo (ad es, anche ad un sistemino embedded  "semplice" come un piccolo router), può benissimo fare a meno dell'ethernet shield ed utilizzare un web server su linux.
Arduino ed il sistema linux si scambieranno informazioni via seriale.

Quote
da quello che mi stai dicendo, non dovrebbe essere possibile comandare il tutto tramite pc per poi trasferire il tutto su un web server linux, tipo creando dei pulsanti che richiamano un comando da inviare alla board ... non so se mi riesco a spiegare.

certo che è possibile

http://arduino.cc/forum/index.php/topic,111240.0.html




Grazie a tutti ed anche a Kernak che forse mi sta aprendo la strada...dovrò leggere con la dovuta calma il link segnalato.
Mi spiego meglio, cercherò di essere più chiaro ed esplicito possibile

Abbiamo parlato di sistemi embedd; bene il nocciolo è questo:

http://www.eurowebcamsite.com/it/anemos-camplug-meteoplug/server-webcam-camplug-per-fotocamere-canon.html

uno sheeva server con cui, tramite linux ed un webserver che fa gestire alcuni programmi, si riesce a pilotare una fotocamera per fargli scattare foto ad intervalli regolari.
Lo sheeva ha una porta LAN ed una USB su cui poter mettere anche un hub (infatti si possono gestire fino a 3 fotocamere contemporaneamente)

La mia idea era questa: inserire nel software una implementazione che consentisse di pilotare un brandeggio in modo da orientare la fotocamera nel punto desiderato.
Da qui le mie domande circa la possibilità di lavorare in linux e di pilotare Arduino via USB o (a questo punto) via LAN.... ??
In questo modo, basterebbe aggiungere dei comandi sulla sua interfaccia grafica e pilotare la board... poi l'alimentazione del motore non è un problema.

Dovrò comunque parlare con lo sviluppatore, però l'idea mi sembrava davvero carina e molto utile.

kernak

Quote
Da qui le mie domande circa la possibilità di lavorare in linux e di pilotare Arduino via USB o (a questo punto) via LAN.... ??


L'idea di base è che il web server sul sistema linux gestisce l'interfaccia utente e, attraverso un qualche linguaggio di programmazione (php, python, perl, etc..), vengono inviati ad arduino tramite interfaccia seriale (anche emulata su usb va bene) tutti i comandi necessari al pilotaggio motori o altro.
Quindi un collegamento (seriale o usb) tra arduino ed il sistema linux è necessario.

fildevil

Perfettissimo... allora un primo step, quello della fattibilità è concluso positivamente!

Resterà da capire come inviare i comandi ad Arduino ed il programma da utilizzare...  giusto una cosa da nulla no ???  :smiley-sweat: :smiley-sweat: :smiley-sweat:

kernak

Prima di tutto bisognerebbe capire che sistema linux c'è su quel Camplug che hai linkato...
Devi avere la possibilità, in qualche modo, di "far riconoscere" arduino a linux; che in pratica equivale a dire che nel momento in cui tu colleghi l'usb, su /dev viene creato il device seriale corrispondente.
Su openwrt ad es è necessario installare alcuni moduli del kernel.

Poi...
non ho capito una cosa: intendi modificare il software già presente sul Camplug o scriverne uno tuo?



fildevil




Molte grazie.

La versione di linux dovrebbe essere debian. Da quello che ho capito bisogna installare delle librerie per fargli rinoscere la board, una sorta di driver...

Certamente si dovrà modificare il software già esistente, per svariati motivi: é giá molto avanti e stabile, poi il tipo che lo ha messo a punto é ingamba e credo accoglierà la mia proposta con entusiasmo. Più che altro vorrei capirci anche io qualcosa in modo da potergli sottoporre delle ricerche preliminari e agevolare così il lavoro. Sarebbe bello a questo punto prendere una board ed iniziare a sperimentare...

A proposito, quale hw occorre? E poi l'alimentazione dei motori è gestita a livello di interruttori da arduino, oppure devo prendere altro? Grazie come sempre

kernak

Quote
La versione di linux dovrebbe essere debian. Da quello che ho capito bisogna installare delle librerie per fargli rinoscere la board, una sorta di driver...


sì, servono dei driver

Quote
Sarebbe bello a questo punto prendere una board ed iniziare a sperimentare...


indubbiamente è il primo passo ;)

Quote
A proposito, quale hw occorre?


Oltre ai già citati Arduino, Camplug e pan/tilt, ti servirà un modo per pilotare i motori.
Dentro ai pan/tilt di solito ci sono dei servi, quindi probabilmente non avrai bisogno di un driver, ma se sono a 12V, di una fonte di alimentazione esterna di certo sì.

fildevil

Grazie kernak,


Perdonami la domanda stupida: quale arduino devo prendere? Ho visto che si sono più tipi, sono tutti uguali? Il camplug ce l'ho, il brandeggio lo posso prendere da quel sito, l'alimentazione non é un problema... Dovró solo iniziare a smaneggiare con i driver e con le righe di comando per attivare i servi, sulle quali per ora buio assoluto eheheeh

kernak

Quote
quale arduino devo prendere? Ho visto che si sono più tipi, sono tutti uguali?


No, ovviamente non sono tutte uguali. ma penso che per questo progetto una valga l'altra, non hai esigenze particolari.

L'unica cosa che mi salta subito alla mente è questa (che forse avrai già letto anche sulla discussione che ti ho linkato):
Arduino effettua un reset automatico ad ogni connessione sulla seriale; cosa che ha la sua utilità quando carichi gli sketch dall'ide, ma che devi assolutamente evitare quando comunichi via seriale da un tuo programma, perché altrimenti la comunicazione non avviene in modo corretto.
Con Arduino Uno la soluzione è un condensatore (testato personalmente), con il Duemilanove mi pare una resistenza (non testato), con Leonardo sinceramente non lo so..

Quindi se proprio vuoi comprare l'ultima arrivata, magari documentati prima su questa cosa.

fildevil

Molto bene, allora prenderò una board arduino uno.

Per quanto riguarda il condensatore, dovrò imparare un po di "arduinese" prima di poter replicare...  =( Farò necessariamente appello a qualche schema.

Una volta riconosciuta la board sul sistema sheeva, bisognerà poi scrivere delle righe di comando. C'è qualche ambiente da installare per fare questo? Qualche piccolo "programmare arduino for dummies" ?

Forse saranno richieste audaci, ma utilissime per chi è a secco come me...
Grazie mille.

kernak

Quote
Per quanto riguarda il condensatore, dovrò imparare un po di "arduinese" prima di poter replicare...   Farò necessariamente appello a qualche schema.


Ah, non preoccuparti. È solo un condensatore da 10uF collegato tra i pin gnd e reset di Arduino.

Quote
Una volta riconosciuta la board sul sistema sheeva, bisognerà poi scrivere delle righe di comando. C'è qualche ambiente da installare per fare questo? Qualche piccolo "programmare arduino for dummies" ?


C'è l'ambiente di sviluppo http://arduino.cc/en/Main/Software, da installare non sullo sheeva, ma sul pc su cui programmi. Da lì poi gli sketch verranno caricati su Arduino.

Di guide, tutorial, libri (anche cartacei) ed esempi ne trovi quanti ne vuoi. Ad es, un libro che parte da zero e ti spiega la filosofia di Arduino è "Arduino, la guida ufficiale" di Banzi.
Inoltre, come vedi, dietro c'è una comunità molto attiva e disponibile ;)

Go Up