Pages: [1]   Go Down
Author Topic: ATTINY 2313 - Arduino Sketch - Verständissfrage  (Read 1588 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 42
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ahoi,

ich habe mir vor langer Zeit (bevor ich mit Arduino usw. angefangen hab) aus interesse die (wahrscheinlich bekannte) 8fach Relaiskarte von Conrad gekauft (197720).

Da mir diese jetzt durch Zufall untergekommen ist, hab ich sie mir mal genauer angeschaut und entdeckt, dass auf der Platine ein ATTINY2313 verbaut ist.

Meine Frage dazu:
Kann ich meine für Arduino gebastelten Sketches (natürlich nur kleine da er Tiny ja nicht so viel Speicher hat) über die an der Platine schon vorhandene RS232 (oder direkt auf den Chip - mit ein bisschen Löten) Schnittstelle irgendwie "hochladen". Oder bin ich da komplett am Holzweg.
Ich habe schon ein paar Sachen in Google gefunden wie man über Arduino Sachen auf das Ding hochladen kann - jedoch nicht, wie man Sketches (wenn das bei dem ATTiny auch so heisst) "erzeugt" und hochlädt (Das geht glaub ich mit dem AVR-Studio oder AVRDude?).
Da ich bis jetzt nur Arduino Sketches gemacht habe, fehlt mir hierbei einfach die Fantasie...


Da ich in der "Arduino-Welt" noch nicht sehr lange tätig bin - bitte nicht gleich kreuzigen - bin unbedarft und stell mir manche Sachen sicher einfacher vor als sie in Wirklichkeit sind.


Warum ich das eigentlich machen will: Die Karte kann 220V schalten und würde sich sicher gut für ein paar "Heimautomation"-Test-Projekte eignen (Steuerung über XBee - an RxD und TxD mit ein wenig Logik dahinter).


Danke im voraus für die Aufklärung

Björn
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 89
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset


so wie es aussieht geht es, musst du mal ein wenig lesen

http://www.freeduino.de/forum/software/arduino-isp-schnittstelle-zum-programmieren-verwenden

Gruß
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 42
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ok, also entweder über arduino (ohne chip) - aber nicht für den UNO (den ich habe).

Also ab zum Conrad und das besorgen: 191510 - 62

Wegen der Programmierung - GNU-AVR-GCC - da ich gerne bei C bleiben würde... oder?
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 42
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Das Sketch hochladen kannst Du am besten mit einem ISP, z.B. mit diesem: http://shop.myavr.de/index.php?sp=article.sp.php&artID=200006. Dann brauchst Du keinen Bootloader auf dem ATtiny, sparst also auch Speicher.
Wenn Du eine angepasste Board-Beschreibung für den ATTINY2313 findest kannst Du direkt mit der Arduino-IDE erbeiten, das ist IMHO viel einfacher als direkt C für den ATtiny zu programmieren.
Hier http://hlt.media.mit.edu/?p=1229 gibts z.B. was um einen ATiny45/85 als Arduino nutzen zu können, evtl. gibts sowas auch für den 2313.
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 42
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hier: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1236434254/52#52 gibts auch was zum Thema Attiny2313. Sollte also gehen.
Logged

"The old Europe"
Offline Offline
Edison Member
*
Karma: 1
Posts: 2005
Bootloaders suck!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Mann sollte aber bedenken, dass der 2313 nur 2k flash hat. Wenn man da die arduino haengematte verwendet, bleibt einem nicht mehr allzu viel platz fuer eigenen code.
Logged

• Upload doesn't work? Do a loop-back test.
• There's absolutely NO excuse for not having an ISP!
• Your AVR needs a brain surgery? Use the online FUSE calculator.
My projects: RGB LED matrix, RGB LED ring, various ATtiny gadgets...
• Microsoft is not the answer. It is the question, and the answer is NO!

Offline Offline
Newbie
*
Karma: 0
Posts: 42
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Primär soll er auch nicht viel machen...

Aufgaben:
Auswerten ob etwas über seriell übertragen wird (XBee Commandos) - Also Serial.read und einen switch - damit er aufgrund der empfangenen Kommandos die Relais ein bzw. ausschalten soll.

Thats it - die richtige Steuerung (Web-, Fernbedienung und Zeitgesteuert) passiert am Arudino Mega 2560 - der hat ja ausreichend Speicher ;-)

Den Thread 1236434254 hat mir Dr. Google auch empfohlen, da hab ich schon ein bisschen drüber gelesen...
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 42
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

So far - das Beste was ich an dem einen Tag finden konnte:

http://www.avr-developers.com/ - das sieht ja schon seeeehr gut aus...

http://arduino.cc/forum/index.php?topic=50710.0 - ein bisschen erklärung dazu...
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 42
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Also nach ein paar Tagen tüfteln funktioniert also soweit ich es mal bringen wollte....

Was funktioniert:
Serial.read (für xBee Kommunikation)
DigitalWrite (für Relais zum Aus- und Einschalten)

Wie funktionierts:
http://code.google.com/p/arduino-tiny/ - Runterladen und unter hardware ablegen - ATiny2313 auswählen (Unterschied zw. 8 und 1 MHz - keine Ahnung - so far). Kompilieren und hoffen das der Sketch nicht zu gross wird.
Upload: Den mach ich derzeit über das mitgelieferte Windows-Programm von myAVR - Ich hab den mySmartUSB MKII nicht dazu überreden können, das er sich mit Arduino verträgt - man findet auch im Internet relativ karge Informationen (ausser wie man einen Bootloader hochlädt...)

Beispiel:

Der Sketch hat 2014 Bytes - also knapp am Limit... bzw. wenig Platz für Tests (meine Empfehlung: Testen am Arduino, wenns geht soweit wie möglich runtertrimmen und auf dem ATTiny brennen...)

Code:
byte ignore = 0;
int xcommand = 0;

void setup() {
  Serial.begin(9600);
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(11, OUTPUT);
  pinMode(12, OUTPUT);
  pinMode(13, OUTPUT);
}

void loop() {
  if (Serial.available() == 17){
  if (Serial.read() == 0x7E){
    ignore = Serial.read();
    ignore = Serial.read();
    ignore = Serial.read();
    ignore = Serial.read();
    ignore = Serial.read();
    ignore = Serial.read();
    ignore = Serial.read();
    ignore = Serial.read();
    ignore = Serial.read();
    ignore = Serial.read();
    ignore = Serial.read();
    ignore = Serial.read();
    ignore = Serial.read();
    ignore = Serial.read();
    xcommand = Serial.read();
    relay();         
    ignore = Serial.read();
    }
  }
}

 

void relay(){
  switch(xcommand){
    case 11:
      digitalWrite(3, HIGH);
    break;
     
    case 10:
      digitalWrite(3, LOW);
    break;
   
    case 21:
      digitalWrite(4, HIGH);
    break;
     
    case 20:
      digitalWrite(4, LOW);
    break;
   
    case 31:
      digitalWrite(5, HIGH);
    break;
     
    case 30:
      digitalWrite(5, LOW);
    break;
     
    case 41:
      digitalWrite(6, HIGH);
    break;
     
    case 40:
      digitalWrite(6, LOW);
    break;
     
    case 51:
      digitalWrite(7, HIGH);
    break;
     
    case 50:
      digitalWrite(7, LOW);
    break;
     
    case 61:
      digitalWrite(8, HIGH);
    break;
     
    case 60:
      digitalWrite(8, LOW);
    break;
     
    case 71:
      digitalWrite(9, HIGH);
    break;
     
    case 70:
      digitalWrite(9, LOW);
    break;
   
    case 81:
      digitalWrite(11, HIGH);
    break;
     
    case 80:
      digitalWrite(11, LOW);
    break;
   
    case 99:
      digitalWrite(3, LOW);
      digitalWrite(4, LOW);
      digitalWrite(5, LOW);
      digitalWrite(6, LOW);
      digitalWrite(7, LOW);
      digitalWrite(8, LOW);
      digitalWrite(9, LOW);
      digitalWrite(11, LOW);
    break;
  }
}


Wieso tut man sich sowas an?
Beim C*nrad gibts eine 8fach Relais-Karte - welche mit einen ATTiny 2313 ausgestattet ist - wenn man also ein bisschen löten kann, dann kann man diese Relaykarte relativ gut von der angedachten seriellen Kommunikation "entfesseln" und mit XBee um ca. 25,- ( x 2 - man braucht ja auch ein Gegenpart) überallhin platzieren...

Wenn man dann noch ein wenig herumtut, kann man das mit einer Ethernet-Karte und einen "Web-Server" auf dem Arduino austatten und hat somit eine relativ günstige Steuerung für 220V Geräte...
Logged

Pages: [1]   Go Up
Jump to: