Archiv verlassen und diese Seite im Standarddesign anzeigen : Suche Mikrocontroller
Hallo,
ich suche einen Mikrocontroller, mit dem ich 4 elektromotoren ansteuern kann.
Außerdem soll er kleiner als 90mmx80mm sein. Alle Controller die ich gefunden hab konnten nur 2 ansteuern (rncontrol, myavr...)
das handyboard ist mir zu teuer, und hat auch viel zu viel drauf (lcd etc.)
kennt da einer von euch eins?
danke schonmal
Rage_Empire
16.08.2005, 15:29
guck mal unter:
www.robotikhardware.de
um vier motoren separat zu regeln, bräuchtest du vier PWM-ausgänge. du könntest die PWM-signale auch per software erzeugen, das würde allerdings etwas mehr rechenleistung kosten...
alternativ müsstest du dich nach einem AVR mit vie hardware-pwm kanälen mumsehen, der außerdem noch genügens ports für die richtungssteuerung hat (mindestens einer pro motor, wenn du externe logikgatter einbaust)
bei avrfreaks.net gibts ne interaktive vergleichstabelle, mit der man die zig avr-typen nach einzelnen features sortieren kann.
wenn der controller außer dem motoren nnicht viel zu tun hat, würd schon ein tiny2313 reichen...
wenn du dir das controllerboard selbstbaust und gleich die motortreiber mit auf die platine setzt, dann bleibst du locker im größenrahmen, außerdem wird billiger als ein fertigboard, auf dem nen haufen komponeten draufsind, die du nicht brauchst, aber bezahlst...
danke erstmal,
viel muss nicht dran, ich brauch:
4x motoren
4x sharp distanzsensoren (GP2D12)
2x reflexkoppler
1x an/aus schalter
das wars auch schon, nur hab ich noch nie nen mikrocontroller gebaut :(
heißt das ich brauche außer den 4 pwm-ausgängen min. 10 ports ? (4 für motoren+ 6 sensoren).
was brauch ich denn sonst noch ?
Hast du dich schon ein wenig im Forum umgeschaut?
https://www.roboternetz.de/phpBB2/viewtopic.php?t=11715
Steht ein paar Beiträge unter deinem. Ist zwar noch nicht fertig aber hilft evtl schonmal etwas.
au nein den hab ich noch nicht gesehen, danke dir !
So ich hab mein Konzept jetzt nochmal überdacht und mir reichen doch 2 Motoren, trotzdem will ich jetzt nen eigenen Microkontroller bauen :D
Ich hab jetzt deinen Artikel gelesen Marco und das hat mir jetzt schon einige Fragen beantwortet *g*
ich hab mich jetzt mal für den ATmega16L entschieden, der hat 16 kbytes speicher das sollte für 2 Motoren und 6 Sensoren reichen *hoff ich*
3 PWM Kanäle müssen für 2 Motoren ausreichen?
Wie sieht das jetzt mit den Sensoren aus? werden die an I/O's angeschlossen?
Du schreibst in deinem FAQ das man I2C für Sensoren bräuchte (oder 1Wire oder TWI) das hat der ATmega16L auch.
Ich hoff ich nerv jetzt nicht, hab aber nichts in der suche gefunden :/
Kommt drauf an was für Sensoren du hast.
TWI und I2C und I²C ist im Prinzip das gleiche, es sind nur andere Namen. Wahrscheinlich um Lizenzgebühren für den Namen zu sparen. Aus dem Bauch herraus hat der Mega16L diese Busse.
Selbst wenn nicht bleiben wohl noch einige Pins frei um die Sensoren anzuschliessen. Und ja, die werden an die I/Os angeschlossen. Außer den I/Os sind nur noch Pins für die Spannungsversorung vorhanden.
Die 3 PWM reichen für zwei Motoren.
Auf der Seite von AVR Freaks steht ganz genau gelistet was der Mega16 hat.
http://www.avrfreaks.net/index.php?module=FreaksDevices&func=displayDev&objectid=57 <--- der Link dorthin.
Er hätte aber auch 4 PWM-Kanäle, falls du dennoch 4 Motoren anschliessen willst.
So dann hätte ich ja schonmal fast die erste Hürde gemeistert *lach* danke dir! Wie meinst du das mit kommt drauf an welche Sensoren ich habe?
Wie geh ich denn jetzt vor wenn ich ein eigenes Board basteln will?
Was "muss" denn alles auf das Board?
Ich denke mal:
- Der ATmega16L
- On/Off-Schalter
- 1 LED die brennt wenn das Board an ist
- Reset Knopf
- Alle ports über Steckbuchsen nach außen führen
- Motortreiber
hab ich was vergessen?
//
zum programmieren bruach ich noch nen LTP-Port und nen RS232 als Rückkanal, wenn ich das richtig verstanden haben.
Wie meinst du das mit kommt drauf an welche Sensoren ich habe?
es gibt sensoren, die per i2c angeschlossen werden. deine GP2D12 gehören aber nicht dazu...
Wie geh ich denn jetzt vor wenn ich ein eigenes Board basteln will?
planen, was drauf soll, nen schaltplan erstellen, den überprüfen lassen und wenn alles passt, etweder auf lochraster bauen oder ne platine ätzen...
Was "muss" denn alles auf das Board?
Ich denke mal:
- Der ATmega16L
- On/Off-Schalter
- 1 LED die brennt wenn das Board an ist
- Reset Knopf
- Alle ports über Steckbuchsen nach außen führen
- Motortreiber
hab ich was vergessen?
das wäre schon mal das wichtigste. ziemlich gut wären noch:
- nen poti, um eine refernzspannung für den anlog-digital-wandler einzustellen (den brauchst du für die GP2D12)
- einen spannungsregler, um aus der akkuspannung stabile 5V zu erzeugen, plus kondenssatoren zum glätten
- einige LEDs und taster an freien ports (zum programm starten, eingaben machen, statusmelden etc.)
- einen MAX232, das ist ein adapterbaustein, um das board an die serielle schnittstelle des PCs anzuschließen. darüber können im testbetrieb zb statusmeldungen oder steuersignale ausgetauchst werden
wenn du lust, platz und geld hast, ist nen LCD-display auch ne feine sache...
außerdem würde ich nicht den mega16L nehmen, sondern den normalen mega16. der L ist die stromsparvariante, kostet mehr und ist nicht so schnell. der geringe mehrverbrauch macht sich nicht bemerkbar, so ein AVR zieht nur im zweistelligen miliampere-bereich...
und du brauchst noch ne adaptzerschaltung, um den AVR vom PC aus über den parallelport mit nem programm zu versorgen. lässt sich aber auch einfach selbst bauen oder fertig kaufen.
Zu den Sensoren:
Es gbit ja viele. Drucksensoren, Temperatur, Licht, Hindernisserkennung mit IR usw...
Geben die Sensoren 0 und 1 aus oder analoge Spannung?
Oder willst du einen Bus bauen? Es gibt einige Sensoren für 1wire und I2C. Am besten schaust du dich im Unterforum "Sensoren" mal etwas um. Da wirst du vielleicht auch noch einige Anregungen finden.
Du darfst aber auch nicht vergessen, das es mit der Hardware alleine noch nicht getan ist. Der Controller will umd muss programmiert werden. Hast du dir dazu schon gedanken gemacht?
Zur Hardware:
Warum den 'L'? Wegen Akkus? Wieviel Spannung brauchst du denn für die Motoren? Der ohne 'L' braucht zwar 5V, aber kann doppelt so schnell arbeiten (16MHZ zu 8MHz des L).
Wen du schon einen Resetknopf einbauen willst, der nicht unbedingt nötig ist, würde ich die LED am Controller blinken lassen. Wenn sie dann nicht mehr blinkt ist es Zeit Reset zu drücken. Ansonsten braucht man keinen Resettaster auf einer fertigen Platine. Auf einem Experimentierboard würde er aber Sinn machen.
Was ist mit einem Quarz? Oder willst du den internen Taktgeber verwenden? Der ist aber etwas ungenauer als ein Quarz. Etwas, nicht viel!
Je nach Schaltung solltest du vielleicht dafür sorgen das die Spannung nicht zu hoch werden kann. Entweder ein Spannungsregler oder eine Z-Diode.
Und den Programmieranschluss nicht vergessen.
Da das ganze Motoren bekommt und dir abhauen kann, wäre ein IR-Empfänger auch nicht so verkehrt. Dann kannst du "es" auch von weiter weg steuern.
Was du wirklich brauchst ist schwer zu sagen ohne zu wissen was du genau bauen willst.
Such doch mal im AVR Unterforum nach Board. Da findest du einiges was andere schonmal gebaut haben oder mal bauen wollten.
So, hab die liste mal aktualisiert:
- Der ATmega16
- On/Off-Schalter
- 1 LED die blinkt wenn das Board an ist
- Reset Knopf
- Alle ports über Steckbuchsen nach außen führen
- Motortreiber
- Poti
- Spannungsregler
- MAX232
- Zusätzliche Taster und LEDs für Programme
- Quarz
LCD Display brauch ich nicht, ich muss gewicht und platz sparen,
IR wäre zwar praktisch aber fällt auch deswegen weg.
Die Motoren sollten bei 12V laufen, wie klappt das wenn das board bei 5V läuft?
Ich hab bereits ein bisschen erfahrung in der programmierung hab hier ein rncontrol(+rnmotor) auf dem ich mit basix programmiert habe.
die Sharp Sensoren geben eine analoge Spannung aus.
Für IR brauchst du nu reinen kleinen leichten Empfänger, der nicht größer und schwerer ist als ein MAX232. Und den MAX232 brauchst du wirklich nur, wenn du Daten zu PC senden willst oder von dort empfangen willst.
Da würd ich lieder die Leitungen RxD und TxD (und GND und Vcc) über eine Steckverbindung (eine verpolungs- und verwechslungssichere Steckverbindung!!!) auch mit nach außen führen und den MAX232 irgendwo ins Kabel zum PC löten. Das spart auch Gewicht. (und ist wirklich nicht ironisch gemeint. Was soll da n IC auf der Platine auf der man Platz und Gewicht sparen muss?!)
Da der AVR selbst kaum Strom zieht reicht ein 7805. Die maximale Verlsutleistung wird wohl nie erreicht werden. Was der Treiber braucht weiss ich nicht.
Die Taster könntest du dir bei IR sparen ;)
Quarz ist auch nicht pflicht. Intern kann der Mega mit bis zu 8MHz getaktet werden. Das zeitkritischste wäre der IR-Empfang. Und ich denke der läuft auch mit 8MHz intern.
Willst du die Platine selbst ätzen? Den Mega16 gibt es auch als TQFP. Ist zwar schon ziemlich klein, aber nicht unmöglich zu löten. Aber das ätzen muss klappen.
Programmieren mit Basic wird wohl nicht so ein großes Problem werden.
ein 7805 als Spannungsstabilisator ein paar Kondensatoren. Für die Motoren brauchst du Leistungs-Bausteine, das kann der µC nicht allein.
Je nachdem ob du nur Vor und Rücklauf oder nur Vorwärts brauchst gibt es verschiedene Lösungen.
Ich Empfehle den L293D der kostet bei reichelt 2 Euro und hat 4 steuerbare Ausgänge, damit kannst du entweder 2 Motoren vor/rück laufen lassen oder 4 nur in eine Richtung oder eben einen Bipolar-Schrittmotor steuern.
Eine Steckerwanne für das ISP-Kabel wäre nicht schlecht.
oke also vielleicht doch IR.
ätzen erstmal nicht, ich will das zu erst auf ner lochrasterplatte aufbauen, wenns dann klappt denk ich übers ätzen nach.
Das Board soll so klein wie möglich sein, also ideal wäre 6x8 cm.
Da brauche ich glube ich nicht TQFP.
Das wohl größte Problem wird jetzt die Schaltung zu zeichen, außer ein paar kleinen schaltungen hab ich nie was selbst entworfen. Zum Glück hab ich Ferien ;p
üää bevor ich hier was sag, postet ihr hier alles zu :)
Wenn du minimalistisch veranlagt bist müsstest du dir den quarz und das poti sparen können, der µC müsste einen internen Taktgenerator haben und die Referenzspannung kann man ja einfach vom Spannungsregler nehmen ohne sie zu teilen, bzw wenn du mit den SHARP-Sensoren arbeitest, die liefern eh keine sinnvollen Werte über 2,6 V und die interne Referenzspanung (meines mega8) liegt bei 2,56 V ...
Anstelle der LEDs und Tasten würd ich ein LCD-Display einplanen, Reset und Anschalter sind unnötig, eine Power-Buchse langt... (Reset brauchst du fast nie, evtl mit einem Widerstand+Kondensator einen Reset on Startup auslösen, aber der mega kann das, glaube ich, von allein)
Motortreiber vielleicht auf externe Platinen zu den Motoren machen? das ist dann modular wiederverwendbar...
Programmiert wird in C oder Assembler :D
nehmen die Motortreiber denn viel platz weg?
falls ja wäre die 2 Platten Variante nicht schlecht.
auf 6x8cm kriegt man zwar den controller selbst unter, aber mit motortreiber und stromversorgung wird es schon ziemlich eng. wenn es von den ports her reichtt, wäre dann ein mega8 besser, der ist kleiner (schmales 28poliges gehäuse, meag32 breites 40pol)
wie stark müssen die treiber sein? was ziehen die motoren?
der bot wird ziemlich leicht ~500g, 2 motoren laufen bei 12V und zeihen je 0,11A.
was ich mir gerade überlegt habe:
wenn ich ein Mega8 Mini-Modul (http://roboter-teile.de/Shop/pd-2042084210.htm?categoryId=5) nehme, und mir dann zusätzlich nen Motortreiber Board bastele würde das auch gehen oder?
dann ist ein L293D das richtige. der ist ein 16poliges IC im normalen gehäuse und braucht keinen kühlkörper. damit würdest du vom platz her wohl hinkommen, wenn du die bauteile geschickt anordnest...
hier mal die platine von einem meiner roboter in deiner gewichtsklasse:
http://roboter-gallery.de/albums/userpics/3oben.jpg
links oben der mega16, in der mitte der L293D. die beiden ICs rechts sind inzwiasschen wieder ausgelötet (es waren logikgatter zur ansteuerung des motortreibers, die aber nicht unbedingt nötig sind. und ich wollte platz für erweiterungen schaffen).
unter dem kühlkörper steckt der 7805 spannungsregler. der kühler ist so groß, weil der regler auch die motoren mit 5V versorgt und dabei ziemlich heiß wird. wenn nur die steuerung dranhängt, reicht ein kleinerer kühler aus.
die platine misst 10x8,5cm, aber ohne den flachligenden kühler und den freien platz passen die bauteile auch auf deine 6x8. wenn du aber genug platz hast, würde ich die platine ruhig etwas größer machen und oplatz zum erweitern lassen...
zur sonstigen konstuktion: motoren sind umgebaute modellbauservos, chassis ist aus plexiglas, räder aus CDs...
das modul würde auch gehen, ist aber momentan nicht lieferbar. bei embedit.de gibts aber ein so gut wie identisches.
du solltest aber beachten, dass dort nur ein mega8 drauf ist, der hat weniger anschlusspins und speicher als ein mega32. die module sparen halt ein bisschen platz und sparen einen teil des verdrahtungaufwandes, aber man braucht trotzdem noch ne trägerplatine mit stromversorgung und motortreiber...
ich hab gerade noch was geiles gefunden:
Controllerboard "BobbyBoard":
http://www.qfix.de/w2d/images/hbaa000bobbyboarda5.jpg
hier das Datenblatt:
http://www.qfix.de/w2d/downloads/datenblattbobbyboard.pdf
Und es ist klein *gg* (78x38)
Leider ist kein Schaltplan dabei, weil 50€ sind schon happig dafür, dass kaum was drauf ist.
Hat vielleicht jemand einen ähnlich kleinen Schaltplan zur Hand ?
Und: Was macht man mit vier Mikrotastern? :D
Für den ATmega8 hab ich einen sehr minimalistischen... allerdings nur ein "logischer" - keine Ätzvorlage. Ist aber nur der ATmega und die stabilisierte Spannungsversorgung etc...
Und was will man mit vier tastern?
Willst du eine Platine ätzen?
Ansonsten hätte ich einen ähnlichen, viel schlichteren Plan für den Atmega8, aber im Prinzip besteht der aus dem Plan von www.mikrocontroller.net
also 4 taster brauch ich nicht, aber 3 sollten es schon sein (1x on/off und 2 für programme)
das ist halt der kleinste den ich gefunden hab bisher ;)
erst wollt ichs auf ner lochrasterplatte machen, hab aber gesehen dass das ätzen nur 14€ (mit versand+bohren) bei ebay kostet. und dafür könnte ich die platine 2x ätzen lassen (weil sie so klein ist *g*).
ich bin jetzt grad dabei die platine "nachzubasteln" halt den atmega nicht als smd. brauch nur ewig hab noch nie nen board selbst gezeichnet.
//edit
meinst du den schaltplan:
http://www.mikrocontroller.net/images/avr-schaltplan.gif
einen anderen hab ich nicht gefunden
Ich würd da sganze erstmal mit ner Streifenrasterplatte aufbauen, wenn du dann irgendwann "fertig" mit dem projekt bist, kannst dus immer noch ätzen.
Diese Schaltung meinte ich, ich hab nur:
-> den quarz weggelassen (interner oszillator langt völlig der quarz kostet 2,75 Euro...)
-> eine grüne LED mit 1K Ohm vorwiderstand als Einschaltkontrolle zwischen 5V und GND,
-> den C2 kannst du dir schenken
-> anderer ISP-Anschluß, da ich den Atmel-Norm-Stecker wollte (ist aber eigentlich blos umständlicher...)
-> Auf der selben Seite ist noch eine Schaltung mit dem 7805 zur Spannu ngsstabilisierung, die hängt sozusagen "davor"
-> Eine Standarddiode 1N4001 als Verpolungsschutz
Das schöne an dieser Schaltung ist, dass wenn man alles unnötige Weglässt praktisch nur der Mikrocontroller übrigbleibt... Wenn du Batteriebetrieb planst, kannst du die "dicken" Glättkondensatoren auch weglassen, ebenso wie eine Spannungsversorgungsbuchse.
Ich würde das ganze erst mal experimentell aufbauen, auf eine Streifenrasterplatine, das ist im Handumdrehen zusammengelötet.
Und wenn dann alles perfekt ausgetüftelt ist, kannst du immer noch eine perfekte Platine ätzen lassen...
michaelb
17.08.2005, 23:35
Hallo,
ich glaube ich muss mich mal einschalten!!
-> den quarz weggelassen (interner oszillator langt völlig der quarz kostet 2,75 Euro...)
würde ich auf keinen Fall machen!! Der interne ist viel zu ungenau! Kauf dir für den Atmega16 nen anständigen 16Mhz Quarz!
-> den C2 kannst du dir schenken
ich würde den einbauen! Damit die spannung besser stabilisiert wird!
-> anderer ISP-Anschluß, da ich den Atmel-Norm-Stecker wollte (ist aber eigentlich blos umständlicher...)
-> Auf der selben Seite ist noch eine Schaltung mit dem 7805 zur Spannu ngsstabilisierung, die hängt sozusagen "davor"
-> Eine Standarddiode 1N4001 als Verpolungsschutz
da stimm ich dir zu! Nen 10pin ISP und der Rest ist auch OK! Ich würde dem 7805 aber Kondensatoren spenden nen ordentlichen Elko damit die Spannung wenigstens etwas geglättet wird! Nicht böse sein sep *g* 8-[
Und dann noch zu dir phreak das BobbyBoard würde ich keinesfalls benutzen damit kannste nämlich gar rumexperimentieren! Und biste zu stark gebunden!
Was ich immer auf meine boards draufpacke ist ne max232 Schaltung!
Gruß Michi
danke für eure beiträge!
das ist es ja ich brauch kein experimentierboard *gg*
sonder nur ein schönes kleines board ^^
was haltet ihr den davon:
http://xeyon.de/4481/4930.html
ist ja günstig und klein (23€)
dann könnt ich mir ne platine dazu basteln für sensoren&motoren das wär doch einfacher, kleiner würde auch klappen?
Bei Batteriebetrieb ist die Spannug schon genug geglättet... da langen ein paar kleine Kondensatoren für HF-Dämpfung, eine Anständige Batterie bringt genug Strom, auch kurzfristig, als dass man auf große Elkos verzichten kann.
Wofür ist der interne Oszillator zu ungenau? Serielle Schnittstelle?
Und @ phreak, die Platine kannst du doch auch selber so löten, ist doch kaum was kompliziertes drauf... Und viel teurer kanns von Hand nicht werden... (viel billiger aber auch nicht)
Aber allgemeines ich nicht unterstützen würde händlers, die übersetzen ihr texts mit schlechtes Übersetzer. Probleme häufiges nachfolgen möglicherweise.
ich kann halt kein smd löten und der spart schon platz ;)
was haltet ihr den davon:
http://xeyon.de/4481/4930.html
ist ja günstig und klein (23€)
dann könnt ich mir ne platine dazu basteln für sensoren&motoren das wär doch einfacher, kleiner würde auch klappen?
Der hat aber 'nur' 8kb Flash. Dein Mega16 hätte 16kb!
Wenn du selbst eine Platine erstellen willst (mit Schaltplan und Layout und ätzen lassen) solltest du auf jeden Fall vorher ein Experimentierboard bauen.
Auch wenn du den Schaltplan und das Layout hier von anderen prüfen lässt, kann es immer noch sein das du eigentlich doch was anders machen wolltest.
Und SMD bedeutet ja nicht immer gleich die Größe von PC-Bauteilen. Es gibt ja auch noch etwas größere. Das zu löten ist wirklich nicht so schwer wie man denkt. Man braucht nur eine etwas kleine Lötspitze und eine ruhige Hand.
Ähmm, Platinen bei Ebay. Erinnert mich an einen Beitrag der hier vor ein paar Tagen besprochen wurde.
Irgendwer, der zuviel Freizeit hat überlegt sich n Euro dazu zu verdienen. Da muss nicht immer was gutes bei rauskommen!
http://www.bilex-lp.com/ <--- ist auch nicht teuer. Und wenn du von da aus versehen Müll geliefert bekommst hast du immer noch mehr Chancen und Möglichkeiten als bei Ebay. Mir wären 14,-€ + Versand etwas zu viel, nur um jemanden eine schlechte Bewertung geben zu können und dann einen außergewöhnlichen Eiskratzer (die Platine) zu haben ;)
der hat schon ne menge bewertungen und sind alle gut.
aber stimmt schon. Experimentierboard werd ich mich in den nächsten tagen ransetzten...
danke für die ganzen tipps, aber ich werd euch bestimmt bald wieder nerven hrhrhr :D
https://www.roboternetz.de/phpBB2/album_pic.php?pic_id=454 <--- ein Experimentierboard von mir. Es muss nicht immer anspruchsvoll sein. Ich baue lieber immer schnell eines neues Board pro Projekt, da es ein universelles nicht geben kann.
hrhrhr da bekommt das Wort "Experimentierboard" eine ganz neue Bedeutung :D
Is eigentlich alles drauf was man brauch...
ich hoff das ich auch bald soweit bin für jeden bot ein eigenes board zu entwickeln hrhrhr
Oben ist der Programmer zu sehen und ganz untern der MAX232-Ersatz.
Und sonst ist alles das drauf was ich da brauchte. Quarz und Resetbeschaltung inkl. Resettaster, LEDs, ein LDR am ADC, Taster (wenn man die DIP-Schalter so nennen will :D) IR-Empfänger und kaum zu übersehen, ein LCD.
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.