Salve tutti. Sto usando arduino 2009 Atmega328, con collegato MPU-6050 6-axis accelerometer/gyroscope. Sono alle primissime armi... ho scaricato dalla rete una libreria per controllare il tutto, ma non riesco a farla funzionare! Ovvero quando verifico lo script, mi da errori di compilazione.. Il problema che non capisco è: come faccio a usare gli sketch già compilati che richiamano a librerie? Queste non vanno importate semplicemente nella cartella arduino/libraries?
Ciao
sì, in generale le librerie vanno copiate nel path che hai indicato... se ci dai qualche dettaglio in più (errore, sketch, libreria...) possiamo aiutarti meglio
Ti consiglio di inserire le librerie in una cartella libraries dentro la cartella degli sketch. In questo modo cambiando IDE avrai le librerie aggiuntive sempre disponibili: su Windows di solito il percorso è /Documenti/Arduino/libraries.
Puoi anche inserirle nella cartella libraries dell'IDE ma un domani dovendolo sostituire o volendo cambiare IDE "al volo" queste non saranno disponibili.
Dopo aver copiato le librerie devi riavviare l'IDE in modo che le carichi.
Gli esempi allegati alle librerie li richiami dai menu dell'IDE.
E' molto probabile che la libreria che stai usando non sia stata aggiornata per essere utilizzata con l'IDE più recente. In questo casa hai due soluzioni: installare un IDE precedente --> http://arduino.cc/en/Main/Software --> Previous IDE Versions o cercare una libreria aggiornata. C'è una terza possibilità, ovvero aggiornarti da te la libreria, ma visto che hai detto di essere alle prime armi penso sia da scartare.
Grazie mille... Da jrowberg (Jeff Rowberg) · GitHub ho preso le librerie I2C device library collection for AVR/Arduino or other C++-based MCUs e copiate nella directory /libraries. In i2cdevlib / Arduino / MPU6050 c'è un esempio che mi serve per prendere dimestichezza... (il mio scopo è di avere dei dati grezzi su una camminata...) Ma quando carico l'esempio e lo verifico mi esce questa sequela di errori..
C:\Program Files (x86)\arduino-1.0-windows\arduino-1.0\libraries\lib_MIA\Wire.cpp:24:19: error: twi.h: No such file or directory
C:\Program Files (x86)\arduino-1.0-windows\arduino-1.0\libraries\lib_MIA\Wire.cpp: In member function 'void TwoWire::begin()':
C:\Program Files (x86)\arduino-1.0-windows\arduino-1.0\libraries\lib_MIA\Wire.cpp:60: error: 'twi_init' was not declared in this scope
C:\Program Files (x86)\arduino-1.0-windows\arduino-1.0\libraries\lib_MIA\Wire.cpp: In member function 'void TwoWire::begin(uint8_t)':
C:\Program Files (x86)\arduino-1.0-windows\arduino-1.0\libraries\lib_MIA\Wire.cpp:65: error: 'twi_setAddress' was not declared in this scope
C:\Program Files (x86)\arduino-1.0-windows\arduino-1.0\libraries\lib_MIA\Wire.cpp:66: error: 'twi_attachSlaveTxEvent' was not declared in this scope
C:\Program Files (x86)\arduino-1.0-windows\arduino-1.0\libraries\lib_MIA\Wire.cpp:67: error: 'twi_attachSlaveRxEvent' was not declared in this scope
C:\Program Files (x86)\arduino-1.0-windows\arduino-1.0\libraries\lib_MIA\Wire.cpp: In member function 'uint8_t TwoWire::requestFrom(uint8_t, uint8_t)':
C:\Program Files (x86)\arduino-1.0-windows\arduino-1.0\libraries\lib_MIA\Wire.cpp:83: error: 'twi_readFrom' was not declared in this scope
C:\Program Files (x86)\arduino-1.0-windows\arduino-1.0\libraries\lib_MIA\Wire.cpp: In member function 'uint8_t TwoWire::endTransmission()':
C:\Program Files (x86)\arduino-1.0-windows\arduino-1.0\libraries\lib_MIA\Wire.cpp:115: error: 'twi_writeTo' was not declared in this scope
C:\Program Files (x86)\arduino-1.0-windows\arduino-1.0\libraries\lib_MIA\Wire.cpp: In member function 'virtual size_t TwoWire::write(uint8_t)':
C:\Program Files (x86)\arduino-1.0-windows\arduino-1.0\libraries\lib_MIA\Wire.cpp:144: error: 'twi_transmit' was not declared in this scope
C:\Program Files (x86)\arduino-1.0-windows\arduino-1.0\libraries\lib_MIA\Wire.cpp: In member function 'virtual size_t TwoWire::write(const uint8_t*, size_t)':
C:\Program Files (x86)\arduino-1.0-windows\arduino-1.0\libraries\lib_MIA\Wire.cpp:162: error: 'twi_transmit' was not declared in this scope
In pratica avrei bisogno dei passi da seguire correttamente...
La Libreria Wire fa già parte dell'IDE di Arduino. Se vuoi utilizzare la tua devi includere nella cartella anche i file twi.h e twi.c che trovi dentro /libraries/Wire/Utility.
Però ti consiglio di usare quella già inclusa.
ciao julio,
ma hai fatto un include degli header della libreria che vuoi usare?
Ciao Critical! e grazie per il tempo che mi dedichi...
nella libreria citata nel mio post precedente, provo e eseguire lo sketch MPU6050_raw... ma è già qualche minuto che è in Compiling sketch...
java.lang.NullPointerException
at processing.app.debug.Compiler.execAsynchronously(Compiler.java:326)
at processing.app.debug.Compiler.compile(Compiler.java:182)
at processing.app.Sketch.build(Sketch.java:1569)
at processing.app.Sketch.build(Sketch.java:1546)
at processing.app.Editor$DefaultRunHandler.run(Editor.java:1845)
at java.lang.Thread.run(Thread.java:619)
in pratica: ho una libreria con annesso esempio. Mando in verify lo sketch e lo upload. O no???
Ho fatto alcune prove al volo:
premessa:
-arduino uno
-ide versione 1.0.0
ho scaricato la libreria i2cdevlib e messa nella cartella $ARDUINO_HOME/libraries e ho compilato l'esempio MPU6050_raw ed inizialmente mi dava problemi in compilazione. Li ho risolti spostando i file I2Cdev.h, I2Cdev.m, MPU6050.h e MPU6050.m nella cartella iniziale della libreria ossia: $ARDUINO_HOME/libraries/i2cdevlib/
Ora compila correttamente, l'upload non l'ho provato perché non ho arduino con me.
edit:
sul readme della libreria trovi questa info:
To use the library, just place the I2Cdev .cpp/.h source files and any device library .cpp/.h source files in the same folder as your sketch (or a suitable place relative to your avr-gcc project), and include just the device library headers that you need.
grazie mille critical, sei un signore... mi compila ok e upload va .... MA ecco che a questo punto ti chiedo cospargendomi di umiltà (essendo le prime volte che ci metto mano...) : e ora???
il led mi rimane acceso (=> indica corretta attività, spero...) ma i dati, che suppongo grezzi, dove li scrive???
MA ecco che a questo punto ti chiedo cospargendomi di umiltà (essendo le prime volte che ci metto mano...) : e ora???
Vai tranquillo nessun problema.
Te lo stampa sul serial monitor, in particolare le righe 83-89 nel loop dell'esempio.
Per visualizzare il serial monitor basta che premi il pulsante in alto a destra dell'ide: fai l'upload dello sketch, tieni arduino collegato al pc e premi quel pulsante.
Devi aprire il Serial Monitor. Nell'IDE è l'icona a destra a forma di lente di ingrandimento. Non è la funzione Search.
ok.. per capire se sto andando nella giusta direzione, e se ho installato correttamente il tutto, non è che mi potreste ri-mandare ad un esempio di ciò che potrebbe/dovrebbe apparire?
tipo per farvi capire, le righe "banali" di uno sketch per il controllo del led (acceso/spento per tot tempo) mi funzionano, cioè controllo il led. quindse dopo l'upload clicco su serial ... ??
Non avendo un "MPU-6050 6-axis accelerometer/gyroscope" non so dirti che tipo di dati dovrebbero apparire. Credo usciranno dei numeri, ma quanto questi siano buoni o cattivi non ne ho idea.
PaoloP:
Non avendo un "MPU-6050 6-axis accelerometer/gyroscope" non so dirti che tipo di dati dovrebbero apparire. Credo usciranno dei numeri, ma quanto questi siano buoni o cattivi non ne ho idea.
vale anche per me la stessa cosa. Non so dirti la bontà dei dati.
Ma adesso vedi l'output sul serial?
mi si blocca tutto dopo un po' che stampa caratteri strani.... non vorrei per l'appunto commesso errori in fase di installazione.. tipo ora che attacco arduino a pc cavo usb, mi dice che è connesso un dispositivo sconosciuto... lo deve fare o sarà meglio che re-installi tutto? mi viene il dubbio di non aver correttamente installato i drivers...
In basso nel Serial Monitor c'è la velocità di collegamento.
Controlla che sia la stessa indicata nello sketch in Serial.Begin(xxxxxx);
ho corretto lo sketch. grazie... ora mi stampa numeri ma di continuo senza fermarsi...
devo ri-correggere lo script?
No no è corretto in quanto il codice all'interno del loop dice di stampare sempre i valori.
Se vuoi rallentare per leggere meglio i dati metti un delay di 1 sec prima della chiusura della funziona loop.
delay(1000);
Dopodichè puoi iniziare a scrivere il tuo codice ;).
ok mi torna. Cioè mi appare la scritta di fallita connessione col device!!!
Quindi o non è stato collegato bene o lo script non è corretto per il mio strumento..
julio79:
ok mi torna. Cioè mi appare la scritta di fallita connessione col device!!!Quindi o non è stato collegato bene o lo script non è corretto per il mio strumento..
Non so come aiutarti qua, mi dispiace. Prova a ri-controllare i collegamenti e a fare una ricerca se quel codice va bene per il tuo modulo.
Se posti un'immagine dei collegamenti magari qualcuno ti può essere d'aiuto.