GSM Shield, Arduino mega 2560

sto usando il gms shield http://www.open-electronics.org/arduino-gsm-shield per il sim900 che funziona perfettamente su arduino, quando invece provo a farlo parlare con il mega 2560 non ne vuol sapere, abilitando il debug nel file gsm.h vengono fuori queste due risposte

ho usato per entrambi GSM_GPRSLibrary_AT

GSM Shield testing. (mega) DB:DIFF RESP DB:DIFF RESP DB:DIFF RESP ERROR: SIM900 doesn't answer. Check power and serial pins in GSM.h

GSM Shield testing. (uno) DB:CORRECT BR status=READY OK

il mio shield usa i pin 4/5 e 8/9 se ho letto bene l'header file quindi ci deve essere qualche problema nella diversità tra uno e mega2560 in questi pin, continuo a fare ricerche ma se qualcuno mi sa indirizzare.. sarò grato!

grazie

Luigi

pensandoci forse dipende proprio dai pin 8 e 9 sull'uno e sul mega 2560 sono settati di default in modo diverso? cerco la documentazione......

un pò di news ho visto come funziona la libreria che comanda lo shield GSm ed utilizza i pin 4 e 5 per l'emulazione della seriale con la libreria SoftwareSerial.h da quello che ho capito potrei avere sul mega un problema di interrupt infatti nella librerie che si scaricano da http://code.google.com/p/gsm-shield-arduino/

SoftwareSerial cell; ** **#define _GSM_TXPIN 4 #define GSM_RXPIN 5 - GSM::GSM():cell(_GSM_TXPIN,GSM_RXPIN),_tf(_cell, 10),_status(IDLE){;

spulciando le limitazioni della SoftwareSerial

The library has the following known limitations:

If using multiple software serial ports, only one can receive data at a time. Not all pins on the Mega and Mega 2560 support change interrupts, so only the following can be used for RX: 10, 11, 12, 13, 50, 51, 52, 53, 62, 63, 64, 65, 66, 67, 68, 69 quindi credo che per questo lo scketch non funziona... ora si aprono due possibilità (non posso fare i test quindi ne parlo con voi, ci lavoro nel pomeriggio) spostare i pin GSM RX in un pin della mega che supporta gli interrupt (pensate che funzionerà ?) oppure dato che la mega2560 ha un sacco di seriali hardware usare una di queste, sarebbe più sensato e andrei anche più veloce però perdo tutte le funzionalità delle libreria che corrispondono alla mia scheda http://store.open-electronics.org/Arduino_GSM_GPRS_shield e dovrei gestire tutto a mano con i comandi AT...

Sto condividendo con voi i miei pensieri e le mie analisi, sarei ben felice se qualcuno di voi mi dicesse che ho scritto un mucchio di baggianate e mi dicesse a me funziona cosi oppure non hai capito si fa cosi... Se vi vengono in mente strade che non ho percorso .. idem.. insomma sono un pò disperato e ieri per cercare di capirci qualcosa ho dormito poco.. quindi potrei essere anche molto rimba.. perdonatemi e se vi vengono idee valide.. sono decisamente le benvenute...

Grazie Luigi

Tutto giusto. Col mega la newsoftserial non funziona. Tra l'altro ci sono problemi anche con l'IDE 1.0 (la newsoftserial non va...) già comunque risolti. Se scarichi l'ultima versione della libreria GSM trovi funzionalità anche GPRS. per poter utilizzare la GSM/GPRS shield col mega ti consiglio di spostare i pin sulla seriale hardware. Le modifiche non sono impossibili. Se fai riferimento alla libreria sviluppata per il TiDiGino trovi subito cosa va modificato. La libreria le telecontrollo GSM basato su Arduino la trovi in google code

Grazie per le info ho riadattato la libreria del il TdGino e ora il mio modulo gms... è online!

Mi dai una spiegazione tecnica per cosa vengono usati i due pin GSM_ON e GSM_RESET ?

Grazie di tutto

Luigi

I pin vengono utilizzati per accendere il modulo. Vengono gestiti solamente all'avvio, una volta che il modulo è online non sono più utilizzati.

Il modulo funziona perfettamente grazie ai tuoi consigli, ho notato una cosa strana quando lo shield gsm passa dallo stato di normale connessione alla rete ad una qualsiasi attivita' es invio sms o ricezione di una telefonata gli altri shield sembrano ad avere problemi quello Ethernet perde connettivita' ed i sensorii di umidità e temperatura sballano i valori credo che la causa sia il maggiore assorbimento hai qualche dritta da darmi? Non ho trovato le specifiche di assorbimento di quanti ampere può aver bisogno?

Grazie

Il modulo GSM in sè non assorbe molto, ma ha dei picchi quando accede alla rete o quando c'è comunque un'attività GSM. E' da capire comunque se si tratta di un problema di assorbimento o invece un problema di disturbi. Intanto ti consiglio di alimentare Arduino con un 9÷12V e almeno 1A. Eventualmente utilizza l'antenna posizionandola lontana dalla scheda

mi spieghi meglio cosa hai modificato nella libreria per usare le porte hardware delle mega????

grazie

birrohgt: .. ma cosa vai a riaprire una discussione del [u]MARZO 2012[/u] ? ? ? :o :o :o

Pensi veramente che qualcuno ti risponderà ?

EVITATE DI RIPESCARE DISCUSSIONI DI PIÙ DI 9 MESI !!!

Guglielmo

P.S.: Apri la libreria [u]e studiatela[/u] ... se è previsto di poterla usare con una seriale HW della mega c'è sicuramnete una #define da commentare/decommentare !

scusa se ho richiamato questo post

ho gia controllato la libreria esattamente la HWSerial.h e la HWSerial.ccp

si ce un #define per la mega ma non riesco a capire quali sono i pin che posso impostare hardware delle 4 porte disponibili

HWSerial.cpp (6.56 KB)

HWSerial.h (1.62 KB)

Come comincia HWSerial.cpp ? ? ? Lo hai letto/studiato BENE ? ? ?

#ifdef MEGA
    HWSerial::HWSerial(){
            Serial1.begin(9600);
    }

... e quindi ... secondo te cosa usa sulla MEGA ? ? ?

Guglielmo

scusa non avevo visto il Serial1 quindi usa la porta 1 seriale quindi pin 18,19?

giusto?

grazie

Come da reference ...

Serial: 0 (RX) and 1 (TX); Serial 1: 19 (RX) and 18 (TX); Serial 2: 17 (RX) and 16 (TX); Serial 3: 15 (RX) and 14 (TX). Used to receive (RX) and transmit (TX) TTL serial data. Pins 0 and 1 are also connected to the corresponding pins of the ATmega16U2 USB-to-TTL Serial chip.

Guglielmo

grazie

potrei usarlo anche con arduino due?

devo cambiare qualcosa nella libreria????

vedo che ci sono dei if def uno e mega

se uso la due cosa dovrei inserire?

grazie

birrohgt: potrei usarlo anche con arduino due?

Sicuro che quello shield possa essere montato sulla DUE ? Ricorda che la DUE lavora a 3.3V e qualsiasi tensione superiore sui pin danneggia la MCU, quindi ... verifica prima di tutto questo ...

Guglielmo

si la la comunicazione a 3.3v sto usando il modulo icsh029a e dalle specifiche dice questo:

If the level of the interface is 3.3V, then we can connect it with the 3VR and 3VT directly. The VCC_MCU can be used to match the serial level, connect the VCC_MCU with the voltage equal with the serial level, connect the serial with the OVR and OVT, then it can match other level interfaces. They have common GND.

ho solo un dubbio per la libreria e voglio usare le seriali hardware

nessuno mi potrebbe aiutare?

grazie

Che aiuto vuoi ?

Devi solo guardarti dove sono le seriali HW sulla DUE e cambiare i pin nella libreria (... quelli che usa per la MEGA).

Per il resto, come ti ho detto, nessuna garanzia ... mai montato queste schede sulla DUE ...

Guglielmo

grazie quello lavevo gia capito il mio dubbio era che visto che nella libreria parla solo di mega :

#ifdef MEGA
    HWSerial::HWSerial(){
            Serial1.begin(9600);
    }
    /*
    bool HWSerial::listen(){
        return Serial1.listen();
    }
    */
    void HWSerial::end(){
        Serial1.end();

quando vado a caricare il tutto e seleziono arduino due prende ugualmente queste impostazioni?

nelle istruzioni dice questo:

[1] How to switch between Arduino Mega and Arduino Uno?

1) Open GSM.h and comment-decomment the appropriate lines like below e.g. for Arduino Mega //#define UNO

define MEGA

2) If you use Arduino Uno comment the line in HWSerial.h or decomment if you are using Arduino Mega e.g. for Arduino Mega

define MEGA

3) Save and compile

ma per la due?

Se quella libreria NON è fatta per la DUE come pretendi che ci sia un qualche riferimento a tale scheda ?

Hai detto che la vuoi usare, t'ho detto fai finta di essere su una [u]MEGA[/u] (le seriali usano [u]gli stessi pin[/u] ... basta che ti sforzi un'attimo e vai a leggere i references :smiling_imp:) e ... incrocia le dita sperando che quella scheda [u]funzioni veramente a 3.3V[/u].

Guglielmo