Danger shield

Da poco mi sono avvicinato ad Arduino ed ho pensato anche di comprare la danger shield da futurashop.
Dopo averla montata correttamente e scaricato i programmi da http://wiki.nycresistor.com/wiki/Danger_Shield_1.0 non voleva funzionare. Così ho cominciato a cercare soluzioni al problema.
Ho trovato il test di dejan in questo forum http://arduino.cc/forum/index.php/topic,36382.0.html e così ho potuto testare positivamente la scheda.
Ma caricando i vari programmi di Zach Hoeken (l'autore della scheda Danger Shield; http://www.zachhoeken.com/danger-shield-v1-0) la scheda non vuol funzionare correttamente.
Ho trovato poi una soluzione (in inglese) che qui ripropongo in italiano affinché possa essere di aiuto a tanti.
Occorre modificare ogni programma scrivendo la seguente istruzione #include "Wprogram.h" prima dell'istruzione #include <_init.h>

Esempio

// Danger Board v1.0 Blank Script
// By: Zach Hoeken (hoeken@gmail.com)
// More info: make.nycresistor.com/ds-1.0

#include "Wprogram.h"
#include <_init.h>
#include <_data.h>

void setup()
etc etc etc

Adesso la scheda funziona!

Attenzione: la scheda che ho comprato è prodotta da SeeedStudio.
Esiste una danger shield prodotta da Sparkfun.com http://www.sparkfun.com/products/10115

Bella la Tua soluzione, ma segna anche cosa erano i sintomi del "non funzionare correttamente"
Ciao Uwe

Caricando ogni sketch dell'autore generalmente viene fuori il seguente errore:
ds_init() was non declared in this scope
e poi una serie di messaggi di errori:
blank_sketch.cpp:6:19: error: _init.h: No such file or directory
blank_sketch.cpp: In function 'void setup()':
blank_sketch:8: error: 'ds_init' was not declared in this scope

Nei programmi più complessi quali ad esempio lo sketch demo viene fuori il seguente errore:
'INPUT' was not declared in this scope
nel programma viene evidenziata la riga
pinMode(Button1_pin, INPUT);
e nella finestra i messagi di errore:
In file included from demo.cpp:6:
/_init.h: In function 'void ds_init()':
_init.h:34: error: 'INPUT' was not declared in this scope
_init.h:34: error: 'pinMode' was not declared in this scope
_init.h:39: error: 'OUTPUT' was not declared in this scope
_init.h:52: error: 'HIGH' was not declared in this scope
_init.h:52: error: 'digitalWrite' was not declared in this scope
_init.h:59: error: 'LOW' was not declared in this scope
_init.h:60: error: 'MSBFIRST' was not declared in this scope
_init.h:60: error: 'shiftOut' was not declared in this scope
_init.h:67: error: 'delayMicroseconds' was not declared in this scope
_init.h:84: error: 'Serial' was not declared in this scope

I programmi funzionano se si inserisce l'istruzione che ho già commentato. In pratica è necessario che lo sketch carichi prima di tutto Wprogram.h

Spero di essere stato chiaro e mi scuso se rispondo solo ora.

SCusa: ma dov'è il codice di Wprogram.h? da dove si può scaricare?

.. evidentemente il software che stai usando è vecchio ed obsoleto ! :smiling_imp:

Wprogram.h è roba che risale all'IDE di versioni precedenti la 1.0 ... oggi si usa Arduino.h e, ad esempio, le librerie più aggiornate, fanno il test sulla versione dell'IDE usato ed includono Wprogram.h se l'IDE è vecchio (inferiore alla 1.00) ed Arduino.h se l'IDE è aggiornato.

#if (ARDUINO <  100)
#include <WProgram.h>
#else
#include <Arduino.h>
#endif

Guglielmo

@luistrano: Roba vecchia che non va usata, occorre usare le librerie aggiornate !!!

gpb01:
.. evidentemente il software che stai usando è vecchio ed obsoleto ! :smiling_imp:

Il problema è diverso, il "genio" che ha scritto gli esempi ha messo una funzione dentro il file .h, cosa che l'attuale IDE non gradisce per niente, basta copiare la funzione dentro il file .ino e il problema è risolto.
Il file "Wprogram.h" non è più presente nelle versioni del IDE 1.x, il "giochetto" di includerlo funziona solo con le versioni del IDE ante 1.0

astrobeed:
Il problema è diverso, il "genio" che ha scritto gli esempi ha messo una funzione dentro il file .h, cosa che l'attuale IDE non gradisce per niente, basta copiare la funzione dentro il file .ino e il problema è risolto.

Ahhhh ... di bene in meglio ... :smiley:
... resta il fatto che è roba vecchia adatta alle vecchissime versioni dell'IDE :slight_smile:

astrobeed:
Il file "Wprogram.h" non è più presente nelle versioni del IDE 1.x, il "giochetto" di includerlo funziona solo con le versioni del IDE ante 1.0

... infatti, come hai visto, ho anche riportato il test da inserire in testa al codice :wink:

Guglielmo

luistrano:
SCusa: ma dov'è il codice di Wprogram.h? da dove si può scaricare?

Ti invitiamo a presentarti (dicci quali conoscenze hai di elettronica e di programmazione) qui: Presentazioni
e a leggere il regolamento: Regolamento