S65-Shield

Claus Ladekjær Wilson User 2009-04-04 14:31:18 Link
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

Andreas Watterott User 2009-04-04 17:39:32 Link
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.

Jan NoUser 2009-04-10 19:13:27 Link
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

Andreas Watterott User 2009-04-11 10:28:26 Link
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

Jens NoUser 2009-05-15 16:46:15 Link
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

Andreas Watterott User 2009-05-16 10:53:21 Link
Da hilft wahrscheinlich nur direkt an die Stiftleistenkontakte löten.

Jens NoUser 2009-05-16 14:12:34 Link
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

Andreas Watterott User 2009-05-16 17:26:51 Link
Interessantes Shield...Eine andere Möglichkeit wäre noch 2 mal das
ProtoShield-V2 von Sparkfun zu benutzen.

Hans Loepfe NoUser 2009-05-18 00:40:46 Link
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.

Hans Loepfe NoUser 2009-05-18 00:46:09 Link
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.

Andreas Watterott User 2009-05-18 07:47:48 Link
> 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

Jens NoUser 2009-05-18 14:18:58 Link
Das mit VDIP1 und VDIP2 klingt spannend - hat schon wer Arduino-Erfahrung
damit? (Auch ein programmierbarer USB-Client wäre nett...)

Gruß,
   Jens

Andreas Watterott User 2009-05-18 15:54:02 Link
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

Jens NoUser 2009-05-23 23:14:18 Link
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

Starbug NoUser 2009-06-20 12:13:01 Link
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.

Andreas Watterott User 2009-06-20 12:37:20 Link
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
...

Starbug NoUser 2009-06-20 13:11:29 Link
Super schnell die Antwort. Bin begeistert.
Sorry, trotz des Vorschlages immer noch die gleiche Reaktion. Bin genau
nach Vorschlag vorgegangen. Was nun ?

Starbug NoUser 2009-06-22 20:56:35 Link
Kann mir denn keiner mit der SD-Karte helfen ? 
Wäre schade um das Geld wenn das Shield nicht 100%ig funkioniert.

Jens NoUser 2009-06-23 00:29:25 Link
Vielleicht einfach mal den Code posten.

Gruß,
   Jens

starbug NoUser 2009-06-26 01:11:35 Link
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()
{

}

Andreas Watterott User 2009-06-26 09:56:19 Link
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

Starbug NoUser 2009-06-26 14:12:04 Link
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.

Andreas Watterott User 2009-06-26 15:54:05 Link
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.

starbug NoUser 2009-06-27 10:58:23 Link
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.

Andreas Watterott User 2009-06-27 12:24:13 Link
> 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

starbug NoUser 2009-06-27 12:59:46 Link
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.

Andreas Watterott User 2009-06-27 15:37:55 Link
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.

starbug NoUser 2009-07-11 15:10:02 Link
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 ?

Andreas Watterott User 2009-07-13 07:44:03 Link
> Gibt es irgendwo ein Menüskelett für das S65 Display auf dem man aufbauen
> könnte ?
Es gibt das MenuDemo Beispiel.

ross NoUser 2009-08-03 17:58:01 Link
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.

Andreas Watterott User 2009-08-03 19:07:20 Link
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

Antworten

Name
eMail (wird nicht angezeigt)
Betreff (keinen Text nur mit Großbuchstaben; kein HILFE, HELP...)
Text
HTML Tags werden nicht unterstützt und Links werden automatisch erstellt, wenn sie mit http o. ftp beginnen.
Längeren Sourcecode oder Logdateien bitte als Dateianhang einfügen (nur registrierte Benutzer).
Bitte die Zahl eingeben 7841