Salve a tutti
mi sono iscritta da qualche giorno perchè ho iniziato ad utilizzare Arduino Yun per un progetto.
Ho un paio di difficoltà e mi trovo in balia di un paio di dubbi.
Ho scaricato l'IDE di Arduino, fatto la configurazione del mio Yun ed ho anche impostato Yun come AP.
L'idea generale è quella di controllare lo scatto via Wifi utilizzandone la funzione della mia reflex. Scaricata la libreria ptp ed importata nell'IDE, mi ritrovo a doverla utilizzare all'interno del mio sketch di prova (ho voluto iniziare con una prova di semplice scatto), ma non ho idea di come iniziare.
Ho già fatto in passato un progettino semplice con Yun, ma che non prevedeva nulla di tutto ciò.
Adesso, mi rendo conto di avere un po' le idee confuse, che non riescono a schiarire neanche i tanti tutorial in rete.
Sapreste darmi delle dritte riguardo l'utilizzo della ptp.h e come inviare i comandi dal pc ad Arduino e da Arduino alla fotocamera tramite wifi?
Grazie in anticipo e scusate se sono stata confusionaria!
Buonasera,
essendo il tuo primo post, nel rispetto del regolamento (… punto 13, primo capoverso), ti chiedo cortesemente di presentartiQUI (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con MOLTA attenzione il su citato REGOLAMENTO ... Grazie.
Guglielmo
P.S.: Qui una serie di link utili, NON necessariamente inerenti alla tua domanda: - serie di schede by xxxPighi per i collegamenti elettronici vari: ABC - Arduino Basic Connections - pinout delle varie schede by xxxPighi: Pinout - link generali utili: Link Utili
... però ... ragionando, è vero anche che il micro dalla parte Arduino è un ATmega32U4 e quindi in grado di gestire la USB come la Leonardo :
C'è da verificare se con la libreria ptp (... quale stai usando? Metti un link e dicci anche CHE fotocamera vuoi controllare) si riesce a parlare con la fotocamera tramite la USB lato Arduino
gpb01:
Buonasera,
essendo il tuo primo post, nel rispetto del regolamento (… punto 13, primo capoverso), ti chiedo cortesemente...
Grazie, non trovavo la discussione e mi sono appena presentata
gpb01: Dopo che avrai fatto quanto suddetto ...
... ho qualche dubbio che ci riuscirai con la Yún ... : ...
Anzitutto, grazie per la celerissima risposta. Già da questa ho capito da dove derivano tutte le mie confusioni dal momento che non riuscivo a fare nulla di quanto la mia testa pensava.
Dunque, adesso mi sorge una domanda: potrei allora riuscirci tramite USB? :
Arduino:1.8.5 (Windows 10), Scheda:"Arduino Yún"
In file included from C:\Users\Clary\Documents\Arduino\libraries\Arduino_Camera_Control-master/ptp.h:27:0,
from C:\Users\Clary\Documents\Arduino\libraries\Arduino_Camera_Control-master/canoneos.h:21,
from sketch\eosconsole.h:8,
from sketch\EOSConsole.cpp:1:
C:\Users\Clary\Documents\Arduino\libraries\Arduino_Camera_Control-master/ptpcallback.h:31:8: error: redefinition of 'struct MultiValueBuffer'
struct MultiValueBuffer
^
In file included from C:\Users\Clary\Documents\Arduino\libraries\USB_Host_Shield_2.0-master/Usb.h:38:0,
from C:\Users\Clary\Documents\Arduino\libraries\Arduino_Camera_Control-master/ptp.h:24,
from C:\Users\Clary\Documents\Arduino\libraries\Arduino_Camera_Control-master/canoneos.h:21,
from sketch\eosconsole.h:8,
from sketch\EOSConsole.cpp:1:
C:\Users\Clary\Documents\Arduino\libraries\USB_Host_Shield_2.0-master/parsetools.h:23:8: error: previous definition of 'struct MultiValueBuffer'
struct MultiValueBuffer {
^
In file included from C:\Users\Clary\Documents\Arduino\libraries\Arduino_Camera_Control-master/ptp.h:27:0,
from C:\Users\Clary\Documents\Arduino\libraries\Arduino_Camera_Control-master/canoneos.h:21,
from sketch\eosconsole.h:8,
from sketch\EOSConsole.cpp:1:
C:\Users\Clary\Documents\Arduino\libraries\Arduino_Camera_Control-master/ptpcallback.h:37:7: error: redefinition of 'class MultiByteValueParser'
class MultiByteValueParser
^
In file included from C:\Users\Clary\Documents\Arduino\libraries\USB_Host_Shield_2.0-master/Usb.h:38:0,
from C:\Users\Clary\Documents\Arduino\libraries\Arduino_Camera_Control-master/ptp.h:24,
from C:\Users\Clary\Documents\Arduino\libraries\Arduino_Camera_Control-master/canoneos.h:21,
from sketch\eosconsole.h:8,
from sketch\EOSConsole.cpp:1:
C:\Users\Clary\Documents\Arduino\libraries\USB_Host_Shield_2.0-master/parsetools.h:28:7: error: previous definition of 'class MultiByteValueParser'
class MultiByteValueParser {
^
In file included from C:\Users\Clary\Documents\Arduino\libraries\Arduino_Camera_Control-master/ptp.h:27:0,
from C:\Users\Clary\Documents\Arduino\libraries\Arduino_Camera_Control-master/canoneos.h:21,
from sketch\eosconsole.h:8,
from sketch\EOSConsole.cpp:1:
C:\Users\Clary\Documents\Arduino\libraries\Arduino_Camera_Control-master/ptpcallback.h:57:7: error: redefinition of 'class ByteSkipper'
class ByteSkipper
^
In file included from C:\Users\Clary\Documents\Arduino\libraries\USB_Host_Shield_2.0-master/Usb.h:38:0,
from C:\Users\Clary\Documents\Arduino\libraries\Arduino_Camera_Control-master/ptp.h:24,
from C:\Users\Clary\Documents\Arduino\libraries\Arduino_Camera_Control-master/canoneos.h:21,
from sketch\eosconsole.h:8,
from sketch\EOSConsole.cpp:1:
C:\Users\Clary\Documents\Arduino\libraries\USB_Host_Shield_2.0-master/parsetools.h:50:7: error: previous definition of 'class ByteSkipper'
class ByteSkipper {
^
In file included from C:\Users\Clary\Documents\Arduino\libraries\Arduino_Camera_Control-master/ptp.h:27:0,
from C:\Users\Clary\Documents\Arduino\libraries\Arduino_Camera_Control-master/canoneos.h:21,
from sketch\eosconsole.h:8,
from sketch\EOSConsole.cpp:1:
C:\Users\Clary\Documents\Arduino\libraries\Arduino_Camera_Control-master/ptpcallback.h:92:7: error: redefinition of 'class PTPListParser'
class PTPListParser
^
In file included from C:\Users\Clary\Documents\Arduino\libraries\USB_Host_Shield_2.0-master/Usb.h:38:0,
from C:\Users\Clary\Documents\Arduino\libraries\Arduino_Camera_Control-master/ptp.h:24,
from C:\Users\Clary\Documents\Arduino\libraries\Arduino_Camera_Control-master/canoneos.h:21,
from sketch\eosconsole.h:8,
from sketch\EOSConsole.cpp:1:
C:\Users\Clary\Documents\Arduino\libraries\USB_Host_Shield_2.0-master/parsetools.h:83:7: error: previous definition of 'class PTPListParser'
class PTPListParser {
^
In file included from C:\Users\Clary\Documents\Arduino\libraries\USB_Host_Shield_2.0-master/Usb.h:29:0,
from C:\Users\Clary\Documents\Arduino\libraries\Arduino_Camera_Control-master/ptp.h:24,
from C:\Users\Clary\Documents\Arduino\libraries\Arduino_Camera_Control-master/canoneos.h:21,
from sketch\eosconsole.h:8,
from sketch\EOSConsole.cpp:1:
C:\Users\Clary\Documents\Arduino\libraries\USB_Host_Shield_2.0-master/message.h:44:23: error: expected unqualified-id before 'void'
#define Notify(...) ((void)0)
^
C:\Users\Clary\Documents\Arduino\libraries\Arduino_Camera_Control-master/ptpdebug.h:24:6: note: in expansion of macro 'Notify'
void Notify(const char* msg);
^
C:\Users\Clary\Documents\Arduino\libraries\USB_Host_Shield_2.0-master/message.h:44:23: error: expected ')' before 'void'
#define Notify(...) ((void)0)
^
C:\Users\Clary\Documents\Arduino\libraries\Arduino_Camera_Control-master/ptpdebug.h:24:6: note: in expansion of macro 'Notify'
void Notify(const char* msg);
^
C:\Users\Clary\Documents\Arduino\libraries\USB_Host_Shield_2.0-master/message.h:44:23: error: expected ')' before 'void'
#define Notify(...) ((void)0)
^
C:\Users\Clary\Documents\Arduino\libraries\Arduino_Camera_Control-master/ptpdebug.h:24:6: note: in expansion of macro 'Notify'
void Notify(const char* msg);
^
In file included from C:\Users\Clary\Documents\Arduino\libraries\Arduino_Camera_Control-master/ptp.h:28:0,
from C:\Users\Clary\Documents\Arduino\libraries\Arduino_Camera_Control-master/canoneos.h:21,
from sketch\eosconsole.h:8,
from sketch\EOSConsole.cpp:1:
C:\Users\Clary\Documents\Arduino\libraries\Arduino_Camera_Control-master/ptpdebug.h:43:6: error: redefinition of 'template<class T> void PrintHex2(Print*, T)'
void PrintHex2(Print *prn, T val)
^
In file included from C:\Users\Clary\Documents\Arduino\libraries\USB_Host_Shield_2.0-master/Usb.h:28:0,
from C:\Users\Clary\Documents\Arduino\libraries\Arduino_Camera_Control-master/ptp.h:24,
from C:\Users\Clary\Documents\Arduino\libraries\Arduino_Camera_Control-master/canoneos.h:21,
from sketch\eosconsole.h:8,
from sketch\EOSConsole.cpp:1:
C:\Users\Clary\Documents\Arduino\libraries\USB_Host_Shield_2.0-master/printhex.h:57:6: note: 'template<class T> void PrintHex2(Print*, T)' previously declared here
void PrintHex2(Print *prn, T val) {
^
In file included from C:\Users\Clary\Documents\Arduino\libraries\Arduino_Camera_Control-master/canoneos.h:21:0,
from sketch\eosconsole.h:8,
from sketch\EOSConsole.cpp:1:
C:\Users\Clary\Documents\Arduino\libraries\Arduino_Camera_Control-master/ptp.h:85:9: error: 'EP_RECORD' does not name a type
EP_RECORD epRecord[ 4 ];
^
In file included from C:\Users\Clary\Documents\Arduino\libraries\Arduino_Camera_Control-master/canoneos.h:21:0,
from sketch\eosconsole.h:8,
from sketch\EOSConsole.cpp:1:
C:\Users\Clary\Documents\Arduino\libraries\Arduino_Camera_Control-master/ptp.h: In member function 'void PTP::Setup()':
C:\Users\Clary\Documents\Arduino\libraries\Arduino_Camera_Control-master/ptp.h:123:31: error: 'MAX3421E' has no member named 'powerOn'
void Setup() { Max.powerOn(); };
^
In file included from sketch\EOSConsole.cpp:1:0:
sketch\eosconsole.h: At global scope:
sketch\eosconsole.h:12:23: error: 'Q_USER_SIG' was not declared in this scope
MENU_SELECT_SIG = Q_USER_SIG,
^
sketch\eosconsole.h:12:23: note: suggested alternative:
In file included from C:\Users\Clary\Documents\Arduino\libraries\qep/qep_port.h:49:0,
from sketch\eosconsole.h:6,
from sketch\EOSConsole.cpp:1:
C:\Users\Clary\Documents\Arduino\libraries\qep/qep.h:583:14: note: 'QP::Q_USER_SIG'
enum_t const Q_USER_SIG = static_cast<enum_t>(4);
^
In file included from sketch\EOSConsole.cpp:1:0:
sketch\eosconsole.h:17:1: error: expected class-name before '{' token
{
^
sketch\eosconsole.h:22:1: error: expected class-name before '{' token
{
^
sketch\eosconsole.h:27:1: error: expected class-name before '{' token
{
^
sketch\eosconsole.h:38:12: error: 'QState' does not name a type
static QState Initial(EOSConsole *me, QEvent const *e);
^
sketch\eosconsole.h:39:12: error: 'QState' does not name a type
static QState Inactive(EOSConsole *me, QEvent const *e);
^
sketch\eosconsole.h:40:12: error: 'QState' does not name a type
static QState Active(EOSConsole *me, QEvent const *e);
^
sketch\eosconsole.h:41:12: error: 'QState' does not name a type
static QState MainMenu(EOSConsole *me, QEvent const *e);
^
sketch\eosconsole.h:42:12: error: 'QState' does not name a type
static QState ChangeSettingsMenu(EOSConsole *me, QEvent const *e);
^
sketch\eosconsole.h:43:12: error: 'QState' does not name a type
static QState ChangeApertureMenu(EOSConsole *me, QEvent const *e);
^
sketch\eosconsole.h:44:12: error: 'QState' does not name a type
static QState ChangeShutterSpeedMenu(EOSConsole *me, QEvent const *e);
^
sketch\eosconsole.h:45:12: error: 'QState' does not name a type
static QState ChangeWBMenu(EOSConsole *me, QEvent const *e);
^
sketch\eosconsole.h:46:12: error: 'QState' does not name a type
static QState ChangePStyleMenu(EOSConsole *me, QEvent const *e);
^
sketch\eosconsole.h:47:12: error: 'QState' does not name a type
static QState ChangeExpCompMenu(EOSConsole *me, QEvent const *e);
^
sketch\eosconsole.h:48:12: error: 'QState' does not name a type
static QState ChangeIsoMenu(EOSConsole *me, QEvent const *e);
^
sketch\eosconsole.h: In constructor 'EOSConsole::EOSConsole()':
sketch\eosconsole.h:33:11: error: class 'EOSConsole' does not have any field named 'QHsm'
: QHsm((QStateHandler)&EOSConsole::Initial)
^
sketch\eosconsole.h:33:17: error: 'QStateHandler' was not declared in this scope
: QHsm((QStateHandler)&EOSConsole::Initial)
^
sketch\eosconsole.h:33:17: note: suggested alternative:
In file included from C:\Users\Clary\Documents\Arduino\libraries\qep/qep_port.h:49:0,
from sketch\eosconsole.h:6,
from sketch\EOSConsole.cpp:1:
C:\Users\Clary\Documents\Arduino\libraries\qep/qep.h:226:18: note: 'QP::QStateHandler'
typedef QState (*QStateHandler)(void * const me, QEvt const * const e);
^
In file included from sketch\EOSConsole.cpp:1:0:
sketch\eosconsole.h:33:32: error: 'Initial' is not a member of 'EOSConsole'
: QHsm((QStateHandler)&EOSConsole::Initial)
^
sketch\EOSConsole.cpp: At global scope:
EOSConsole.cpp:47: error: 'QState' does not name a type
QState EOSConsole::Initial(EOSConsole *me, QEvent const *e)
^
EOSConsole.cpp:52: error: 'QState' does not name a type
QState EOSConsole::Inactive(EOSConsole *me, QEvent const *e)
^
EOSConsole.cpp:62: error: 'QState' does not name a type
QState EOSConsole::Active(EOSConsole *me, QEvent const *e)
^
EOSConsole.cpp:90: error: 'QState' does not name a type
QState EOSConsole::MainMenu(EOSConsole *me, QEvent const *e)
^
EOSConsole.cpp:119: error: 'QState' does not name a type
QState EOSConsole::ChangeSettingsMenu(EOSConsole *me, QEvent const *e)
^
EOSConsole.cpp:151: error: 'QState' does not name a type
QState EOSConsole::ChangeApertureMenu(EOSConsole *me, QEvent const *e)
^
EOSConsole.cpp:187: error: 'QState' does not name a type
QState EOSConsole::ChangeShutterSpeedMenu(EOSConsole *me, QEvent const *e)
^
EOSConsole.cpp:223: error: 'QState' does not name a type
QState EOSConsole::ChangeWBMenu(EOSConsole *me, QEvent const *e)
^
EOSConsole.cpp:259: error: 'QState' does not name a type
QState EOSConsole::ChangeIsoMenu(EOSConsole *me, QEvent const *e)
^
EOSConsole.cpp:295: error: 'QState' does not name a type
QState EOSConsole::ChangePStyleMenu(EOSConsole *me, QEvent const *e)
^
EOSConsole.cpp:331: error: 'QState' does not name a type
QState EOSConsole::ChangeExpCompMenu(EOSConsole *me, QEvent const *e)
^
exit status 1
'QState' does not name a type
Questo report potrebbe essere più ricco di informazioni abilitando l'opzione
"Mostra un output dettagliato durante la compilazione"
in "File -> Impostazioni"
Più che altro mi sembra ci siano conflitti tra le librerie stesse ...
... ci sono metodi dichiarati più volte in librerie differenti ! Sicura che siano tutte compatibili tra di loro? Specie la libreria USB_Host_Shield_2.0 con le altre ...
gpb01:
Più che altro mi sembra ci siano conflitti tra le librerie stesse ...
... ci sono metodi dichiarati più volte in librerie differenti ! Sicura che siano tutte compatibili tra di loro? Specie la libreria USB_Host_Shield_2.0 con le altre ...
Guglielmo
Giusto ieri sera ho risolto il mio problema. Avevo fatto confusione con le librerie da utilizzare.
Ho resettato tutto e ricominciato da zero, aggiungendo all'IDE di Arduino solo le librerie PTP 2.0 e USB_Host_Shield_2.0. Pare che gli errori fossero dovuti proprio a questo.
Adesso, gli unici errori in fase di compilazione sono dovuti al fatto che la versione delle librerie è più vecchia dell'IDE scaricato da me, in quanto dalla versione 1.6 in poi, vengono accettate solo un tipo specifico di variabili costanti.
Mi spiego meglio. L'errore segnalato è del tipo: variable 'lotOfMessages' must be const in order to be put into read-only section by means of '__attribute__((progmem))': const char* lotOfMessages[] PROGMEM = {
ed ho capito da qui ---> 1.6 Frequently Asked Questions · arduino/Arduino Wiki · GitHub (alla terza domanda) cosa fare.
SI, già da un po' di versioni (mi pare dall'IDE 1.6.x) la sintassi di PROGMEM è cambiata e quindi, vecchie librerie che usavano la vecchia sintassi, danno errore.
gpb01:
SI, già da un po' di versioni (mi pare dall'IDE 1.6.x) la sintassi di PROGMEM è cambiata e quindi, vecchie librerie che usavano la vecchia sintassi, danno errore.