Archiv verlassen und diese Seite im Standarddesign anzeigen : Selbst Bau eines Controlboard
Hi all,
wie ich schon mal gepostet habe brauche ich ein Controlboard für mein robo der 12 Getriebemotoren ansteuern kann (mit an aus und geschwindigkeit) und dann noch 4-6 servos und eingänge für sensoren brauch ich auch. das problem ist also das ich soweit ich weiß 24 ausgänge alein für die motoren brauche plus die für die servos und dann noch pro servo und motor ein eingan für ein geber, wie weitere eingänge für sensoren.
kurz ich brauche ein controlboard mit ca. 30 programierbaren ausgängen (ca. weil ich nicht weiß wieviel ausgänge ich für ein servo brauche) und ca. 40 programierbare eingänge.
da wird wohl jedem klar das es sowas nicht zu kaufen gibt und sich das als ein problem dastellt.
so meine frage an die bastler unter euch kann mir das wer schaltpalnmäßig zurecht machen? (hab so gut wie null ahnung von elektronik) oder lösungsvorschläge (möglichst net zu teuer bin schüler^^)
ich dachte das man das vll wie bei den neuen computern machen kann, also so ne art dualsystem das mehrere kontroler auf einer platine parallel laufen und miteinander komunizieren. geht das?
das ätzen und löten wie teile beschaffen ist dabei kein prob brauche dann halt nur was ich holen muss und nen schaltplan.
hoffe mir kann wer helfen.
mfg Devil
BlackDevil
17.04.2006, 14:47
schau mal in die Wiki. Da sind für verschiedene Minimalbeschaltungen.
Ein Atmel bietet dir 4x8 also 32 frei Programmierbare IO Ports. Wäre also für dich zu wenig da du 70 brauchst. Kann man aber soweit ich weis erweitern.
Bau dir doch einen SChaltplan in Eagle (www.cadsoft.de) mit der Minimalbeschaltung zusammen und bitte darum das ganze zu erweitern?
kalledom
17.04.2006, 14:57
Hallo Devil,
hast Du einen bestimmten Controller im Auge ?
Du könntest das Ganze mit I2C-Bausteinen aufbauen. Da gibt es welche mit 8 Ein- bzw. Ausgängen. Es wären 8 Bausteine (8 x 8 = 64 IO's) erforderlich.
Für den PIC kann ich eine Platine für SPS / Rohrpoststeuerung mit 24 Ein- und 24 Ausgängen anbieten: http://www.domnick-elektronik.de/aktuell.htm#ROPO.
Wenn es ein 16-Bit-Controller sein soll, da kann ich ein Board mit dem 80C166 empfehlen: http://www.domnick-elektronik.de/projekte.htm#BU80C166
Crazy Harry
17.04.2006, 15:06
ich hab eine schaltung mit 2 mega32 und einem PCA9555 laufen: verbunden über i2c. das ganze ist aber keine roboter-anwendung. prinzipiell funktioniert es :) ... auch theoretisch mit bis zu 254 i2c-bausteinen/controllern. dann aber vermutlich nur mit repeatern, da der "normale" i2c-bus nur ca. 20-30 devices kann aufgrund von leitungskapazitäten und längenbeschränkungen.
darwin.nuernberg
17.04.2006, 15:49
Du könntest das Ganze mit I2C-Bausteinen aufbauen.
Mit I²C / TWI kannst Du wohl die Ports erweitern,
aber die Geschwindigkeitsregelung mit PWM wirst Du damit nicht lösen können.
Zumal Du Für einen Motor mindestens zwei Steuersignale benötigst
a) Drehrichtunug (DIR)
b) Motor Enable / PWM für Geschwindigkeits Regelung.
Als erstes schönen dank für die schnellen antworten.
so nun der reihe nache^^
Black Devil
ich habe noch nie ein schaltplan mit sowas selbst erstellt da ich nur einfache elektronik kann.
Kalledom
ich habe kein blassen schimmer wo der unterschied zwischen den beiden ist. eine frage zu den rohrpost board: kann man damit auch pwm signale programieren? und was von beiden würdest du mir empfehlen.
crazy harry
hmm geht das auch auf deutsch für normalos?
hört sich kompliziert an.... also ich habe das so verstanden das du mehrere ics paralelgeschaltet hast aber das das nur beschrenkt möglich ist... wenn das ne lösung ist dann bitte mehr^^ und wenn es geht leichter verständlich
Darwin
du hast wohl ahnung davon und du bist einer der pwm und dir benutzt das kenn ich^^ und genau das wollte ich benutzen
also brauch ich 12 pwm ausgänge und 12 dir ausgänge für die motoren (servos weiß ich nicht)
kalledom
17.04.2006, 17:03
Wenn Du nicht 12 PWM-Steuereinheiten aufbauen möchtest, die Du dann von einem µC aus ansteuerst, bleibt Dir nur die direkte Steuerung von einem µC. Es gibt jedoch keinen AVR oder PIC mit 12 PWM-Ausgängen.
Der 80C166/167 hat bis zu 16 PWM-Ausgänge (Capture-Compare-Register).
Lade Dir mal von http://www.domnick-elektronik.de/download.htm die Datei '80C166.PDF', da ist ein Schaltplan, usw. drin.
PS: Was es an PWM-Bausteine für I2C gibt, ist mir nicht bekannt.
phaidros
17.04.2006, 17:13
Pro Servo brauchst du einen Ausgang. Wären 6 Ausgänge bei 6 Servos. ABER: Die Servos müssen nur kurz angesteuert werden (2ms lang alle 20 ms). Daher reicht ein Ausgang für 8 Servos, wenn man das Signal multiplext, d.h. weitere 3 Ausgänge sagen einem 1 aus 8 Decoder welche Leitung aktiv ist. Insgesamt 4 Ausgänge für bis zu 8 Servos. Hab' ich mit einem PIC 16F84 mal gemacht. Geht gut. Die DIR-Leitungen der DC-Motoren würde ich in einem Schieberegister zwischenspeichern, da sie nicht so oft geändert werden müssen. Spart auch ein paar Leitungen.
Gruß
Phaidros
An kalledom ich möchte gerne pwm benutzen^^
und wieviel aus- und eingänge hat das jetzt?
und an phaidros was macht dieses schieberegister und was ist das
Crazy Harry
17.04.2006, 20:52
also wenn du einen µC als master einsetzt, der dann weiteren (slave-)µC's die regel-/pwm-/was-weiß-ich-daten übermittelt und das ganze zusammenspiel koordiniert, sollte das doch gehen. somit kannst du pro slave-µC 8 pwm-ausgänge (software-pwm über avrco) realisieren.
als master wäre z.b. ein mega32/64/128 @ 16 mhz denkbar (je nach dem, was das teil können soll/programmumfang) und als "dumme"-pwm-slaves würde ein mega8 ausreichen.
in meiner schaltung liest der slave 3 A/D's ein und führt berechnungen durch. der master holt die ergebnisse ab, fragt seine eigenen A/D's und div. ports ab, liest daten von der rs232 (GPS) und zeigt alles auf einem lcd an, das per port-extender auch auf dem i2c-bus hängt.
na dann kann man das ja auch auf meine gebrauchte größe erweitern kannst du mir mal so eine schaltung posten (die sich für mich eignet wäre am besten) und danke für deine ausführliche erklärung. und was würde mich das kosten und wie wird das programmiert?
Crazy Harry
17.04.2006, 23:11
ich glaube kaum, daß du dafür eine fertige schaltung finden wirst. prinzipiell sieht es so aus wie im anhang.
programmieren kann man das sicher mit vielen sprachen: bascom, avrco, c, assembler ......
[edit] über den preis zu diskutieren ist wohl eher sinnlos: was soll da alles angeschlossen werden und wie ? was für µCs ? ich denke der reine µC liegt je nach typ mit externen beschaltung bei 3-12€. dazu kommt deine zusatzbeschaltung ;)
kalledom
18.04.2006, 00:10
Bei dem 80C166 Controller-Board können alle 16 PWM-Ausgänge durch einfache Schaltungs-Änderung an der DIN-Leiste rausgeführt werden.
Da die freien Ein- und Ausgänge nicht ausreichen, kann das Controller-Board durch eine Parallel-IO-Karte mit 2 x 16 Ein- und 2 x 16 Ausgängen erweitert werden.
Davon sind je 16 für Optokoppler und 0,5A Ausgang vorgesehen, muß jedoch nicht bestückt werden..
Schaltplan ist auch auf der Download-Seite: 'PIO166.PDF'.
phaidros
18.04.2006, 02:48
Ein Schieberegister ist ein Logik-IC (z.B. 74HCT595). Es nimmt über eine Datenleitung und eine Clockleitung 8 Bit seriell (eins nach dem anderen) auf und gibt nach Freigabe über einen weiteren Eingang diese 8 Bit parallel (d.h. auf 8 einzelnen Leitungen) wieder aus. Man braucht also nur 2+n Leitungen für n*8 Bit. Nachteil: Es dauert seine Zeit, bis alle Bits in das Register geschoben sind (ein paar Mikrosekunden, je nach Takt).
Es gibt jedoch keinen AVR oder PIC mit 12 PWM-Ausgängen.
Sicherlich wird kaum ein AVR oder PIC 12 PWM Ausgänge haben, allerdings sind 16 Dicke via Software PWM machbar ....
PS: Was es an PWM-Bausteine für I2C gibt, ist mir nicht bekannt.
Sicherlich gibts da so einige ... nur ist dann erst mal ein Studium diverser Datenbltter angesagt um eben nich doch ne komische Krücke zu erwischen ...
sorry crazy harry aber ich komm nicht ganz mit kannst du mir mal bitte posten was ich für mein projekt brauche und wo man das bekommt^^
kalledom
deins ist mir im mom das verständlichste aber wie siehts da mit pwm`s und dir signalen aus kann man das aus jeden ausgang beliebig machen? und ich wollte h-brücken verwenden um die motoren anzusteuern.
phiadros hört sich doch echt gut an und ich meine so ein paar millisekunden merkt keiner aber, wenn ich es richtig verstanden habe, schaltest du alle mit gleichzeitig also alle auf einmal oder sind das einzelne befehle möglich
im großen und ganzen wäre toll wenn ihr mal die möglichkeiten mit bezugsquellen angeben könnt damit ich ein direckten vergleich machen kann
Crazy Harry
19.04.2006, 22:37
@Devil: was erwartest du ? wie viel erfahrung hast du beim programmieren ? ich hab vor einigen wochen das erste mal 2 controller miteinander verbunden und hatte einige probleme dabei. ich bin sicher kein profi, aber selbst nach knapp 3 jahren programmiererfahrung war das nicht so einfach.
was du brauchst ? was willst du denn ? ich kenne die möglichkeiten deine verwendeten compilers nicht. ich kann bei avrco 8 software-pwm's pro µC realisieren.
stell doch mal eine liste zusammen, auf der steht:
- ?? pwm's
- ?? A/D's
- ?? eingänge
- ?? ausgänge
- was kann als einheit zusammengefasst werden (logisch oder weils vom platz eben so paßt) ?
- was ist zeitkritisch/wobei spielen ein paar ms keine rolle ?
so mach ich das immer und eine vorplanung ist sicher kein fehler :)
phaidros
19.04.2006, 23:06
Also hier ist ein Beispiel für die Kombination von PIC und Schieberegister: http://de.geocities.com/c_schirp/picsel.html
und hier eine Einführung in das Thema Multiplexing:
http://www.seattlerobotics.org/encoder/200311/dickens/Multiplexing%20Atricle.html
Wenn man das verstanden hat, kann man sich sein System selber bauen. Ansonsten gebe ich zu, dass es doch recht komplex ist.
Gruß Phaidros
kalledom
20.04.2006, 00:21
Beim 80C166 läuft ein 16-Bit-Timer von z.B. 0xF000 bis 0xFFFF. Beim Überlauf nach 0x0000 wird der Timer von einem Reload-Register mit 0xF000 neu geladen. Die PWM-Ausgänge sollten gleichzeitig gesetzt werden.
Ist der Timer-Wert gleich dem Wert eines der 16 Compare-Register, wird der entsprechende Ausgang gelöscht.
Die Compare-Register werden zwischen 0xF000 und 0xFFFF gesetzt und damit das Takt-Pausen-Verhältnis von jedem Ausgang bestimmt. Die Taktfrequenz des Timers bestimmt die PWM-Frequenz.
ok dann wollen wir mal:
-als erstes ich habe noch nie programiert... also null erfahrung
-ich habe noch nie was mit controlboards gemacht
-ich habe kein blassen schimmer wie sie funktionieren
(das einziege was ich kapiere sind die h-brücken für eine motor ansteuerung weil mir die MrNiemand ausfürlich über icq erklärt hat)
das ist alles neuland für mich
ich weiß das man solche boerds braucht um dem roboter später programieren zu können, aber auch wenn man ihn erstmal mit laptop über funk fernsteuern will. ich habe vor den roboter erstmal fernzusteuern und später zu programieren wenn ich mich näher mit sensorik und all das befasst habe und ich würde gerne realisieren das mein laptop so eine art rechenzentrale für mein robo ist und per funk in verbindung mit ihn steht und dann die befehle sendet und alles auswertet (dachte das wäre besser weil nen computer sicher mehr rechenleistung hat als so ein board... weiß aber nicht ab das geht). Mein problem ist halt das es keine vertigen boards mit so vielen Getriebemotor-ausgänge gibt.
deshalb wollte ich eins selber zusammenbauen, weil ich gehört habe das das geht^^. ich wollte H-Brücken verwenden um die motoren anzusteuern, die brauchen ein PWM-Signal und ein Dir signal ... das wären pro motor 2 programierbare ausgänge (oder?) und dann noch mindestens 2 servos ... ich habe eine recht große anzahl an eingängen angegeben da ja alein für die motoren und die servos jeweils ein eingang gebraucht wird für die geber. ich brauch aber noch welche für sensoren wie ultraschallabstandsmesser usw.
so ich habe darauf gehofft dass sich wie MrNiemand sich mit mir hin hockt und mir in ruhe alles erklärt und mit mir gemeinsam eine lösung sucht... das problem im mom ist nur das so viele verschiedene dinge gesagt worden sind mit den ich nix anfangen kann und ich nicht weiß was davon am besten für mich wäre
wer noch weitere infos braucht bitte posten
tja sorry aber man muss lernen und das geht nun mal nicht einfach so... jeder hat mal angefangen.
Jo anfangen ist immer ok, aber meistens erstmal KLEIN. Also fange mal gaaanz unten mit nem fertigen Bord an! Ich hab anfangs ne RN-Control genommen. Vielleicht kennst du das bereits, es heißt Learning by doing.
Wenn du die ersten Programme zum laufen bringst und du auch verstehst wie man die Motoren (bzw. Treiber) mit dem uc ansteuert, DANN kannst du dich weiter informieren. Sorry, aber ich denke du stellst dir das ein bischen zu einfach vor. Dass dir MrNiemand das über ICQ erklärt hat ist toll, aber wundere dich nicht wenns dabei bleibt. Angefangen haben viele, aber das meisste muss man (zumindest wars bei mir so) sich selbst beibringen. Wälz dich einfach durch das Forum, ich hab bis heut auf alles ne Antwort gefunden, und musste nicht Fragen, da das meiste bereits gefragt wurde.
Wenn du die Materie verstehst, wirst du bestimmt Dinge wie Porterweiterung, Master-Slave-schatungen usw. kennen.
Ich möchte dir nicht auf den Schlips treten, aber diese ganze Geschichte ist zu groß um es dir zu erklären. Das ist n riesiger Bollen. Da muss man sich am besten ne Zeit einlesen, dann kommt das ganze von alleine!
ja das ist ja schön und gut aber das board was du meinst kostet auch geld und ich bin ein schüler ... wovon soll ich das lernen bezahlen. und außerdem lerne ich da nur das programiren und nicht wie das board selbst funktioniert.
deshalb wollte ich mir ens kaufen das ich dann auch verwenden kann und dann daran das programieren lernen... muss halt nur wissen was ich brauche.
zu den kleinen schritten ich weiß nicht mal welches board man später erweitern kann das ich das hinterher auch verwenden kann. dein einwand ist vollkommend korekt.
also dann frag ich mal anders:
welches board kann ich mir kaufen das sich später auf meinen gebrauch erweitern lässt und womit ich erstmal üben kann und mich einarbeiten kann?
nestandart
22.04.2006, 14:54
das übliches steckboard...
(z.B. http://cgi.ebay.de/Steckboard-Experimentierboard-3260-Kontakte-Neu_W0QQitemZ7612183634QQcategoryZ36810QQssPageNam eZWDVWQQrdZ1QQcmdZViewItem#ebayphotohosting)
was soll ich den damit ? da weiß ich immer noch nicht was ich für bauteile brauche...
darwin.nuernberg
22.04.2006, 17:27
Fang doch mal damit an:
https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=6220
Dazu brauchst Du noch den Programmer:
http://www.shop.robotikhardware.de/shop/catalog/product_info.php?cPath=75&products_id=60
Wenn Du noch keine Platine selbst herstellen kannst...
Dann must Du wohl oder übel alles kaufen müssen.
Wer nicht kochen kann muss fertig Gerichte kaufen oder in ein Restaurant gehen.
Klar ist das teuerer als selbst gekocht aber sonst verhungert man.
Wenn Du weder das Eine noch das andere kannst,
aber dennoch damit arbeiten willst musst Du in den sauerern Apfel beissen.
was soll ich den damit ? da weiß ich immer noch nicht was ich für bauteile brauche...
Also wenn Du noch nicht einmaöl weisst was Dur brauchst, hast Du auch keine konkrete Vorstellung dessen was Du machen willst.
Dann bleibt Dir nur erst mal was kaufen, um dann festzustellen:
a) das macht nicht das was ich brauche
b) dazu wäre eine wesentlich einfachere Lösung auch ausreichend gewesen.
das habe ich doch vor, ich will mir eins kaufen und ich weiß auch wofür. ich möchte nur eins kaufen das ich auch dann noch erweitern kann das ich es für mein robo benutzen kann. aber das kann man ja nicht wissen wenn man nicht alles liest! habe alles geschrieben was ich brauche was ich machen will und das ich mit ein fertigen anfangen möchte.
ach ja hast du bei deinen platienen auch irgendwo eine beschreibung was wofür ist mit beschreibung was wofür ist also z.b. ausgänge eingänge usw. kann sein das ich das übersehen habe
darwin.nuernberg
22.04.2006, 22:11
Also was wofür das ist so eine Sache.
Ein AD-Port kann analoge Werte digitalisieren ok,
aber Du kannst damit auch digitale Werte einlesen und ausgeben,
analoge Werte direkt ausgeben ist generell nicht möglich.
Alle Anderen Ports, können je nachden was man anfangen möchte,
unterschiedlich genutzt werden.
Einige Pins haben spezielle Funktionen, welche, wenn diese genutzt werden sollen, auch nur auf diesen verfügbar sind.
Interrups zum Beispiel.
Das sollte man sich bei seinen Entwürfen vorher überlegen.
Also ich habe da keine speziellen Vorschiften gemacht,
alles was der Chip her gibt, kann man damit machen,
vorausgesetzt man hält sich an die Regeln der Logik (Mr. Spock fragen).
Was und wie das bleibt dem "Künstler" überlassen.
Da ist ja gerade das schöne daran.
Mit einem, ich sag jetzt mal Bausatz, aus welchem man drei verscheidene
Modelle bauen kann,
ist es eben nicht (ohne weiteres) möglich ein viertes Modell zu bauen,
wofür der Bausatz nicht vorgesehen ist, logisch oder?
jo das ist logisch.
also kann man dreiferschiedene bauen ... und welchen müsste ich nachbauen um motoren anzusteuern und zu programieren mit pwm und dir?
darwin.nuernberg
23.04.2006, 11:50
jo das ist logisch.
also kann man dreiferschiedene bauen ... und welchen müsste ich nachbauen um motoren anzusteuern und zu programieren mit pwm und dir?
Direkt mit dem Controller kann man eigentlich nur Servos anteuern (Die Dinger, welche auch in RC-Modellen zu finden sind
-> https://www.roboternetz.de/wissen/index.php/Servos
Um andere Motoren anzusteuern braucht's noch etwas dazu
ein Motorinterface.
* für Gleichstrom-Motoren / Getriebe-Motoren zumindest eine H-Brückenschaltung oder ein Motortreiber-IC
* für Schrittmotoren eine Schrittmotorsteuerung
* für andere Motoren eine entsprechende Schaltung.
-> https://www.roboternetz.de/wissen/index.php/Getriebemotoren_Ansteuerung
-> https://www.roboternetz.de/wissen/index.php/Schrittmotoren
Warum?
Die Ausgänge (Ports) des Prozessors (CPU) können nicht so vie Stom liefern wie der Motor benötigt
(auch nicht wenn es nur ein kleiner Motor ist) und würde "durchbrennen".
Speziell PWM und DIR?
Du meinst vermutlich Gleichstrommotoren oder?
Wenn die Dinger nicht zu groß sind (Stromaufnahme) dann ginge auch eine Schaltung mit dem Treiber IC L293 D, so wie sie auch in meinem Protobed Roboter Silvester verwendet wird:
-> https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=5862
Siehe
Du Braucht also wieder mehr als Du znächst dachtest.
Das Roboter Grundboard "RNBFRA 1.2" enthält allerdings schon Treiber
für kleinere Motoren, sowohl für Gleichtrom- als auch für Getriebe- Motoren. Alles auf einer Platine.
-> https://www.roboternetz.de/phpBB2/viewtopic.php?t=1511
Oder Du baust Dir die Entsprechenden Motortriber selbst auf.
Speziell für Einen Schrittmotor habe ich auch eine Schaltung entwickelt: Schrittmotorsteuerung Protobed_StepM_297/298 ein Motor alleine macht allerdings noch nicht so viel her, also müstest Du da mehrere Module bauen.
-> https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=15826
Eine Schaltung für zwei Schritt-Motoren welche über I2C-Bus oder über Seriell angesprochen werden kann ist die "RN-Motor", damit kann man auch Gleichstrommotoren ansteuren.
-> https://www.roboternetz.de/phpBB2/viewtopic.php?t=1511
Für ganz stromhungrige Gleichstrommotoren gibt es noch die "RN-Mini H-Bridge - Motortreiber"
-> https://www.roboternetz.de/phpBB2/viewtopic.php?t=1511
Speziell für Dich wären wohl die "RNBFRA 1.2" geeignet,
da ist alles drauf was man so im ersten Moment braucht
ohne noch was dazu zu bauen zu müssen.
Außerdem lässt sich das Teil auch später noch erweitern.
https://www.roboternetz.de/wiki/uploads/Main/rnbfraboard.gif
Da Du scheinbar noch nicht viel Kontakt mit Elekronik hattest,
würde ich Dir auch dringend empfehlen,
ein fertig aufgebautes und geprüftes Gerät zu kaufen,
dann kannst Du gleich loslegen
ohne erst mal mit der Elektronik kämpfen zu müssen.
Danke für deine sehr ausführliche antwort und die vielen infos.
nur noch 2 fragen:
du hast gesagt das man das board auch erweitern kann, gilt das auch für die programierbaren ports? (weil wie schon gesagt muss dann später 12 getriebemotoren ansteuern)
und bei dem link https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=1511 sind bei dem letzten robo doch die rn-teile angesprochen die verbaut wurden, meine frage wo finde ich hier die solarzellen?
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.