PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Ohne Vorkenntnisse Roboter für Wettbewerb konstruieren



KiwiJoghurt
26.07.2008, 12:37
Hallo,

Ich will einen Roboter für ein konkretes Projekt entwerfen. Und zwar ein Roboter für den Robocup Junior Rescue. Ich und mein Team haben dort in den vergangenen drei Jahren mit einem Legoroboter teilgenommen. Nun wollen wir uns daran wagen einen selber zu bauen. Leider hat keiner von uns Ahnung wie man sowas anstellt. Ich habe ein bischen nach Boards gegoogelt. Dabei sind mir die Boards von http://www.shop.robotikhardware.de/ aufgefallen. Ich denke auf der Basis so eines Boards kann man so einen Roboter gut Konstruieren. Was muss er können? Er muss einer Schwarzen Linie auf weißem Grund folgen können, Silberne und Grüne Männchen (aus klebeband) finden, Hindernisse umfahren, eine Rampe mit 25° Steigung überwinden und in einer Speziellen Zone (Rote Zone) ohne Linie eine Suchroutiene fahren, wobei er von (Schutt) Zahnstochern gestört wird. Alternativ nochmal die Orginalregeln von 2007 auf Englisch: http://rcj.sci.brooklyn.cuny.edu/rcj2007/rescue-rules-2007.pdf . Im Anhang noch ein Bild von einem Pacour. Dass heist man braucht zum Durchfahren:
1. Lichtsensoren zum Folgen der Linie und finden der
Männchen
2.Taster und Abstandssensoren zum Erkennen von Hindernissen und Wänden
3. Ein Neigungssensor zum Erkennen der Rampe
4. Einen Kompasssensor zum Durchfahren der 'roten Zone'
5. Sensoren zum Messen der Drehzahl der Motoren
Wir brauchen also ein Board an das wir alle diese Sensoren in großer zahl anschließen können. Leider fängt das Problem schon damit an, das ich nicht weiß wo man geeignete Sensoren kostengünstig her bekommt und welche Anschlüsse ein Board haben muss, um diese anzusteuern. Ich habe bei http://www.shop.robotikhardware.de verschiedene Senosoren gesehen, weiß aber nicht ob diese geeignet sind und welche Anschlüsse sie haben.
Schlussendlich lauten die Fragen dann also so: Welches Board ist für so ein Vorhaben passend? Gibt es Sensoren, die vernünftige Werte zurückgeben und sich in größerer Zahl an das Board klemmen lassen? Was für ausgänge brauchen diese Sensoren? Bietet das Board auch andere wichtige Funktionen wie zb. genügend Rechenleistung, Timer, kleine Lautsprecher, genügen Speicher und Unterstützung von Hochsprachen wie c?

Ich währe sehr dankbar wenn ihr mir wenigstens ein Paar Boards nennen köntet die für sowas taugen. Danke im Voraus,

Pascal.

ikarus_177
26.07.2008, 16:07
Hi Pascal,

das schon angesprochene RN-Control Board ist sicher ein guter Einstieg in die Welt der Microcontroller. Am Board hat ein ATMega32 seinen Platz, der auf bis zu 16 MHz läuft sowie 32KB-Flash Speicher 2 KB RAM sowie ein EEPROM bietet. Hier könnte man schon einige Sensoren anschließen, genügend Ports sollten schon verfügbar sein.

Als Abstandssensor könnte man einen US oder einen IR-Sensor verwenden, das hängt von der Genauigkeit ab, die erzielt werden muss, und vom maximal zu messenden Abstand. (Die IR-Sensoren von Sharp gibts zum Beispiel sehr günstig bei www.csd.de

Zu den Neigungssensoren: da gabs mal einen Thread (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=27021&highlight=neigungssensor+asuro), in dem ein Neigungssensor an einen ASURO angeschlossen wurde, vllt. kannst du da was herauslesen, was für dich passend wäre.

Den Kompasssensor könnte man ebenfalls bei robotikhardware.de bestellen, dass wäre dann wohl der CMPS03.

Für die Bestimmung der Motordrehzahl wäre evtl. eine Gabellichtschranke sinnvoll. Da kann man einfach in ein Zahnrad vom Motor/Getriebe in gewissen Abständen Löcher hineinbohren, und so aus der Frequenz der Lichtschranke auf die gefahrene Geschwindigkeit schließen.

Auch die Art der Ansteuerung der Motoren wäre zu überlegen, da brauchst du noch einen Motortreiber, der aber schon am RN-Control integriert ist und bequem angesteuert werden kann.

Dieses Board kann auch in C programmiert werden, damit hab ich aber keine Erfahrung.

Auch ein kleiner Beeper zum Generieren von Signaltönen findet sich auf dem Board.

Was mich noch interessieren würde: mit welchem Lego-Roboter habt ihr da am Bewerb teilgenommen? Der NXT (soviel weiß ich) verfügt ja über einen ARM, ein sehr viel leistungsfähigerer Controller als der ATMega32.

Falls aber tatsächlich so viel Leistung erforderlich ist, kann man auch einfach mehrere Controller über ein Bussystem verbinden und so die Leistung erheblich steigern.

Viele Grüße
ikarus_177

KiwiJoghurt
26.07.2008, 17:36
Ja, ob die Rechenleistun reicht, mal sehen, Wichtig ist halt, das man viele Sensoren ansteuern kann und das das Board auch genügend Power hat, diese auszuwerten.
Die Frage ist was für Motoren man nimmt, ich würde ja Servos nehmen, das sie glaube ich am wenigsten Platz verbrauchen, der Roboter muss nämlich in einen Zylinder passen, der 22cm hoch ist und den selben Durchmesser hat. Außerdem darf er nicht so viel wiegen....
Aber ich habe keine Ahnung ob sie genügend Kraft haben. Vieleicht doch Getriebemotoren.....?

Bei den Abstandssensoren ist wichtig das sie einen Bereich von etwa 1-40cm gut auseinanderhalten können...

Kann man die Lichtsensoren von www.shop.robotikhardware.de benutzen, oder was für welche braucht man?

Über welche Ports laufen denn die Sensoren? Dann weiß ich auf was ich achten muss wenn ich mir das Board anschaue, was ist für mich überhaupt wichtig?/was brauche ich?

Eine weitere Frage ist, wie viele Sensoren ich an das Board anklemmen kann, da ich zum Teil mehrere Reien Lichtsensoren anschließen möchte, dazu kommen dann noch mehrere Taster und Abstandssensoren.

Besserwessi
26.07.2008, 20:27
Wenn einem die Rechenleistung nicht ausreichen sollte, kann man einige kompliziertere Sensoren, z.B. Linien oder Abstand auf einen Extra Controller auslagern. Eigentlich sollter das aber mit einem Controller reichen, wenn man es effizient programmiert.

Als Motor gibt es ein relativ kompaktes Modul mit 2 Getreibmotoren, das sollte etwa richtige Größenordnung sein.

Beim Kompass, ist nicht klar, ob man den wirklich braucht um ein Stück geradeaus zu fahren.

Gerade wenn das der erste völlig selbst entworfene Robot ist, sollte man erst man etwas einfacher anfangen und sachen wie den Kompass oder neigungssensor später dazunehmen.

Foooob
27.07.2008, 01:45
Ich hab mir jetzt aus Zeitgründen nicht alles genau durchgelesen, bitte nicht steinigen O:)


Hier mal mein Senf ;-)


- Servos (nicht gehackt) haben nur einen Drehbereich von ca. 180°. Sie können keine vollen Drehungen machen. Wenn du Getriebemotoren verwendest, solltest du Sensoren zur Drehrichtungs- und Streckenbestimmung miteinplanen. Bei solchen Wettbewerben ist wichtiger zu wissen wie weit man genau gefahren ist als wie schnell man fährt...
Ich würde da gleich zu Schrittmotoren greifen.

- Das Kompassmodul würde ich in Turnieren nicht einsetzten! Und wenn dann nur wenn es redundant ist. Ich habe schon von vielen gehört, die auf den Sensor gesetzt haben und der dann im Turnier nicht mehr funktioniert hat weil die ganzen Felder im Saal (WLAN, Handyfunk, RC-Funk, etc...) den Sensor total verwirren.


Wenn ihr vorher noch nie soetwas gemacht habt würde ich erst einmal kleine Brötchen backen und mich ersteinmal in die Materie einarbeiten.
Das allerwichtigste an solchen Geräten ist nicht die Hardware sondern die Software. Die tollsten Sensoren helfen nicht viel wenn man sie nicht gekonnt einsetzt und durch gute Algorithmen ins System miteinbezieht.

Wann habt ihr denn den Wettbewerb?

Besserwessi
27.07.2008, 09:38
Mit HF störungen sollte der Kompass eigentlich noch klar kommen. Die Gefahr von Einstrahlungen trifft aber alle Empfundlichen Sensoren.

Ein echtes problem können aber Magente (z.B. in Motoren) und Eisenteile sein, und sei es auch nur im Stahlbeton. Daher ist ein Kompass in Gebäuden immer mit Vorsicht zu behandeln.

Klein anfangen kann da nichts schaden, und sei es auch nur mit einem Asuro. Von der Mechanik ist das ein verbreitetes und einfaches. Schrittmotoren haben als Nachteil einen relativ hohen Stromverbrauch und relativ hohes Gewicht. Für wirkliche Höchstleistungen sind sie damit kaum geeignet.

ikarus_177
27.07.2008, 10:14
Hi,

der Mega32 hat ja 32 frei verwendbare I/O - Leitungen. Für einen Infrarotsensor (der im Bereich 0 - 80cm ganz gut funktioniert), benötigt man einen analogen Port, davon hat der Mega32 8, d.h. man könnte max. 8 IR-Sensoren verwenden.

Die Auswertung funktioniert bei den IR von Sharp über eine Spannung, die der Sensor ausgibt. Diese Spannung hängt von der Entfernung ab, die der Sensor misst und kann über eben diesen analogen Port ausgewertet werden und über eine Formel (siehe Wiki) in die Entferung umgerechnet werden.

Der Kompasssensor kann über I2C in das System eingebunden werden, und über bequeme Routinen abgefragt werden.

Für die Taster nimmt man ganz normale I/O - Pins, der Taster schließt dann entweder den Kontakt nach VCC bzw. nach GND. Dass kann man dann auch entsprechend im Programm erkennen und darauf reagieren.

Für die Motoren, die sollen wahrscheinlich auch in ihrer Geschwindigkeit regulierbar sein? Da braucht man dann einen PWM - Ausgang. Der Mega32 hat davon 3 solcher Ausgänge, die Hardwaremäßig angesteuert werden können, d.h. man braucht im Programm keine Rechenzeit für die Ausgabe des Signals verwenden. Es können aber auch an allen anderen Ports solche Signale ausgegeben werden können, dass muss man dann aber mit Software machen.

... mich würde trotzdem noch interessieren, mit welchem Roboter ihr da bisher teilgenommen habt, da wir in der Schule auch was mit diesen Lego Robotern machen [-o< ...


Viele Grüße
ikarus_177

KiwiJoghurt
27.07.2008, 11:30
Danke allen für die Schnelle Antwort ;)

@Besserwessi

Wenn du dieses Getriebemodul meinst: http://www.shop.robotikhardware.de/shop/catalog/product_info.php?cPath=70&products_id=92
wird wohl das Problem sein, dass wir auf der Rampe aufliegen könnten, dadie Motoren so lang sind. Aber ich muss mir das nochmal anschauen. denn bei der Konstruktion muss man stark darauf achten, das man einen Roboter baut, der gut drehen kann, die rampe hoch kommt und dabei die Sensoren möglichst nah am Boden hällt, das ist schwierig zu realisieren.

Das mit dem Kompass ist doch schon relativ wichtig das es sein kann, das die Räder auf dem Schutt (Zahnstocher oder ähnliches) durchdrehen und man dadurch nicht bestimmen kann, wie weit man gedreht hat/wo man ist.
Bei der WM hatte ein Team aus Deutschland so einen Kompassensor und das hat ihnen in der 'Roten Zone' doch noch einmal einen größeren Vorteil gebracht!

Klein anfangen ist hier leider sehr schwierig, da wir die Teile einfach brauchen um durch den Pacour durch zu kommen....

@Foooob:

Naja, ich hätte jetzt servos genommen, da sie schön kompackt sind, aber du hast recht, zumindest die Zahl der Umdrehungen zu kennen.
Das Problem bei Schittmotoren ist halt das Gewicht, die größe und der Strombedarf. Schrittmotoren haben halt eigenschaften, die genau entgegengesetzt zu dem stehen, was wir brauchen. Ein Team an unserer Schule hat Servos gehackt und die Drehsperre entfernt. Ich weiß aber nicht wie sie es geschafft haben, das beide Motoren gleich schnell fahren, was einer der Grundforaussetzungen für einen Roboter ist, da er sonst verzieht.

Der Kompass hat bei einem anderen Team ganz gut funktioniert (siehe Antwort zu Besserwessis Beitrag :)) Ich glaube auch das Kompasssensoren da relativ unempfindlich sind. Zdem versuchen die Organisatoren die Pacours von Magnetfeldern vern zu halten. Bei der WM zb. ist ja nicht nur der Robocup Junior sondern auch der Große. Vor allem für die Humanoiden etc. ist das ja nicht ganz unerheblich, das kein Magnetfeld da ist.

Ja, die Programierung ist wichtig, aber ich denke nach drei Jahren Wettbewerbserfahrung und eben so langem Informatikuntericht kriegen wir das schon so halbwegs effizient hin. außerdem können wir ja noch ein Board als Slave anschließen ;)

ikarus_177:

Wir haben in den Beiden ersten Jahren mit dem RCX Teilgenommen und dieses Jahr mit dem NXT, was auch halbwegs gut geklappt hat, da wir an die 4 Ports, die das Teil hat, 7 Sensoren dran gekrigt haben (RCX Adapdakabeln sei dank ;)) Aber jetzt haben wir die Schnauze halt voll von diesem minimalistischen System ;) Wobei der Weltmeister unserer Liga (Robocup Junior Rescue secondary) auch einen NXT fährt und wir mit dem dritten Platz auch nicht so schlecht wahren ;). Also es ist Machbar mit einem NXT oben mit zu fahren, aber der Wettbewerb wird von Jahr zu Jahr härter da immer mehr Teams ihren Roboter selber bauen und so allein von der Hardware her einen Vorteil haben.

Foooob
27.07.2008, 11:47
Achso, na dann ;-)
Nein, ich dachte ihr wärt völlig neu auf diesem Gebiet. Also keine Kenntnisse in Elektronik und Programmierung. Dann wärs heikel geworden...aber so ;-)


Ich habe selbst noch an keinem Wettbewerb teilgenommen, aber das mit dem Kompassmodul habe ich schon von mehreren gehört.

Der Sensor misst Flussdichten im µT-Bereich. Und das ist einfach so wenig, dass es leicht zu stören ist. An die Sache mit den elektrischen Feldern glaube ich selbst nicht richtig, mir haben die das immer gesagt ;-)
Von irgendwelchen Metallteilen oder Robotern in der Umgebung rührt dieses Verhalten aber definitiv nicht. Ich habe selbst einen solchen Sensor hier. Metallteile oder gar Motoren in der unmittelbaren Umgebung (<10cm bis 20cm) haben teils massive Auswirkungen auf den Sensor, aber alles was etwas weiter weg ist wirkt sich nicht mehr oder nur gering auf die Messungen aus.


Zu den Servos.
Ja die kann man hacken, desswegen habe ich mich auch extra auf die nicht gehackten bezogen. Es gibt einige Seiten im Netz wo das mit dem Servohacking beschrieben ist.

KiwiJoghurt
29.07.2008, 09:35
So, um nochmal alle Informationen Zusammenzutragen, was man wo anschließt:

1. Tastsensoren können an einfache I/O Ports angeschlossen werden. Da von hat das RN-Board 32.
2. IR-Abstandssensoren (und Utraschallsensoren?) brauchen analoge Ports, davon gibts 8.
3. Servos brachen einen pwm Port, davon gibts drei und man kann dieses Signal auch manuell durch andere Ports geben.

Nun fehlen noch Angaben über Gabellichtschranken (danke ikarus_177 für die gute Idee), über Lichtsensoren und Neigungssensoren.

@Foooob:

Naja, ausprobieren kann man das mit dem Kompass ja mal. Die Teile wird uns wohl die Schule finanzieren ;)

oberallgeier
29.07.2008, 10:55
Hallo KiwiJoghurt,

ihr habt ja schon tolle Dinge geleistet und ein schönes Vorhaben. Da werde ich neidisch, ich bin seit Monaten Anfänger - aber mein kleines, eigenes Projekt (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=373999#373999)kann schon minimalistisch autonom laufen. Vom RNControl bin ich für mein Projekt abgekommen, ich habe einen mega168/20MHz - der hat den einen oder anderen Vorteil für meine Ansprüche. Sein Takt z.B. ist mit 20 MHz schon mal 25% schneller als der M32 :).


... alle Informationen ... was man wo anschließt:

1. Tastsensoren können an einfache I/O Ports angeschlossen werden. Da von hat das RN-Board 32.
2. IR-Abstandssensoren (und Utraschallsensoren?) brauchen analoge Ports, davon gibts 8.
3. Servos brachen einen pwm Port, davon gibts drei und man kann dieses Signal auch manuell durch andere Ports geben.

Nun fehlen noch Angaben über Gabellichtschranken ...
Das kann man so nicht wirklich stehen lassen:

ad 1. Das stimmt, aber . . . Das Board RNControl hat 5 Taster an einem analogen Port. Auch der asuro hat seine sechs Kollisionstaster an einem analogen Port. Vielleicht schaut ihr mal dort in die Manuals/Beschreibungen/Schaltpläne.
ad 2. Auch das kann man anders lösen. Ich habe drei IR-Abstandssensoren (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=371690#371690), die an drei Ports digital eingelesen werden, dazu habe ich eine P WM für die drei irLED´s (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=355976#355976).
ad 3. Hardware-P WM´s brauchen die entsprechenden Ports, stimmt. Der Mega32 hat davon drei (http://atmel.com/dyn/products/param_table.asp?family_id=607&OrderBy=1250&Direction=ASC). Aber ich lasse z.B. (m)einen S ervo softwaremässig im Interrupt laufen auf einem T imer, den ich sowieso für Zeitnahmen brauche z.B. zu Drehzahlmessung über die Gabellichtschranke für die Motoren, allgemeine Zeitnahmen etc.

ad Gabellichtschranke: Ich habe sie in meine gehackten S ervos (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=344432#344432)montiert, sie geben das Signal an je einen externen Interrupt, bei dem ich auf die steigende Flanke triggere.

Vielleicht hilft Dir das zu all den anderen Informationen, die schon hier sind.

KiwiJoghurt
31.07.2008, 18:51
@oberallgeier: Das mit den Tastern ist warscheinlich nicht so schwierig, wenn man für jeden Taster eine andere Spannug verwendet. Wenn man diese Werte kennt, müsste man aus dem Gresammtergebnis herausrechnen können, welche Taster gedrückt sind.
Den Satz mit der Gabellichtschranke habe ich noch nicht ganz verstanden, ich habe zwar gesehen, wie du die Lichtschranke angebracht hast, aber ab dem Interrupt komme ich nicht mehr mit. ](*,)

Kann es sein, das 'analogen Ports' einen ADC beinhalten?
Und I/O Ports sind Leitungen mit denen man die Zustände Eins und Null senden bzw. empfangen kann ja?
Dann müste mann doch an 10 I/O Ports ein 10 Bit Analog Digital Wandler Anschließen können, der, sagen wir, einen Lichtsensor auswertet. Wenn man dann noch 4 weitere Ports dazunimmt kann man dafür sorgen, das bei einer bestimmten kombi dieser 4 Ports mit einer geschickten Multiplexerschaltung ein bestimmter Lichtsensor seine Werte an den ADC sendet, solange bis sich die Kombo ändert. Dann sendet ein anderer Lichtsensor. Ist das möglich?

oberallgeier
01.08.2008, 14:05
Hallo KiwiJoghurt,


... mit den Tastern ist warscheinlich nicht so schwierig, wenn man für jeden Taster eine andere Spannug verwendet ...Genau so wird es ja auch gemacht. Die Taster bedienen verschiedene Spannungsteiler an einem einzigen AD-Wandler (ADC = Analog Digital Converter), so dass die Spannung am ADC davon abhängt, welcher Taster gedrückt ist. Bei geschickter Wahl der Widerstände könnten auch mehrere Taster, auch gleichzeitig, erkannt werden. Die Widerstände, die Versorgungsspannung und die Referenzspannung - letztere sorgfältig entstören, steht im doc - sollen dann sehr genau sein.


... Den Satz mit der Gabellichtschranke habe ich noch nicht ganz verstanden, ich habe zwar gesehen, wie du die Lichtschranke angebracht hast, aber ab dem Interrupt komme ich nicht mehr mit ...Ja ja, mein Jammer - ich schreibe immer viel, aber nicht sehr verständlich. Schlimm schlimm.

Der Lichtstrom der Gabellichtschranke wird von einer Art Propeller auf der Motornabe unterbrochen. Deshalb gibt sie mir ein Signal "beinahe 5V", und "knapp über Null Volt", also logisch high oder low. Dieses Signal geht an einen Pin "external interrupt request". Das ist ein ziemlich hoch priorisierter Interrupt der anspricht, wenn der Pin entsprechend initialisiert ist und einen Pegelwandel 0->1, also steigende Flanke, oder 1->0, also fallende Flanke, erkennt. Ich habe den für steigende Flanke initialisiert (ist eigentlich gehupft wie gesprungen) und bei jedem Mal, wenn dieser Pin erkennt, dass eine solche Flanke vorliegt, dass also der Unterbrecher den Lichtstrom frei gegeben hat und die Lichtschranke von 0 auf 1 geht, dann wird die Interruptroutine aufgerufen und ich schreibe darin den Wert eines Zeitzähler in eine Variable die etwas so heisst "aktueller_Zeitwert_von_Interrupt_0". Ausserdem zähle ich von diesem Wert den Wert des vorher notierten "alt_aktueller_Zeitwert_von_Interrupt_0" ab und notiere diesen Wert als Dauer zwischen dem vorhergehenden und dem aktuellen Interrupt. Dieser Wert ist ein Mass für die Drehzahl meines Motors. Ist das verständlicher? (puhhh - hoffentlich - ist halt leider wieder ewig lang).


... Kann es sein, das 'analogen Ports' einen ADC beinhalten?
Und I/O Ports sind Leitungen mit denen man die Zustände Eins und Null senden bzw. empfangen kann ja? ...
Jein. Ein analoger Port kann bei unseren Controllern als ADC arbeiten, aber auch als "normaler" digitaler Output oder Input. Es kommt darauf an, wie der Port aktuell initialisiert ist. Ich könnte den Port zum Start als digitalen Input nehmen und auf den Kontakt einer einzigen Taste warten - und den gleichen Port anschliessend für ...irgendetwas Analoges... initialisieren und verwenden. USW.


... Dann müste mann doch an 10 I/O Ports ein 10 Bit Analog Digital Wandler Anschließen können, der, sagen wir, einen Lichtsensor auswertet. Wenn man dann noch 4 weitere Ports dazunimmt kann man dafür sorgen, das bei einer bestimmten kombi dieser 4 Ports mit einer geschickten Multiplexerschaltung ein bestimmter Lichtsensor seine Werte an den ADC sendet, solange bis sich die Kombo ändert. Dann sendet ein anderer Lichtsensor. Ist das möglich?
UUUUPs - das klingt jetzt für mich schwer verständlich. Aber mal überlegen.

Soweit ich es weiß, können alle AD-Wandler bei ATMEL-Controllern eine 10 Bit Wandlung durchführen. Die kann bei entsprechender Parameterisierung auch als 8 Bit Wandlung genutzt werden.

Controller die 10 Ports mit ADC Funktion haben, also z.B. der tiny26 (11 ADC) oder der mega640 (16) oder der mega2560 (16) können an jedem dieser Ports nach entsprechender Initialisierung einen analogen Wert einlesen bzw. auswerten (lassen). Der Controller den ich einigermassen gut kenne, der m168, hat 6 oder 8 AD´-Pins, je nach Bauart, und kann die für AD-Wandlungen nutzen. Du hast recht - es ist nur ein einziger AD-Converter drauf, der gemultiplext werden muss. Auch weiter hast Du recht: wenn Du jetzt vier (sagen wir mal DIP-) Schalter hast, dann kannst Du darüber durch entsprechende Kombination einen dieser Ports auswählen (= DIP-Schalter durch Software einlesen und bei Änderung entsprechenden Port initialisieren) - bei 6 ADC´s reichen sogar drei Schalter. Für Deine 10 Ports brauchst Du aber fünf Bits (schon klar, oder?). Dabei wird je nach Schalterstellung die ADC-Initialisierung entsprechende Parameter für die Ports setzen bzw. in das Multiplex-Register senden. Genaueres steht in den doc´s von Atmel (http://www.atmel.com/dyn/products/datasheets.asp?family_id=607) (<<<= bequeme Ausrede, wenn man nicht mehr weiter weiß!). Trifft das die Frage?

KiwiJoghurt
01.08.2008, 17:42
@oberallgeier: Danke für die ausführliche Antwort.
Ser letzte Teil ist wohl ein wenig verwirrend, deswegen volgt nochmal eine ausführliche Erklärung:
Mein Ziel war es mit 12-14 Digitalen Ports möglichst viele Sensoren zu betreiben, die ein analoges Signal geben. Eigentlich ist das für das Thema auch garnicht entscheidend, ist halt so ein wenig der Versuch die Infos, die ich hier kriege praktisch zu verarbeiten.
Versuch der Erklärung: Also Je nach dem, welche der vier Ports eine 1 senden
wird auf der anderen Seite ein Sensor geschaltet der sein analoges Signal dann an den ADC gibt. Der sendet dieses dann in digitaler Form zurück. Besser sieht man das Ganze warscheinlich an der Zeichnung die ich angehängt habe. Hier ist auch noch eine Tabelle mit möglichen Kombinationen der vier Steuerports:

1. 0000
2. 0001
3. 0010
4. 0100
5. 1000
6. 1001
7. 1010
8. 1100
9. 0101
10. 0011
11. 0110
12. 0111
13. 1011
14. 1101
15. 1110
16. 1111

oberallgeier
01.08.2008, 18:14
Hi, KiwiJoghurt,

Du musst mal wirklich dringend das ATMEL-doc zu dem Controller lesen, den Du einsetzen willst - den Abschnitt über die ADC´s. Auf alle Fälle wird es notwendig sein, dass Du das Tutorial ADC (http://www.mikrocontroller.net/articles/AVR-Tutorial:_ADC)durcharbeitest.


Mein Ziel ... mit 12-14 Digitalen Ports möglichst viele Sensoren zu betreiben, die ein analoges Signal geben. ...
Das hatte ich so ungefähr verstanden.


... Eigentlich ist das für das Thema auch garnicht entscheidend, ist halt so ein wenig der Versuch die Infos, die ich hier kriege praktisch zu verarbeiten. ...
Dann wär es also doppelt gut, ein Tutorial über die Controller (http://www.mikrocontroller.net/articles/AVR-Tutorial) durchzuarbeiten. Dort steht alles über IO-Ports, deren Verwendung und wie man die konfiguriert.


... welche der vier Ports eine 1 senden
wird auf der anderen Seite ein Sensor geschaltet der sein analoges Signal dann an den ADC gibt. ...Also brauchst Du ein separates IC, das sein Signal an den ADC-Port des Mikrocontrollers leitet. Ein Multiplexer? Mit denen kenne ich mich nicht aus. Intern werden bei den Controllern keine Signale gesandt (das hatte ich schon vorher so verstanden - aber gehofft, dass es nicht so gemeint sei).


... der sein analoges Signal dann an den ADC gibt. Der sendet dieses dann in digitaler Form zurück. ...
Wie gesagt, guck Dir mal die Tutorials zu den Controllern an. Ich kann für diese Aufgabenstellung nicht helfen.

KiwiJoghurt
01.08.2008, 20:02
Danke für den Link zu diesem umfangreichen Tutorial.
Als IC wollte ich einen Microcontroller verwenden und ihn entsprechend für diese Aufgabe Programieren. Vom rein Logischen Aspekt sollte das auch so funktionieren. Und wenn ich nur I/O Ports erweitern will kann ich ja Schieberegister (http://www.mikrocontroller.net/articles/AVR-Tutorial:_Schieberegister) verwenden ;)

KiwiJoghurt
03.08.2008, 20:59
So, um noch mal auf den Controller zurück zu kommen. Ich hatte überlegt das RN-controllerboard zu nehmen. Allerdings gibt es da das Problem, dass wir nur 7 analoge Ports nutzen können (Da wir warscheinlich die Taster brauchen). Wir wollen aber mindestens 10 Lichtsensoren und 5 Entfernungssensoren anschließen. Dass heißt, wir müssen mehrere Sensoren an einem Port anbringen. dazu habe ich mir überlegt könnte man die Sensoren so ansteuern, das man sie mit einem I/O Port verbindet und sie nur dann AN sind, wenn der I/O Port eine 1 liefert. Die Alternative währe das
RN-Mega2560 Board. Aber auch das bietet warscheinlich zu wenig analoge Ports.

Ich habe mal einen Schaltplan entworfen, da ich aber nur über die elementarsten Elektrotechnikkentnisse verfüge kann es aber sein, das die Schaltung so garnicht existieren kann, ich Transistoren und Dioden faltsch herum verwendet habe und die Stromversorgung so nicht klappt. Ich bin also über jede Anregung und Verbesserung froh. Niel Spass also beim Zerflücken meiner Schaltung :D

KiwiJoghurt
07.08.2008, 14:38
Also eine einfache Erklärung, was richtig oder faltsch ist, würde schon genügen O:)

i_make_it
07.08.2008, 21:12
Mit der Programmierung eines Multiplexers lädst Du dir aber eine Menge Rechenzeit für wenig Nutzen auf.
Warum dann nicht gleich Ein paar ADC's mit I2C Interface nehmen?
Die wandeln dann alle Paralell und puffern die Werte bis der Busmaster sie abfragt.
Kostet zwar mehr aber wenn Du Wettbewerbtauglich sein willst, solltest Du wo es geht Rechenzeit auslagern damit der MC frei wird für wichtiges.

Anstelle eines Kompass Moduls kann man auch 6 2-Achs Beschleunigungssensoren verwenden. Damit bekommst Du eine autake Trägheitsnavigation die alle drei translatorischen und rotatorischen Achsen abdeckt. Kosten natürlich auch wieder und sollte von einem eigenem MC ausgewertet werden.

Ich selbst habe zwar an keinen Wettbewerben teilgenommen, aber nehme die Aufgabenstellungen meist um meine Testparcours zu gestalten.

KiwiJoghurt
08.08.2008, 08:41
Ist die Schaltung denn richtig oder nicht? O.o


Mit der Programmierung eines Multiplexers lädst Du dir aber eine Menge Rechenzeit für wenig Nutzen auf.

Wiso? Ich brauche nur den einen Port auf low zu legen, einen anderen auf high und den Wert des Analogen Ports abzufragen. Bracht das so viel Rechenleistung? Ich brauche von den I/O Ports nur wenige.
und so würde ich die Zahl der Anschließbaren Sensoren Verdoppeln oder vervierfachen. das ist doch eine große Wirkung.


Warum dann nicht gleich Ein paar ADC's mit I2C Interface nehmen?
Die wandeln dann alle Paralell und puffern die Werte bis der Busmaster sie abfragt.
Kostet zwar mehr aber wenn Du Wettbewerbtauglich sein willst, solltest Du wo es geht Rechenzeit auslagern damit der MC frei wird für wichtiges.

Ja das ist richtig, es würde eine Porterweiterung geben. Aber das kostet ja leider und du weist ja sicher wie viel Geld staatliche Einrichtungen Wie Schulen haben :/ Und da dieses Projekt nunmal sowiso nicht so billig ist (mindestens 270 Euro, für eine AG ist das schon viel) wir das wohl schwer :)
Aber ich denke das wir auch so Wettbewerbstauglich sind, wir sind dieses Jahr mit 4 Lichtsensoren und drei Bumpern am NXT immerhin Weltranglistenplatz drei in der Einzelwertung :roll: *angeb*



Anstelle eines Kompass Moduls kann man auch 6 2-Achs Beschleunigungssensoren verwenden. Damit bekommst Du eine autake Trägheitsnavigation die alle drei translatorischen und rotatorischen Achsen abdeckt. Kosten natürlich auch wieder und sollte von einem eigenem MC ausgewertet werden.

O.o Da ist der Slave ja nur noch am Rechnen. Außerdem ist das wohl nicht nötig, da wir nur wissen müssen, ob wir gerade fahren und selbst da ist noch nicht raus, ob wir einen Kompass brachen, da wir vor haben die Servos so zu modivizieren, das sie die 'Schrittzahl' mit Hilfe einer Lichtschranke messen können. Dann würde auch die Navigation in der roten Zone nur mit den Motoren möglich sein. Ist vieleicht sogar besser, ohne Kompass zu fahren.



Ich selbst habe zwar an keinen Wettbewerben teilgenommen, aber nehme die Aufgabenstellungen meist um meine Testparcours zu gestalten.

Du kannst ja auch mal dort teil nehmen :) Leider geht der Wettbewerb nur bis 18 oder 19.

i_make_it
08.08.2008, 11:51
Teilnehmen könnte ich nur wenn ich mein Alter durch die Anzahl meiner derzeit einsatzbereiten Roboter Teile.

Das Problem mit deinem Aufbau ist, das Du dich selbst darum kümmern must daß deine Sensoren unverfälchte Signeale liefern.
Du möchtest Ja "n" Analogsignale gemultiplext auf einen ADC bringen.
Das heist deine Selektionsschalter müssen im Frequenzbereich der veränderlichen Signale geschützt sein gegen Nebensprechen.
Wenn Du eine 10 Bit Digitalisierung bei 5V vorhast, ist ein Digit knapp 4,9mV.
Bei einem IR Entfernungssensor von 0-80cm mit Analogausgang ist ein Digit knapp 0,8mm.
Wenn deine Signalführung und der Signalselektor 1% Nebensprechen in das Nutzsignal einkoppeln, sind das 50mV oder 10 Digits.
Für den Entfernungssensor sind das plus / minus 8mm.
Bei 5% Einkopplung, 40mm.
Da stellt sich die Frage was kostet weniger Die Signalkonditionierung und der höherwertige Selektor oder die I2C Bausteine die dann über einen recht robusten Digitalen Buskommunizieren.

Als ich mein erstes (nicht mobil) Roboter Projekt an meiner Schuhle hatte, habe ich eine Interface Schaltung für eine 9V negativ Logik zu einer 24V positiv Logik, aus eigener Tasche finanziert und halt nach Projektschluß das Interface behalten und dann in eigenen Projekten verwertet.
Wir hatten damals ein Buget von 100.-DM für zusätzliche Anschaffungen.
Platinen wurden von Hand per Lackstift geroutet und die Platinen in einer Tupperschüssel auf der Heizung geätzt.
So brauchten Wir nur Platinen und Eisendreichlorid zu kaufen.
Die meisten Bauteile stammten vom Sperrmüll (heute Elektroschrott) und nur wenige Sachen wurden gekauft.

Prinzipiell geht Dein Schaltungsentwurf so. Aber ich empfehle einen Testaufbau in der geplanten Geometrie und dann per Zweikanal Osziloskop (besser 2 Stück) die Signalgüte vor dem Signalselektor und vor dem ADC zu messen und in wie weit Signale der Anderen Sensoren das Signal verschmutzen.
Wenn sich die Analogsignale so langsam ändern das sie wie Gleichspannungssignale zu betrachten sind, ist die Einkopplung vernachlässigbar, aber grade Entfernunssensoren die durch Hindernisse im Vordergrund und den Hintergrund sowie mehrfachreflexionen, teilweise springende Signale liefern können da zu netten Ergebnissen führen.

Beispiel der Robot ist in der Linienverfolgung.
Auf der Linie ein Hinderniss.
Hinderniss wird erkannt, robot schwenkt.
Sensor 1 geht von 10cm auf 80cm, Sensor 2 von 80cm auf 10cm.
Bei 0-5V für 0-80cm heist das Sensor 1 hat einen Spannungshub von 87,5% = 4,375V Sensor 2 den Selben Betrag aber invertiert.
Die durchinduktion enstehende Differenzspannung kann maximal ca.8,6V betragen.
Das kann passieren, muß nicht. Aber man sollte es auf jeden fall in die Überlegungen zum Design mit einbeziehen und prüfen ob es zu nicht vernachlässigbaren Störungen führt.
Ein digitaler Bus mit Fehlerkorrektur schließt das halt komplett aus.
Oder halt eine Komplexe Programmierung die eine Historie vorhält und Fehlwerte rausschmeißen kann. Die verbraucht aber Rechenzeit.

oberallgeier
08.08.2008, 12:20
... Da stellt sich die Frage was kostet weniger Die Signalkonditionierung und der höherwertige Selektor oder die I2C Bausteine die dann über einen recht robusten Digitalen Buskommunizieren ...Da höre ich viel Erfahrung aus eigenen Ergebnissen und Fehlern raus. Und Du hast so recht! Dabei trifft es nicht nur die Konditionierung.

An anderer Stelle suche wir gerade nach dem Grund für sporadisch und selten auftretende, falsche Ergebnisse bei einem ADC - zeigt "Fahrt" an trotz Stillstand. Bei dieser Suche ist deutlich zu sehen, wie komplex alleine das Timing des internen Multiplexers beachtet werden muss, um nicht (zur falschen Zeit) einen nicht-aktuellen Wert auszulesen oder zur Unzeit eine neue Wandlung zu starten, wenn man die mögliche Verarbeitungsleistung des ADC gut ausnutzen will. Signale über einen externen Multiplexer richtig getimt einzukoppeln halte ich für eine Aufgabe, die manches Softwarers (zumindest meine) Fähigkeiten hart beansprucht. Und dies sicher schon dann, wenn man deutlich von der theoretischen Arbeitsleistung des ADC weg bleibt.

KiwiJoghurt
08.08.2008, 12:21
Danke für die umfrangreiche Antwort :)

Ja das ist natürlich ein Problem. Wie kann ich den Aufbau den vor sowas schützen? Und wenn das nicht geht, wie kann ich einen ADC an dden I2C Port bringen. Gibt es nich auch die Möglichkeit einen ADC direkt an 10 oder 12 I/O Ports zu hängen?

i_make_it
09.08.2008, 21:36
Erst mal solltest Du einen Testaufbau machen um zu prüfen in wie weit Du betroffen bist.

Ein Stepper, ein Stück Platine an eine Klemmring Löten und auf die Motorwelle damit. Zwei oder Drei Sensoren in 15-30° zueinander.
Hinderniss in z.B.:10cm, ein Brett als Hintergrund in ca. 70cm.
Jetzt kannst Du einen Sensor anschalten und das unbeeinflusste Signal per Osziloskop messen.
Nachdem Du diese Referenz hast, den oder die anderen Senoren Anschalten und prüfen ob es ein Übersprechen gibt.
Wenn die Möglichkeit besteht, jetzt noch Störeinflüsse von WLAN, Handy, Bluetooth und 433Mhz Sendern prüfen.

Als Schalter kannst Du mit 4016 oder 4066 beginnen.
Wenn Übersprechen auftritt die Kabel schirmen und die Schirme auf Masse legen.
Platine als doppelseitig ausführen, Rückseite als Massefläche, und zwichen die Signalleitungen je eine Masseleitung.
Wenn Du in der Schule im Physik oder E-Technik Labor arbeiten kannst, kommst Du so an die Oszis.
(Ich habe mal die Osterferien so verbracht, und hatte so 16 Stück 2 Kanal Speicheroszis zur Verfügung)

Den Testaufbau kannst Du nehmen um große Teile der berührungslosen Sensorik zu testen, z.B.: auch ein Kompassmodul.
Ggf. ein Stück Modeleisenbahn verlegen und einen Kobaldmagneten aus einer kaputten Festplatte auf einen Wagon.
So kannst Du den Störabstand feststellen.

Zu I2C Infos findest Du hier:
https://www.roboternetz.de/wissen/index.php/I2C
https://www.roboternetz.de/wissen/index.php/I2C_Chip-%C3%9Cbersicht

KiwiJoghurt
10.08.2008, 14:04
Ok, das werde ich einmal probieren. Allerdings kann ich das erst machen, wenn ich alle Teile zusammen habe, was noch gut einen bis zwei Monate dauern kann. Bis da hin werde ich mich wohl noch ein wenig gedulden müssen :/

Kunkel
23.01.2009, 15:12
alsooo... ich weiß zwar nicht wie weit das projekt mittlerweile fortgeschritten ist, aber ich habe eine alternatividee zum magnetkompass. wie wäre es denn, wenn du einen kreiselkompass anstelle eines magnetkompasses verwendest? der ist unabhängig von magnetischen störungen... allerdings braucht er natürlich einen antrieb, damit der energieverlust durch reibung ausgeglichen wird.

KiwiJoghurt
23.01.2009, 16:47
Kreiselkompass? Ich habe leider keine Ahnung wie das funktioniert, ich werde mich mal schlau machen.

Zum Projekt:
Ja, das gibt es noch und läuft jetzt richtig an. Die Schule hat uns ein ATmega2560 Modul von Robotikhardware.de und Sensoren im Wert von annähernd 100 Euro spendiert. Zur Zeit sitzen wir am Layout der Platine, allerdings ohne großartige Vorkenntnisse zu haben, aber ich hoffe das wird schon. Ich habe schon festgestellt, dass ich, als ich dieses Thema noch einmal durchgelesen habe, über meine eigenen Fragen lächeln musste.

KiwiJoghurt
23.01.2009, 19:50
So, wir haben mit dem Layout der Platine begonnen. Wie ich bereits erwähnt habe, bin ich/sind wir momentan nicht so die Leuchte/n auf dem Gebiet. Deswegen entschuldige ich mich am besten schon mal für das was kommt. Ich werde wohl nach dem Try and Error Verfahren arbeiten (müssen). Das ist an sich ein recht effektives Verfahren, jedoch nur für mich. Ich werde also meinen Entwurf online stellen und darauf hoffen das sich jemand die Zeit nimmt die - wahrscheinlich große - Anzahl der Fehler anzumakern. :)

Das erste was wir gemacht haben, ist uns an dem Motortreiber zu versuchen. Als Motortreiber dient dabei der L293D. Vorbild war dabei die Schaltung des c't Bot.
Dabei sollen Motorspannung und die Spannung für das Board voneinander getrennt werden.

Neutro
24.01.2009, 07:38
Hallo KiwiJoghurt,

ich weiss leider nicht genau wie der L293 beschaltet werden muss, aber ich möchte dir den guten Ratschlag geben in deinem Schaltplan Busse zu verwenden, anstatt eine Unzahl von einzelnen Leiterbahnen mit noch mehr kreuzungen zu erstellen. So einen Plan kann später keiner mehr lesen, du selber wahrscheinlich auch nicht. Die Verwendung von Bussen im Schaltplan ist ganz einfach, unten bei den Tools auf Busses klicken, dann die Busleitung einzeichnen. Die Busleitung steht dabei für eine Vielzahl einzelner Verbindungen. Dann auf Name klicken und den Leitungen Namen geben z.B LED1,LED2,Porta.1,.....Wenn du nun auf net klickst wird eine Liste mit den vorher vergebenen Labels angezeigt. Einfach entspechend auswählen und verbinden. Man kann auch ein Label
an mehrere Anschlüsse anbinden, sofern diese verbunden werden sollen. Eagle erstellt später im Board die Verbindungen selbstständig. Um die Übersicht der Namen zu haben kann das Label jeder Busleitung mit dem Label Button eingefügt werden.

Gruß

Neutro

KiwiJoghurt
24.01.2009, 11:09
Danke für den Hinweis, ich habe mal versucht das umzusetzen. Stimmt das so?

Ich habe im Artikel über Motortreiber im RN-Wissen Wiki gelesen, dass, wenn man die Ports 2 und 7 bzw. 10 und 15 beide auf Eins legt, der Motor dann bremst und das dass gewisse Vorteile bietet. Wir wollen einen Getriebemotor mit 10 bis 15 rpm verwenden. Lohnt es sich da, wenn man bremsen kann oder nicht?

Neutro
24.01.2009, 17:01
Das mit der Busleitung sieht schon mal ganz gut, allerdings würde ich die Busleitung ganz von unten bis oben am Mega 2660 Modul verlegen.
Die Namen für die Leitungen solltest du noch mit "Label" dazusetzen, damit du auch weisst wo welche Leitung angeschlossen ist.
Mach man weiter so, ich bin da ganz zuversichtlich das du auf dem richtigen Weg bist.
Viel Erfolg!

Neutro

KiwiJoghurt
25.01.2009, 15:10
Meintest du, dass alle Pins an den Bus sollten? Dann habe ich dich falsch verstanden :)
Hier also mein neuer Versuch.

Neutro
25.01.2009, 15:59
ja genau, so können alle Pins des Boards mit dem Bus verbunden werden.
Denke noch daran die Bezeichnungen der Leitungen mit Label einzufügen und du bist nicht mehr weit vom Profi Entwickler entfernt ;-)
Mit "Name" kannst du die Liste der Labels für deinen Bus auch später noch immer erweitern.

KiwiJoghurt
27.01.2009, 18:41
Danke für den Tipp mit 'Name' hab mich schon gefragt wieso der so viele Fehler anzeigt. Ich habe das jetzt korrigiert. Alle Leitungen die ich verwende stehen im Busnamen.
Ich habe jetzt mit der Beschaltung der Sensoren begonnen, leider bin ich gleich am einfach scheinenden Lichtsensor CNY70 hängen geblieben.
Nach einer Runde googeln und nachdem ich bei Wikipedia noch einmal das ohmsche Gesetz nachgeschaut hatte ](*,) habe ich dann die Schaltung im Anhang zusammengebastelt. Die Leitung VADC führt zu einem ADC Port des Controllers. Ich habe aber den Eindruck da fehlt noch was O.o
Wenn die dann irgendwann korrigiert ist, kann ich die auch in den Wiki Artikel zu cny70 laden, mir ist nämlich aufgefallen, dass eben diese nicht existiert.......(sehr zu meinem Leidwesen :roll: )

Neutro
27.01.2009, 18:53
Schön das es mit den Bussen nun klappt...
Ich selber habe mit dem CNY70 noch keine Efahrungen aber ein Blick
ins Datenblatt besagt das es kein "Lichtsensor" sondern mehr eine Reflex-Lichtschranke ist. Mal danach gegoogelt und das hier gefunden:http://www.strippenstrolch.de/1-2-12-der-reflexkoppler-cny70.html
Ich gehe mal davon aus das du so eine Anwendung im Sinn hast.

MFG

Neutro

KiwiJoghurt
27.01.2009, 19:12
Naja, gut, Lichtsensor, Reflex-Lichtschranke...........

Wieso, greifen die die Spannung vor dem Fototransistor hinter einem so großen Widerstand ab? Das verwirrt mich jetzt........Kann mir das jemand erklären?

Wenn ich das richtig sehe wird ein Digitaler Wert zurückgegeben, der zwischen 0 (Schwarz) und 1 (Weiß) unterscheidet. Ich würde aber einen analogen Wert vorziehen, da ich damit schon Erfahrung habe.
Dann kann ich den Rest einfach weglassen.......

KiwiJoghurt
28.01.2009, 12:03
So, hier habe ich einen neuen Versuch, ich habe das mal so gemacht, wie es im Wiki unter Sensorarten steht, das sieht einleuchtend aus, wobei ich immer noch nicht verstehe, warum Die Spannung am Kollektor und nicht am Emitter gemessen wird. Auch der 47K Widerstand an Vcc leuchtet mir nicht ein, aber nun gut, scheint ja zu funktionieren?

Ist der Motortreiber richtig geschaltet?

Edit: Ich habe nun rausgefunden was die Beschaltung am Sensor soll: Das ist ein Pull-Up Wiederstand und der Fototransistor wird als Schalter Benutzt ](*,) . Leider ist diese Art der Schaltung damit für mich unbrauchbar.
Vieleicht ist die erste Schaltung ja doch richtig?

KiwiJoghurt
08.02.2009, 11:55
So, es gibt neues:

Wir haben ein erstes Chassis gesägt (siehe Anhang). Das wird jedoch nicht das endgültige Chassis werden, das machen wir aus Metallblech (Wahrscheinlich Stahl). Auch wird es wohl nicht der letzte Entwurf werden :) Das Chassis hat einen Durchmesser von 20 cm, die Aussparungen für die Räder sind 5,6 x 2,3 cm groß.
An Motoren haben wir uns erstmal so Standardteile von Conrad mit 9rpm besorgt.
Siehe hier (http://www1.conrad.de/scripts/wgate/zcop_b2c/~flNlc3Npb249UDkwV0dBVEU6Q19BR0FURTAzOjAwMDEuMDBlM y4xY2ZmOTBmOCZ+aHR0cF9jb250ZW50X2NoYXJzZXQ9aXNvLTg 4NTktMSZ+U3RhdGU9NzE0OTAyMTQ4====?~template=PCAT_A REA_S_BROWSE&mfhelp=&p_selected_area=%24ROOT&p_selected_area_fh=&perform_special_action=&glb_user_js=Y&shop=B2C&vgl_artikel_in_index=&product_show_id=&p_page_to_display=DirektSearch&~cookies=1&zhmmh_lfo=&zhmmh_area_kz=&s_haupt_kategorie=&p_searchstring=getriebemotor&p_searchstring_artnr=&p_searchstring_manufac_artnr=&p_search_category=alle&fh_directcall=&r3_matn=&insert_kz=&gvlon=&area_s_url=&brand=&amount=&new_item_quantity=&area_url=&direkt_aufriss_area=&p_countdown=&p_80=&p_80_category=&p_80_article=&p_next_template_after_login=&mindestbestellwert=&login=&password=&bpemail=&bpid=&url=&show_wk=&use_search=3&p_back_template=&template=&kat_save=&updatestr=&vgl_artikel_in_vgl=&titel=&darsteller=&regisseur=&anbieter=&genre=&fsk=&jahr=&jahr2=&dvd_error=X&dvd_empty_error=X&dvd_year_error=&call_dvd=&kna_news=&p_status_scenario=&documentselector=&aktiv=&gewinnspiel=&p_load_area=&p_artikelbilder_mode=&p_sortopt=&page=&p_catalog_max_results=20)
(GETRIEBEMOTOR RB 35 1:600)

Auch am Schaltplan hat sich etwas getan. Wir haben den Motortreiber l293d gegen den l298 eingetauscht, um noch ein Paar Rücklagen zu haben und eventuell den Motorstrom berechnen zu können. Außerdem haben wir noch 4 Schalter zur Navigation im LCD Menu hinzugefügt. Diese werden wir wahrscheinlich softwaremäßig entprellen, es sei denn wir haben auf dem Board später noch Platz übrig :/
Gibt es Freilaufdioden in einem IC? Würde nämlich Platz sparen......

Des weiteren haben wir mit unserem Informatiklehrer wegen der CNY70 gesprochen.
Raus gekommen ist der Schaltplan im Anhang. Wir werden die Schaltung nächste Woche noch einmal in der Schule an einem STK500 Entwicklungsboard testen, jedoch sollte das so funktionieren.

KiwiJoghurt
20.02.2009, 21:54
Ich führe Selbstgespräche 8-[
Jedoch brauche ich jetzt wirklich Hilfe. Ich habe den Schaltplan für die Hauptplatine soweit fertig, ich weiß jedoch nicht, ob ich alles richtig geschaltet habe. (z.B. Abblockkondensatoren irgendwo vergessen etc. )
Der Stecker der auf den klingenden Namen "Sensoren" hört führt zur Sensorplatine die unter dem Roboter angeschraubt werden soll. Die Leitungen L_1 bis l_15 sind Leitungen zu cny70 (Licht-)Sensoren. Die Enable-Leitungen darüber gehören zu den 6 Farbsensoren (TCS230) Ich hatte vor alle an einem Bus zu betreiben und immer für einen Enable zu schalten während die anderen schweigen. (FS = Farbsensor) Die Leitungen FS_S_0 und 1 skalieren das Signal und FS_CS_0 und 1 wählen den Filter.

Die Leitungen PCINT_0 bis 9 sind für Taster bestimmt, wir müssen mal sehen wie wir die entprellen.........Kennt jemand einen IC mit rs-Flip-Flops?

Der Rest ist eigentlich selbsterklärend, ich hoffe auf Antworten, wenn alles richtig ist würde ich dann nämlich das Board routen und das Ding ätzen......

Neutro
21.02.2009, 08:12
Hallo, zu deinem Schaltplan ist mir folgendes aufgefallen:
- ich würde zwischen jedem Vcc und GND Anschluss einen 100nF einsetzen

- Motorentechnisch bin ich ein Anfänger (arbeite gerade mit Schrittmotoren) , aber die Beschaltung des L298 sollte noch einmal überprüft werden, schau mal deswegen im WIKI nach.

-Das entprellen der Taster wird normalerweise Softwaretechnisch gemacht, wenn du umbedingt dafür ein FF nehmen willst geht das 4013.

Viel Erfolg

Neutro

NeroII
21.02.2009, 18:55
ich habe gesehen ihr habt in magdeburg gewonnen, seid ihr da noch mit dem Lego aus China angetreten? der war ja auch nicht schlecht, dem würde ich den Sieg auch zutrauen. was war mit hoppus los? übrigens weißt du noch, ich habe hoppus damals den magnetfeldsensor geliehen der zerstört wurde. die haben gesagt sie zahlen mir wieder einen reagieren aber auf keine mail:(

KiwiJoghurt
22.02.2009, 14:36
So, ich habe noch einmal einen Entwurf mit Abblockkondensatoren gemacht. Wir haben uns jetzt entschieden erstmal keine Platiene zu ätzen. Statt dessen wollen wir die Schaltung auf einer Experimentierplatine aufbauen. Ich hoffe das wird nächste Woche was.....



- ich würde zwischen jedem Vcc und GND Anschluss einen 100nF einsetzen

Habe ich gemacht.

Die Beschaltung des L298 sollte noch einmal überprüft werden, schau mal deswegen im WIKI nach.
Die habe ich aus dem Wiki :)


Das entprellen der Taster wird normalerweise Softwaretechnisch gemacht, wenn du umbedingt dafür ein FF nehmen willst geht das 4013.

Nun ja, wir wollten das über ein Interrupt laufen lassen, mal sehen, wir versuchen das erstmal Softwaretechnisch.

ich habe gesehen ihr habt in magdeburg gewonnen, seid ihr da noch mit dem Lego aus China angetreten?
Ja, wir haben noch einmal den NXT bemüht.

der war ja auch nicht schlecht, dem würde ich den Sieg auch zutrauen.
Ja, mal sehen, wir haben von einem unglücklichen Fehler eines unserer Konkurrenten profitiert, währe dieser nicht gewesen währen wir "nur" zweiter geworden. Das ist also alles relativ. Ich bezweifle dass unser Legomopped bei den Deutschen Meisterschaften einen der ersten drei Plätze belegen wird.......

was war mit hoppus los?
Die haben ihren neuen Roboter mitgebracht, der aber noch nicht programmiert war, also mussten sie ihren alten nehmen, konnten diesen aber nicht programmieren, da ihnen die Software fehlte.....aber sie sind trotzdem vierter geworden