PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Grundlegendes zum Einstieg mit I2C / AVR / RN-Control etc.



Trabukh
01.06.2004, 10:28
Moin erstmal.

Ich habe das Forum eine Zeit lang verfolgt und würde mir jetzt auch ganz gerne einen Roboter bauen. Allerdings fehlen mir immer noch Grundlagen wie z.B.:
-Was ist ein I2C und was kann das Ding?
-Wie steuere ich Servos mit dem RN-Control (natürlich nicht nur mit dem RN-Control, das mist mir schon klar, da muss ich halt was basteln...)

Wäre nett, wenn hier jemand einen Link etc. posten würde

Michael
01.06.2004, 10:40
Hallo Trabukh,
es wäre sehr hilfreich, wenn du mal dein Alter mitposten könntest - irgendwo bei Profil einstellen.
Dann könnte man dir auch altersgerechte Kost servieren und/oder über so manchen Schnitzer hinwegsehen :)
Nachher halten dich alle für 11, dabei bist du erst 10 oder so ;)
Ansonsten beantwortet Google einen Grossteil deiner Fragen.(Du weisst doch, was Google ist?)
Gruss, Michael

Trabukh
01.06.2004, 10:45
Och, du bist gemein :-) Ich bin 16 und JA, ich weiß was Google ist.

matren
01.06.2004, 12:49
Grundlegende Grundlagen ?

Klingt für mich wie sehr problematische Probleme.

----

Ich halte das Alter aber eher für zweitrangig.
Oft sind 20 Jahre Unterschied geistig nicht zu bemerken :)
(ist nicht böse gemeint, nur eine allgemeine Feststellung)

Trabukh
01.06.2004, 13:34
Danke, war sehr informativ... :-)

Leute, ich brauche was, womit ich anfangen kann. Ich dachte, ich besorge mir das RN-Control und bastle erstmal damit rum. Das ist im Grunde kein Problem, steht ja alles sehr detailliert in dem PDF-Dokument. Allerdings würde ich gerne verstehen, wie das ganze funktioniert, was das I2C-Ding macht etc.

Anfangs hat mich das ganze nur wegen einem Punkt interessiert: Der Programmierung. Programmieren ist mein größtes Hobby..
Jetzt kann ich aber nicht mehr schlafen, weil mich die Hardware interessiert und ich so viele Fragen habe.

Ich hoffe, ihr versteht was ich meine...

Judgeman
01.06.2004, 13:43
I2C ist ein zweidraht Bus (Inter IC Bus). Eine Leitung ist die Datenleitung, die andere ist die Clockleitung. An den Bus können verschiedene Peripherien angeschlossen werden, die nicht zeitkritisch sind. Man spart sich auf diese Weise viele Ports am uController. Eine Ausführung wie der Bus aufgebaut ist und wie man verschiedene Bauteile am Bus anschließen und ansprechen kann befindet sich in meiner Dipl.-Arbeit. Diese steht unter "Download -> Tutorials -> Kettenroboter Diplomarbeit" https://www.roboternetz.de/phpBB2/dload.php?action=file&file_id=107

Trabukh
01.06.2004, 13:48
Endlich mal was interessantes, danke!!! Aber ich bin ein "SUPER"-Anfänger. So sachen wie "zeitkritisch" unt "uController" muss man mir leider auch noch erklären... sry!

matren
01.06.2004, 13:57
Also:

I²C (I2C) oder auch TWB (TwoWireBus), InterIC, etc.
ist ein einfaches Bussystem mit zwei Drähten.

Im einfachsten Fall gibt es einen Master und viele Slaves (die Anzahl ist soweit ich weis limitiert).

Der Master ist der Boss und die Slaves reden nur wenn der Master sie was fragt.

Jeder Slave hat dazu einen eigenen Namen (eine Adresse) über die er angesprochen wird. Stell dir vor der Boss macht eine Telefonkonferenz und alle Slaves hören zu. Jedesmal wenn der Boss was fragt, sagt er zuerst den Namen des Slaves, dieser sagt "Ja Boss" und der Master stellt die Frage. Darauf antwortet der Boss jedesmal nach einer Antwort mit "OK".
Aber der Boss kann auch sagen "OK, das reicht" und der Slave sollte dann wieder die Klappe halten.
Der Slave muss aber nicht unbedingt Antworten, er kann auch nur einen Befehl entgegennemen und sagen "Ok, mach ich Boss".

Die Kommunikation selber ist natürlich im Protokoll geregelt und betrifft dich nur, wenn du das ganze Low-Level implementieren willst.
In Normalfall verwendest Du eine bereits bestehende Schnitstelle und die Kommunikation läuft z.B. so aus (in Bascom):



I2cstart ' Kommunikation beginnt
I2cwbyte &H74 ' Slave ansprechen (Name des Slaves/Adresse als Hex-zahl)
I2cwbyte &B00000010 'Befehl schicken (hier Binär)
I2cstop ' Kommunikation beendet


Hoffe das hilft Dir etwas weiter.

Trabukh
01.06.2004, 14:11
Ja klar hat das geholfen. War zwar leicht "primitiv" erklärt, aberim Prinzip genau das richtige für mich. Der I²C ist also die primäre Anlaufstelle für alle anderen Geräte/Module etc, der regelt das ganze. War das jetzt richtig so?

Ach ja, wofür steht eigentlich AVR?

matren
01.06.2004, 15:05
Na, "der regelt das ganze" wäre nicht ganz richtig. Der I²C ist eigentlich nur das Telefon das zur Kommunikation dient. Regeln tut ja alles der Boss, und das ist im Normalfall dein Controller, den Du selber programmierst.
Die Slaves kann man dann schon ferig kaufen oder ebenfalls selber programmieren (z.B. als CoController).

Der I²C Bus ist aber nur eine Mögliche der Kommunikation. Hat sich aber inzwischen weitestgehend durchgesetzt (mag auch daran liegen das dieser schon über 20 Jahre auf dem Buckel hat).

Es gibt da noch viele Andere Bussysteme:
z.B.
CAN Bus - (aus dem Automobilbereich)
PCI-Bus (im Computer)
USB (Universal Serial Bus)
....

AVR ist der Name den Atmel seinen 8Bit RISC Controllern gegeben hat.
Was er bedeuten soll weis ich auch nicht genau. Aber irgendwo stand es mal. Sowie bei Intel die Prozessoren Pentium heissen.

matren
01.06.2004, 15:06
Na, "der regelt das ganze" wäre nicht ganz richtig. Der I²C ist eigentlich nur das Telefon das zur Kommunikation dient. Regeln tut ja alles der Boss, und das ist im Normalfall dein Controller, den Du selber programmierst.
Die Slaves kann man dann schon ferig kaufen oder ebenfalls selber programmieren (z.B. als CoController).

Der I²C Bus ist aber nur eine Mögliche der Kommunikation. Hat sich aber inzwischen weitestgehend durchgesetzt (mag auch daran liegen das dieser schon über 20 Jahre auf dem Buckel hat).

Es gibt da noch viele Andere Bussysteme:
z.B.
CAN Bus - (aus dem Automobilbereich)
PCI-Bus (im Computer)
USB (Universal Serial Bus)
....

AVR ist der Name den Atmel seinen 8Bit RISC Controllern gegeben hat.
Was er bedeuten soll weis ich auch nicht genau. Aber irgendwo stand es mal. Sowie bei Intel die Prozessoren Pentium heissen.

Trabukh
01.06.2004, 15:16
Ach so, danke. Und wie sieht das mit den Controller aus? Kann mir da vllt jemand genaueres erzählen?

matren
01.06.2004, 15:22
Hier im Forum gibt es Bereiche für Artikel, für Downloads und für Links,
da solltest Du alles finden was Du so für den Anfang brauchst.

Trabukh
01.06.2004, 15:36
Ich steig da trotzdem nicht ganz durch... leider! Also, für ein komplettes "Steuerboard", das ich programmieren kann, bräuchte ich also zuerst einen Controller, danach einen I²C und dahinter eigene Module. Ist das jetzt richtig?

P.S.
Würde sich das RN-Control zum Einstieg lohnen?

matren
01.06.2004, 15:55
Für den Einstieg ist da RN-Control bestens geeignet.
Es wurde ja speziel dafür entwickelt.

Was Du für den Anfang brauchst ist eigentlich nur das RN-Control und den ISP-Dongle (den findest Du auch auf der Homepage), damit Du den Controller programmieren kannst, und natürlich ein Netzteil um das Ding mit Strom zu versorgen.

Was Du dann später noch brauchst hängt ganz von deinen Vorstellungen und Ideen ab. Das kommt dann aber ganz von alleine.

Trabukh
01.06.2004, 16:08
Was mir da aber noch fehlt, ist eine Funk-Kommunikation über die RS232-Schnittstelle. Das habe ich schon in einem anderen Thema angesprochen, allerdins nicht im Zusammenhang mit dem RN-Control. Im Prinzip, müsste ich den Sender am PC so nachbauen wie in der Anleitung von LuK-AS, und am Enpfänger, also RN-Control einfach nur den MAX232 überbrücken, da der Pegel ja schon korrekt ist, oder?

Noch mal ganz explizit @matren:
Bis hierhin schon mal vielen Dank für deine Hilfe! :-)

Trabukh
01.06.2004, 16:38
Entschuldigt bitte den Doppelpost, aber was benötige ich an Teilen, um mir ein eigenes "Experimentierboard" zu basteln? Oder sollte ich das erstmal lieber lassen?

Ich weiß, ich tu' nerven tun, aber ich kenn mich halt noch überhaupt nicht aus, und das will ich ändern... (Meine Eltern sagen immer, ich solle mehr lernen :-))

Frank
01.06.2004, 20:34
Hi Trabukh,
nimm dir nicht gleich zu viel vor, das ist imme rder Fehler vieler Einsteiger.
Fang erst mal langsam mit einem Controllermodul wie RN-Control an. Wenn du erst mal ein paar LED´s im richtigen Rhytmus zum leuchten gebracht hast, dann kannst du dich immer noch genaue rüber I2C , Funk unde anderen Erweiterungsmöglichkeiten informieren. Am Anfang ist es bestenfalls erst mal wichtig zu wissen ob diese Erweiterungsmöglichkeiten bestehen. Und das ist bei RN-Control der Fall. Wenn Du Funkmodul anschließen willst könntest Du MAX entweder einfach weglassen oder aus Fassung entfernen und Brücken wenn es schon aufgebaut ist. Aber mit Funk würde ich ganz zuletzt anfangen.
Eigentlich brächtest du neben so einem Controllerboard nur noch Netzteil (ca. 9 bis 15V), ISP-Programmierkabel und RS232 Kabel. Dann kanst du schon einiges machen.
Für den I2C-Bus gibt es unzählige von Erweiterungen, nicht nur die die wir hier im Projektforum vorstellen, sondern auch welche von zahlreichen anderen Anbietern. Zudem kommen ständig neue hinzu. Also von daher wirst du das Modul sicher irgendwo sinnvoll einsetzen können wenn du genügend experimentiert hast.
Statt Roboter könnte man auch ganz andere Dinge bauen, z.B. ne einfache Digitaluhr mit Sprachausgabe oder was auch immer.
Servos kann man über ganz normale Ports ansprechen, auch dazu findet man hier im AVR- als auch Bascom Forum nützliche und genaue Hinweise. Allerdings wenn man viele Servos ode rviel Rechenleistung benötigt, da bietet sich dann ein I2C-Erweiterungsboard an das z.B. 20 Servos ansteuern kann. Da gibt es z.B. eines von roboter-teile.de. Aber auch hier wurde eines von Kjion entworfen, ich weiß nur nicht ob er Platinen abgibt.
Aber wie gesagt, fang langsam an.

Gruß Frank

Trabukh
01.06.2004, 21:16
Danke für deine Ratschläge, ich werde mal einen Gang zurück legen :-). Also die LEDs in einem bestimmten Rhythmus blinken lassen werd ich garantiert schon können, ich programmier schon etwas länger. (Boah, wenn ich das nicht hinkriege, wirds peinlich...)
Gibt es irgendwo ein detailliert beschriebenes Projekt, wo mehrere Module an den I²C-Bus angeschlossen sind? Und dann auch noch über das RN-Control? Würde mich mal rein vom Aufbau interessieren. Ich weiß, dass ich das noch nicht angehen sollte als Anfänger, aber rein optisch gesehen interessiert mich das schon.

Gruß, Trabukh

P.S.
Ich habe mal alles zusammengerechnet: Bei Reichelt kosten alle Teile für das RN-Control zusammen etwa 21.50. Das sind gut 8-9 Euro weniger als bei robotikhardware. Nur die Platine braucht man halt. Das wollte ich nur mal erwähnen, wenns jemanden interessiert...

EDIT am 06.08.04:
@Frank: Sry, ich wusste früher noch nicht, dass der Laden dir gehört... sollte keine Antiwerbung sein! Tut mir echt Leid!

matren
01.06.2004, 21:27
Natürlich abzüglich der Zeit die Du gebraucht hast um die Teile zusammenzusuchen.:) Aber das bleibt ja dir überlassen wo du das bestellst.
In der Anleitung stehen ja sogar die Bestellnummern von Reichelt drin.
(da fällt mir doch gerade ein daß ich einen MAX232 bei Reichelt bestellt habe, aber nicht genau wusste welcher der richtige ist. Ich Idiot !!! In der Anleitung dürfte sogar die Bestellnummer stehen. ](*,)
Ich guck jetzt aber net. #-o

@Frank:
Und da wären wir wieder bei meinem Letzten Threat bzgl. neuem Server. :wink:

Trabukh
01.06.2004, 21:40
Also, ich wohne 2,5 km von Reichelt entfernt und kann denen einfach einen Tag vorher ne Liste schicken und am nächsten Tag bezahlen und abholen, das ist kein Problem. Es ist übrigens der MAX232 CPE...

Eine Frage hätte ich aber doch noch: In der Teileliste vom RN-Control ist folgendes Widerstandsnetzwerk (Reichelt Bestellnummer):
-SIL 4-3 10k

Nun gibt es dies bei Reichelt nicht, sondern nur folgendes:
-SIL 6-3 10K (mit 6 Pins)

Macht das irgendeinen Unterschied?

matren
01.06.2004, 21:49
Weis nicht genau wie die intern verschaltet sind. Ich denke aber das es möglich sein sollte wenn man die restlichen zwei Pins dann abschneidet (falls da andere Bauteile nicht im Weg sind.

----
Wieso wohnen hier alle in der Nähe vom Reichelt ????
Bin ich hier das einzige Arme ... (wird ja vermutl. eh xxxauto...).

Frank
01.06.2004, 21:50
Hi Trabukh,

so ganz stimmt deine Rechnung nicht, aber das kannst du nicht wissen. So ist es beim RN-Control z.B. so das über robotikhardware 2 alternative Qurze mitgeliefert werden (7,3... und 16 Mhz) so das man die Taktfrequenz wählen kann. beides hat seine Vorzüge, aber auch das ist im Forum schon erläutert. Dann ist ein Sortimentkasten dabei in dem die Teile drin sind, Abstandsbolzen sind glaub in der Doku auch nicht genannt und die aktuelle CD mit Beispielprogrammen, Anleitungen, Compilern, usw. muss auch noch kopiert werden.
In der Praxis ist dann Reichelt aber immer noch einige Euro günstiger (andere sind auch teurer), das ist völlig richtig. Das liegt einfach daran das das ganze wirklich ne heiden Arbeit ist die Teile genau zusammenzustellen, wie Matren schon sagt. In der Praxis ist es nämlich auch so das oft nicht alle Teile die man braucht beim Elektronik Anbieter vorrätig sind. Oft muss man Wochen warten oder auf Alternative ausweichen. Das kostet dann ne Menge Zeit und Porto! Lohnen tut sich das ganze eigentlich nicht wirklich.

Ich habe daher garnichts dagegen wenn die Bauteile bei einem anderem Anbieter bestellt werden - das ist völlig ok und macht sicher auch Sinn wenn man noch irgendwas anderes mitbestellen möchte. Daher gebe ich dei Bestellnummern ja in den Anleitungen genau an.
In erste Linie liegt mir daran die Platinenkosten etwas zu reduzieren indem ich gleich mehrere fertigen lassen kann. Dadurch reduziere ich auch meine eigenen Hobbykosten, also etwas Eigennutz ist schon an der Sache dran. Es macht einfach keinen Sinn wenn ich eine Platine wie die von RN-Control oder RNBFRA nur für mich fertigen lasse, da zahle ich manchmal bald 100 Euro nur für die Platine. Wenn ich mehrere fertigen lasse sind die bedeutend günstiger und dadurch haben auch mehrere was von.

Schau mal in die Doku von RN-Speak, ich glaub da war ein Bild wo das Board Huckepack per I2C mit RNBFRA verbunden ist. Genauso würde es z.B. auch mit RN-Control und RNSpeak oder was anderem gehen. An einem Kabel können mehrere Stecker montiert werden und sehr viele Boards miteinander verbunden werden. Ansonsten schau mal nach SD20 im Forum und bei Google. Auch ein oft eingesetzter I2C Baustein für Servos.

Gruß Frank

Trabukh
02.06.2004, 07:22
Danke, ich werd die Teile dann vllt doch bei www.robotikhardware.de bestellen.

Trabukh
02.06.2004, 14:48
Schon wieder eine Frage: Das RNSpeak-Modul läuft mit 8 MHz. Muss ich dann beim RN-Control auch 8 MHz benutzen, oder ist das egal?

02.06.2004, 14:53
Das spielt keine Rolle.

The.Tomac
15.06.2004, 18:42
hi, Trabukh

Mir ist aufgefallen, dass du s.o. öfter 'dieses I²C ding " sagst
sei mir nicht böse, wenn ich hier jetzt was völlig blödes sage , aber ich wollte nur nochmal bemerken, dass das i²c nu raus zwei leitungen mit wiederständen besteht - das ist kein Bauteil, oder chip oder so
ich wollts nur klarstellen

@Michael

Warum bist du eigendlich immer direkt so aggressiv? :evil:
Ich hab noch nicht einen einzigen beitrag gelesen bei dem du nicht die Dummheit / Schreibfehler eines anderen betonst
Macht dir das spass? Ich meine das .:völlig unproduktive , verletzende Beitäge schreiben und immer auf anderen rumhacken :Haue :.

nur so [-X :-$

Bis denn, Gregor

Trabukh
16.06.2004, 18:13
Ja, ich dachte erst, das wär ein IC, der die Grundlage zum Kommunizieren zwischen den Bauteilen darstellt. Inzwischen weiß ichs besser, aber trotzdem vielen Dank.

Gruß, Trabukh

matren
16.06.2004, 18:24
@The.Tomac:
Ich denke das der Spaß proportional zur Größe des Hammers zunimmt.
http://www.world-of-smilies.de/html/images/smilies/gewalt/greenhammer.gif

The.Tomac
18.06.2004, 18:43
hehe ist ein schönes Smiley - kannst du ja mal Frank schicken, sodass wir das dan in Zukunft standartmäßig haben *gg*

Frank
18.06.2004, 19:40
Na lass mal. Vorwiegend soll es ja doch um die Sache, das "umherschlagen" will ich ja nu nicht gerade noch fördern. Denke für Schwerfällige haben wir auch so das passende.

:idea: Anmerkung:
So, möchte den Thread aber jetzt nicht zur Smile Diskussion ausarten lassen. Generell sollten alle bemüht sein das das eigentlich Thema der Threads nicht so oft durch Zwischenbemerkungen völlig in den Hintergrund gerät. In der letzten Zeit kommt das leider öfters vor. Das ist etwas nervig weil man beim Suchen von Informationen dann oft wesentlich länger braucht oder garnichts findet. Also immer etwas drauf achten das die Thread-Überschrift auch das Thema sein sollte und manchmal etwas zurückhaltender mit Zwischenbemerkungen sein.

Gruß Frank

The.Tomac
20.06.2004, 10:58
jo das stimmt

sooorry :-#