Ich hab jetzt mein Shield erhalten. Es ist angeschlossen und funktioniert. Aber womit fang ich an? Mir fehlt ein Paar Beispiele wovon ich weiter programmieren kann. Ich bin Anfänger. Claus der Däne
S65-Shield
Bei der S65-Library sind 3 Beispiele mit dabei. Diese befinden sich in der Arduino Software unter File -> Sketchbook -> Examples -> Library-S65Shield Projektideen gibt es auf arduino.cc unter Playground.
Kann ich denn eigentlich mit dem Shield auch noch die Ein- und Ausgänge (zumindest einige) des Arduino nutzen, oder sind die jetzt alle blockiert? Wenn ich mir die Leiterbahnen des S65-Shields so ansehe scheinen ja zumindest Analog 4 und 5, sowie Digital 0, 1, 2 und 10 frei zu sein. Gruß Jan
Es sind nicht alle Pins belegt und die übrigen kann man auch verwenden. Ohne ein Funkmodul sind folgende Pins frei: Analog 0,1,4,5 Digital 0,1,2,3,10 http://www.watterott.net/arduino/s65-shield_5.png Das Ethernet-Shield funktioniert ebenfalls mit dem S65-Shield. Gruß Andreas
So... Das S65-Shield läuft wunderbar, malt tolle Linien - nur bin ich jetzt als Softwaremensch mit meiner Weisheit am Ende. Ich will mit dem S65-Shield (und dem Ethernet-Shield) eine DCF77-Uhr bauen, nur leider habe ich keine Ahnung, wie ich die drei benötigten Pins für das DCF-Modul (GND, 5V, Digital 2) vernünftig kontaktieren kann... Weiß jemand Rat? Gruß, Jens
oha... Danke. nach etwas googlen habe ich ein "Stackable Prototype Shield Kit" bei nuelectronics gefunden - ich probier's mal damit. Hätte den Vorteil, daß darauf auch gleich noch ein Backup-Quarzuhrchip Platz hätte. Gruß, Jens
Interessantes Shield...Eine andere Möglichkeit wäre noch 2 mal das ProtoShield-V2 von Sparkfun zu benutzen.
Kriegt man das schöne Stück auch auf einem ARDUINO Pro 3.3V (!) zum laufen. Vermutlich schon, aber wie genau? Bin froh um guten Rat, Danke und Gruss, Hans.
Gibt's denn irgendwo ein ARDUINO-Shield welches den ARDUINO in einen USB-A (Host) verwandelt und damit commands an einen USB-B (Client) senden kann? Da ich bisher sowas nicht ausfinding machen konnte, denke ich, dass so ein Teil ein Top-Seller würde. Nur so eine Idee. Gruss, Hans.
> Kriegt man das schöne Stück auch auf einem ARDUINO Pro 3.3V (!) zum laufen. > Vermutlich schon, aber wie genau? Ja, das ist möglich. Dazu muss man den 3,3V Spannungsregler entfernen und den 3,3V Jumper brücken. > Gibt's denn irgendwo ein ARDUINO-Shield welches den ARDUINO in einen USB-A > (Host) verwandelt und damit commands an einen USB-B (Client) senden kann? Das geht mit den FTDI Vinculum Controllern. Im Shop gibt es auch fertige Module mit dem Chip (VDIP1 und VDIP2). Gruß Andreas
Das mit VDIP1 und VDIP2 klingt spannend - hat schon wer Arduino-Erfahrung damit? (Auch ein programmierbarer USB-Client wäre nett...) Gruß, Jens
Im Arduino-Playground gibt es einen Beitrag zum Vinculum: http://www.arduino.cc/playground/Main/UsbMemory und im Arduino-Forum sind auch mehrere Beiträge zum Chip. Gruß Andreas
So... Das stackable prototype shield ist da und funktioniert. Blödsinnig einfach, aber zu empfehlen. (Dafür hat jetzt das DCF-Modul keine Lust mehr...) Gruß, Jens
S65 Shield als solches läuft super. Auch mit dem Arduino Ethernet Shield als ein Twitter Client. Ich möchte nun die Updates aus Twitter auf der SD card speichern. Habe jedoch massive Probleme mit der SD card obwohl das DEMO2 und MENUDEMO ohne Ethernet Shield läuft. Habe den Vorschlag \"quick and Dirty\" im DEMO2 und MENUDEMO eingeschaltet aber trotzdem immer noch eine \"No card !\" Meldung. Was mache ich falsch oder was habe ich übersehen ???? Please hel.
Wenn man das Ethernet-Shield mit dem S65-Shield benutzen will, dann muss
das Ethernet-Shield vor Benutzung der SD-Karte initialisiert werden.
Ansonsten funkt es beim Ansprechen der SD-Karte dazwischen.
Binde mal die Ethernet Library mit in das Projekt ein und initalisiere das
Ethernet-Shield über die Lib - nicht "quick and dirty":
#include <Ethernet.h>
#include <S65Display.h>
#include <RotaryEncoder.h>
#include <SDcard.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 10, 0, 0, 177 };
S65Display lcd;
RotaryEncoder encoder;
SDcard sd;
void setup()
{
//init Ethernet
Ethernet.begin(mac, ip);
//init S65-Shield
...
Super schnell die Antwort. Bin begeistert. Sorry, trotz des Vorschlages immer noch die gleiche Reaktion. Bin genau nach Vorschlag vorgegangen. Was nun ?
Kann mir denn keiner mit der SD-Karte helfen ? Wäre schade um das Geld wenn das Shield nicht 100%ig funkioniert.
Hi Jens,
hier ist der modifizierte code von DEmo2. Dieser läuft schon nicht. Ausgabe
'no card'.
Was ist hier falsch ??????????????????????????????
// Demo2 mit ARDUINO, ETHERNETSHIELD und S65 SHIELD
// Stromversorgung durch USB PORT
#include <Ethernet.h>
#include <S65Display.h>
#include <SDcard.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192, 168, 3, 20 };
//S65-Shield: Demo 2 (Display + SD-Card)
S65Display lcd;
SDcard sd;
ISR(TIMER2_OVF_vect)
{
static uint8_t count=1;
TCNT2 -= 250; //1000 Hz
if(--count == 0) //100 Hz
{
count = 10;
sd.service();
}
}
void showDir(char *path)
{
FILINFO finfo;
DIR dir;
int8_t i=15;
lcd.clear(RGB(0,255,0));
lcd.drawText(5, 5, path, RGB(255,255,255), RGB(0,255,0));
if(f_opendir(&dir, path) == FR_OK)
{
while((f_readdir(&dir, &finfo) == FR_OK) && finfo.fname[0])
{
lcd.drawText(5, i, finfo.fname, RGB(255,255,255), RGB(0,255,0));
i += 10;
if(i >= (S65_HEIGHT-10))
{
break;
}
}
}
}
void setup()
{
//init Ethernet Ethernet.begin(mac, ip);
//init LCD
lcd.init(4); //spi-clk = Fcpu/4
//if using Ethernet-Shield this must be init before the SD-Card
//here is a quick and dirty init:
/*
DDRB |= (1<<2); //SS -> Output
PORTB &= ~(1<<2); //SS -> Low -> Select Ethernet-Shield
SPDR = (0xF0); loop_until_bit_is_set(SPSR, SPIF);
SPDR = ((0x8000 & 0xFF00) >> 8); loop_until_bit_is_set(SPSR, SPIF);
SPDR = ( 0x8000 & 0x00FF); loop_until_bit_is_set(SPSR, SPIF);
SPDR = (0x80); loop_until_bit_is_set(SPSR, SPIF);
PORTB |= (1<<2); //SS -> High -> Deselect Ethernet-Shield
*/
//init SD-Card
sd.init(4); //spi-clk = Fcpu/4
//init Timer2
TCCR2B = (1<<CS22); //clk=F_CPU/64
TCNT2 = 0x00;
TIMSK2 |= (1<<TOIE2); //enable overflow interupt
//interrupts on
sei();
//clear screen
lcd.clear(RGB(255,255,255));
lcd.drawTextPGM(5, 5, PSTR("Read card..."), RGB(0,0,0),
RGB(255,255,255));
if(sd.mount() == 0)
{
lcd.clear(RGB(0,255,0));
showDir("/");
}
else
{
lcd.clear(RGB(255,0,0));
lcd.drawTextPGM(5, 5, PSTR("No card !"), RGB(255,255,255),
RGB(255,0,0));
}
}
void loop()
{
}
Auf meinem Arduino Duemilanove mit Ethernet-Shield funktioniert dein Code. Ich habe nur folgende Zeile geändert: //init Ethernet Ethernet.begin(mac, ip); zu: //init Ethernet Ethernet.begin(mac, ip); Die "Quick and Dirty" Variante läuft ebenfalls ohne Probleme. Hast du mal eine andere microSD-Karte getestet? Gruß Andreas
Hi Andreas, dummer Fehler beim Kopieren. Natürlich habe ich das genauso geschrieben wie Du. Man sollte vor dem Senden alles zehnmal nachlesen. Ich habe mindestens von 8 Herstellern die SD-Karten testet. Bei mir geht nichts außer 'no card'. Ohne Ethernet Shield fuktioniert alles einwandfrei. Ist zum verrückt werden.
Hast du auch nach dem Kartenwechsel einen Reset durchgeführt und verwendest du ein original Arduino Ethernet-Shield? Das Problem mit dem Ethernet-Shield war, dass es den MISO-Pin immer auf 5V oder 0V gezogen hat, solange es nicht initialisiert wurde. Du kannst ja mal während des Einlesens am MISO-Pin nachmessen, ob sich etwas tut oder ob der Pin immer auf einem Level bleibt.
Karten???? Das war die zündende Idee. Nach reichlich Googlen musste ich feststellen das meine micro SD Karten kein SPI Protokoll beherrschen oder zumindest nicht mit SPI betrieben werden können. In diesem Zusammenhang sei folgende Seite empfohlen http://en.wikipedia.org/wiki/MicroSD. Also habe ich mir neue Karten besorgt und sieh da die Demos laufen alle perfekt. Nun das nächste Problem. Gibt es ein Sketch, für das S65 Shield, der das Lesen und Schreiben einer Datei mit dem ELM CHAN FATfs einigermassen verständlich darstellt? Übrigens vielen, vielen Dank für die bisherige Hilfe.
> Gibt es ein Sketch, für das S65 Shield, der das Lesen und Schreiben > einer Datei mit dem ELM CHAN FATfs einigermassen verständlich darstellt? In der FatFs-Doku sind Beispiele enthalten: arduino-pfad/hardware/libraries/SDcard/doc/00index_e.html
Aber keines dieser Beispiele lässt sich kompilieren (im Einsatz is ADRDUINO 016) geschweige denn ausführen. Es gibt nur einen Haufen Fehler. Direkt für das Arduino Board, als pde, habe ich jedenfalls nichts gefunden.
Wenn man Dateien öffnen will, dann muss zusätzlich noch die get_fattime() Funktion mit eingebaut werden... Ich habe gerade das Software-Package für das S65-Shield aktualisiert. Jetzt ist auch ein Sketch-Beispiel mit enthalten.
Nach dem Einfügen von einer get_fattime() läuft als wunderbar. Zur Zeit versuche ich ein vernüftiges Menü auf den Bildschirm zu zaubern. Klappt so leidlich da ich mehr ein Pascalfreak bin und mit C so kleine Probleme habe. Gibt es irgendwo ein Menüskelett für das S65 Display auf dem man aufbauen könnte ?
> Gibt es irgendwo ein Menüskelett für das S65 Display auf dem man aufbauen > könnte ? Es gibt das MenuDemo Beispiel.
Hi i am having fun with the S65 shield, but i am wanting to show an array
of pixels on the display and then hopefully create a moving sprite.
I have found lcd.drawPixel(x, y, colour) function, but it does not seem to
support hex colours correctly i.e. #CC00CC, If i create an array in my
arduino sketch of a 60px x 60px hex values it doesnt display correctly
array [] {FFCC00, FFEE00 etc etc}
I know i can pass RGB(r,g,b) values but that would mean i would need an
array for Red, and array for Green, and an Array for Blue? Does anyone
have a better way to form a good pixel drawer from arduino sketche.
I am novice programmer at best. I tried to bit shift hex byte to get r, g
and b but again didnt show correctly.
Hi Ross,
You can also use the RGB() macro in an array.
For example:
unsigned int image[] =
{
RGB(255,0,0), RGB(255,255,0), RGB(255,255,255)...
};
Your hex color values are not correct because the display needs 16bit color
data:
MSB |-----16 bit-----| LSB
|rrrrrggggggbbbbb|
r = 5bit red
g = 6bit green
b = 5bit blue
Regards,
Andreas


