Guten Tag, Ich absolviere zurzeit eine Ausbildung zum Informatiker EFZ und bin im 2. Lehrjahr. Nun wollte ich mich ein wenig in das Thema Elektronik einlesen. Ziel wäre es eine kleines Fahrzeug zu bauen. 4 Räder die an je einen Motor befestigt sind (keine mechanische Übersetzung mit Zahnrädern etc.). Nun will ich die Motoren wie folgt steuern können. -Ich möchte die Drehzahl regeln können. -Ich möchte die Drehrichtung ändern können. -Ich möchte sie unabhängig voneinander Ansteuern können Das ganze würde ich gerne über einen Raspberry Pi (Typ B) und falls notwendig ein Arduino due machen. Ziel wäre es das Fahrzeug via WLAN mit einem kleinen C,C++ oder Python Programm das auf Tcp/Ip Sockets basiert zusteuern. Nach Rechts Fahren: Gebe ich auf die Linken beiden Motoren Strom. Nach Links Fahren: Gebe ich auf die Rechten beiden Motoren Strom. usw. Was meint ihr ist das realisierbar? Kann ich die Motoren wie gewünscht ansteuern mit einem Arduino due? Brauch ich überhaupt einen Arduino oder kann das ganze auch nur über den RPi realisiert werden (GPIOs)? Vielen Dank und Gruss Xaii
> Was meint ihr ist das realisierbar? Es ist zumindest Unsinn. > keine mechanische Übersetzung weil dir das zu kompliziert ist ? Warum haben Autos Getriebe ? Hast du das bis heute nicht verstanden ? > Nach Rechts Fahren: Gebe ich auf die Linken beiden Motoren Strom. Warum hat dein Auto ein Lenkrad ? hast du das bis heute nicht verstanden ? Warum sind nicht alle Autos wie Panzer gebaut ? Es ist kindereinfach, ein Modellauto mit Lenkung und Elektromotor und Getriebe zu verwenden. Warum muß du unbedingt was schlechteres selbst bauen ? Das wird noch nicht mal billiger. Motore für Direktantrieb die auch noch klein sind, müssten vielpolige brushless-DC mit Hallsensoren sein. Die gibt es nicht von der Stange, das sind Sonderanfertigungen. Schrittmotore wären zu langsam, wenigpolige Motore bräuchten ein Getriebe. Räder die quer rutschen damit das Fahrzeug lenken kann hätten andere Anforderungen als die üblichen Räder, wo man Spurtreue und Grip haben will, sind also Sonderanfertigungen, und hinterlassen beim wenden üble Spuren (auf Linoleum, im Gras, woauchimmer). Zudem lenkt so ein Auto durcz rutschen nicht reproduzierbar, man kann also nicht einfach mal 45 Grad Wendung machen, sondern man kann nur das Rutschen provizieren und dann je nach grip des Untergrundes waten bis man 45 Grad Drehung erreicht hat. Das macht das Fahren nicht einfacher. Bau ein ordentliches Auto.
Patrick Winter schrieb: > Nun wollte ich mich ein wenig in das Thema Elektronik > einlesen. > > Ziel wäre es eine kleines Fahrzeug zu bauen. Nun wollte ich mich ein wenig mit dem Autofahren befassen. Ziel ist es, Sebastian Vettel in diesem Jahr den WM-Titel abzujagen. Lese dich erstmal GANZ VIEL in Elektronik ein. mfg.
Hmmmmm, erstmal ganz langsam. Mein Schlussendliches Ziel ist ein Fahrzeug. In ca. einem halben Jahr oder so. Ist es möglich mit einem Arduino due 4 Motoren wie angesprochen anzusteueren? JA oder NEIN? Ich brauch doch mal etwas an was ich mich klammern kann. Z.B. wie ich C# gelernt habe: Ich wollte einen Chat haben und habe mit Hello World Programmen begonnen und mich dann langsam hochgekämpft. Das Ganze halt auf mein Ziel zugeschnitten... versteht ihr?
Hi >Ist es möglich mit einem Arduino due 4 Motoren wie angesprochen >anzusteueren? >JA oder NEIN? Nein. Du hast die Motortreiber vergessen. Gleiches gilt auch für den Rasberry. MfG Spess
Sorry aber MaWin hat ein Rad ab :-D Patrick Winter hat nur etwas gefragt, weil er ein Projekt realisieren möchte um die Grundlagen zuverstehen. Von "OberRadAb" kommt nur Müll. Laber deine 2 Klässler voll. Aber ich glaube die hören dir auch schon nicht mehr zu :-) Gruß
Vielen Dank das sind Beiträge die mir helfen. Etwas in dieser Richtung habe ich schon gesucht aber nicht den Richtigen Begriff gefunden. So wie ich das verstehe ist der Motorentreiber dazu da zum einten die zusätzlich benötigte Spannung zu liefern: d.h mein Mikrocontroller liefert 5V und der Motor braucht aber z.B. 9V kann ich die 4V via Motortreiber hinzufügen oder? Und zum zweiten ist es ein Schnittstelle zwischen dem Motor der natürliche keine Intelligenz besitzt und dem Mikrocontroller. Ist ein Motorentreiber in der Lage komprimierte Signale wahrzunehmen, um so die Drehzahl zu beeinflussen?
Hallo Patrick, schau mal hier unter Motoren etc. http://www.rn-wissen.de/index.php/Hauptseite Da sind wohl die meisten Punkte erklärt. hans
Vielen Dank diese Seite macht einen Super-Eindruck auf den ersten Blick!
Patrick Winter schrieb: > Was meint ihr ist das realisierbar? realisierbar ist das schon. Ob es mit 4 Rädern Sinn macht, ist eine andere Sache. mit 2 Rädern machen das andere ja auch. Such mal nach Asuro oder NiboBee Das wär vielleicht überhaupt erst mal nicht die schlechteste Idee, ein bischen Geld in die Hand zu nehmen und sich so ein Ding zu kaufen, damit zu experimentieren und so nebenbei zu lernen wie diese Methode funktioniert, wo sie nicht funktioniert, wo die Grenzen liegen und was man damit so alles machen kann.
WOW Nibobee so ein Ding hatte ich mal! Das Problem war ich habe Bahnhof kapiert und Schluss lieft nichts :-/. Es war in Naturwissenschaft eine Lötübung. Der Lehrer war aber auch wirklich schlecht und hat mir den Spass richtig verdorben noch weitere Zeit in das Ding hineinzustecken! Ich kauf mir nochmal so ein Gerät und probiere es nochmal und werde nebenbei mich über die Bauteile schlau machen.
Hallo; als einfachste Lösung ein Vorschlag: Angenommen dein Auto verwendet "handelsübliche" Bürsten oder bürstenlose Motore aus dem RC Modell. Für diese Motoren gibt es elektronische Fahrtenregler. Wie diese genau angesteuert werden (Pegel) dagt dir der Hersteller. Im prinzip mittels Pulsweitenmodulation, aber wie gesagt die genauen Parameter sagt der Hersteller. Als Referenz bräuchtest zu nur eine Handelsübliche Fernsteuerung welche mindestens 4 Kanaäle proportional ansteuern kann. 1 Kanal je Motor. wenn du auch ein Lenkservo ansteuern möchtest brauchst du einen 5 Ten Kanal. Als Analyse würde ich empfehlen von einem vorhandenem Automodell mit elektronischem Fartregler, mal die Daten der PWM Ansteurung mittels Frequenzmesser und Qszillioskop aufzunehmen. Ansonsten gibt es zur PWM Ansteuerung von RC Servos und Fartreglern info's im Internet
Die PWM Ansteuerung wäre auch mit dem Arduino möglich oder? Diesen steuere ich dann über mein Raspberry Pi ;D geht das? Wie sieht es mit dem Rückwerts fahren aus? bzw. Negativ Spannung? wie läst sich das am einfachsten realisieren?
Patrick Winter schrieb: > Ziel wäre es eine kleines Fahrzeug zu bauen. > ... > Ziel wäre es das Fahrzeug via WLAN mit einem kleinen C,C++ oder Python > Programm das auf Tcp/Ip Sockets basiert zusteuern. Sehr anspruchsvoll, schon aus den von MaWin genannten Gründen der Einzelradsteuerung (Lenkung fehlt wohl noch) Patrick Winter schrieb: > WOW Nibobee so ein Ding hatte ich mal! Das Problem war ich habe Bahnhof > kapiert und Schluss lieft nichts :-/. Sorry aber das passt nicht. Du hast bei einem vorgekauten und dreiviertel verdauten Anfänger-Robbi Bausatz nichts kapiert, willst jetzt aber einen viel komplexeren selber bauen und noch über WLAN und TCP/IP steuern? Frei nach dem Motto: Den Seifenkistenbausatz hab ich nicht hinbekommen, jetzt bau ich mir einen 911 Porsche komplett selbst. Junge, fang 10 Nummern kleiner an sonst wird das nix.
Patrick Winter schrieb: > Die PWM Ansteuerung wäre auch mit dem Arduino möglich oder? Diesen > steuere ich dann über mein Raspberry Pi ;D geht das? Wozu? die PWM Ansteuerung und die Motorregelung schafft eins der beiden Boards leicht alleine. Womit Du wahrscheinlich alle Mitlesenden verwirrt hast ist die Kombination der Fragen: >Ziel wäre es das Fahrzeug via WLAN mit einem kleinen C,C++ oder Python >Programm das auf Tcp/Ip Sockets basiert zusteuern. und : > Kann ich die Motoren wie gewünscht ansteuern mit einem Arduino due? Die Komunikation über Ethernet ist um ein Vielfaches (die Jugend würde bestimmt :viel-Vielfaches sagen) komplizierter als die reine Ansteuerung der Motoren. Wenn Du irgend ein Arduino Board hast ist es recht einfach die Motoren drehen zu lassen. Fang einfach am und lass das Fahrzeug ein paar Sekunden geradeaus fahren, dann Kurve, dann wieder gerdeaus. Wenn das fertig ist, melde dich wieder. Axel
Udo Schmitt schrieb: > Sorry aber das passt nicht. Du hast bei einem vorgekauten und > dreiviertel verdauten Anfänger-Robbi Bausatz nichts kapiert, willst > jetzt aber einen viel komplexeren selber bauen und noch über WLAN und > TCP/IP steuern? > > Frei nach dem Motto: > Den Seifenkistenbausatz hab ich nicht hinbekommen, jetzt bau ich mir > einen 911 Porsche komplett selbst. > > Junge, fang 10 Nummern kleiner an sonst wird das nix. Haha das war nicht ganz so. Der Lehrer gab uns den Bausatz und eine Bildanleitung wie man ads Teil lötet... Wir wussten nicht was die Bauteile machten am Schluss sollte er einfach funktionieren. Das war das erste mal das wir gelötet haben... und ist ca. ein Jahr her. Nun kommen wir zum Netzwerk Teil. Ich habe bereits Kenntnisse in C#, VB, Java, PHP, Javascript und CSS/HTML. Ich habe auch schon in VB und C# mit TCP/IP Sockets erfolgreich gearbeitet. Das Grösste Problem ist die Evalutaion der Sprache: C, C++ oder Python. Wenn du sagst ich brauche das Arduino gar nicht kann ich die einzelnen GPIO,s Pins via Python ansprechen. Soweit ich weis sollten TCP/IP Sockets für Python auch kein Problem sein... Ich besitze noch kein Arduino da ich gar nicht wusste ob ich eins brauchen werde oder ob der RPi reicht. Erstmal werde ich genau solche "einfache" Dinge machen wie z.B. LED zum leuchten bringen usw. genau in deinem Style. Also hab ich einen RPi daran hänge ich einen Motortreiber der Kompatibel ist zum Motor richtig? Dieser Treiber ist in der lage PWM-Signale warzunehmen und sie auszuwerten. Die Zusätliche benötigte Power wird auch über den Treiber bezogen oder? Hätte mir jemand einen Stichpunkt zur Negativspannung bzgl. des Rückwärtsganges?
> Wozu? die PWM Ansteuerung und die Motorregelung schafft eins der beiden > Boards leicht alleine. Na ja. Wenn er wirklich 4 Motore haben will, eins an jedem Rad. Wenn er wirklich wie von Marc - der wohl noch nie einen 4-rädrigen Allradrobotor gebaut hat - vorgeschlagen Modellbaufahrregler verwendet die mit PCM Impulsen von 1-2msec gesteuert werden. (Dann braucht er das Patrick unerwünschte Getriebe zwischen Motor und Rad, aber das nur am Rande) Dann hat er das Problem, daß er für die Geradeausfahrt alle 4 Motoren exakt gleich schnell laufen lassen muss. Dazu sind die Modellbaufahrtregler aber nicht geeignet. Selbst wenn sie intern wissen wie schnell der Motor sich dreht, teilen sie das nicht nach aussen mit. Und absolut identisch (1.7msec führt zu 10.00 upm) ist der Zusammenhang auch nicht. So funktioniert das also nicht. Aber das will Patrick ja auf die harte Tour lernen. Durch scheitern. Darin ist er schon geübt. Hat aber nichts draus gelernt.
Düsendieb schrieb: > Wenn Du irgend ein Arduino Board hast ist es recht einfach die Motoren > drehen zu lassen. Fang einfach am und lass das Fahrzeug ein paar > Sekunden geradeaus fahren, dann Kurve, dann wieder gerdeaus. > > Wenn das fertig ist, melde dich wieder. Im Prinzip bin ich bei dir. Allerdings muss er die erste Frage für sich klären (auch wenn ich denke, dass er das ganze Projekt erst mal zur Seite legen sollte und seine ersten Sporen erst mal mit LED, Tastern, Relais, Dimmern, etc. eben das volle Programm verdienen sollte). Die erste Frage muss die nach dem grundsätzlichen Konzept sein. MaWin hatte in seiner unnachahmlichen Art schon versucht, die Diskussion dorthin zu lenken. Drehzahlsteuerung von 4 Rädern an einem 4-rädrigem Fahrzeug ist Unfug. Das wird nichts. Zur Auswahl stehen * Einzelradansteuerung bei einem 2-rädrigem Fahrzeug, wobei es eine 3. Komponente gibt, damit das Teil nicht umfällt. Gesteuert wird durch Drehzahlunterschiede zwischen linkem und rechtem Rad Man benötigt Motoransteuerungen, wobei der µC mit dieser Motor- ansteuerung umgehen können muss und diese auch elektrisch vom Erbauer selbst ausgelegt werden muss. * Oder ein Aufbau, wie er in einem klassischem Modellauto aus der Fernsteuergilde vorliegt: 4 Räder. 2 davon lenkbar, 2 (oder wenn man viel Geld hat auch 4) der Räder angetrieben. Wobei man der mechanischen Einfachheit halber die angetriebenen Räder von den gelenkten Rädern trennt. In diesem Fall kann man vieles aus der Modellbaubranche direkt übernehmen, wie zb den kompletten mechanischen Aufbau bzw. die komplette Aktuator-Technik die durch Servo bzw. Fahrtregler aus dem Modellbauladen gelöst werden. Der µC sitzt an der Stelle, an der normalerweise der Modellbauempfänger sitzt und gibt einfach genau die gleichen Pulse an die Aktuatoren weiter, so wie das auch der Empfänger tun würde. Mit der ganzen Thematik: Motortreiber, Ströme u.dgl. hat man so gut wie nichts zu tun, das erledigen die gekauften Teile aus dem Modellbauladen und da die in großer Stückzahl produziert werden, sind die auch nicht besonders teuer. Diese beiden Optionen stehen meiner Ansicht nach zur Auswahl. Bei dem Wissens- und Kentnissstand des TO ist IMHO die 2-te Variante die bessere. Immerhin hat er dann immer noch ein RC-Auto, mit dem er noch rumfahren kann (denn eine Fernsteuerung braucht er sowieso.) Ehe hier die Entscheidung nicht gefallen ist, ist alles weitere im Projekt "ich baue ein Auto, welches ich von meinem Handy aus mit 180km/h bis Schweden fahren lassen kann" sowieso nur Makulatur. Und um ehrlich zu sein habe ich nicht den Eindruck gewonnen, dass dieses Projekt zur Zeit für den TO sinnvoll ist. Meiner Meinung nach ist es jetzt rausgeschmissenes Geld - da war der Wunsch der Vater des Gedanken und da wurde "Ich will" vor "Ich kann" gestellt und die normale Evolution des Wissensstandes ausser acht gelassen. Nur weil etwas 'cool' ist, heißt das nicht, das ich das in absehbarer Zeit stemmen kann. Viel wahrscheinlicher ist es, dass die eingekauften Teile irgendwann in einer Ecke landen und dort dann auch bleiben, bis sie bei einem Umzug irgendwann entsorgt werden. Das er einen zur Verfügung gestellten NiboBee nicht auf eigene Faust erforscht hat, spricht wohl Bände darüber, wie es um die Experimentierfreudigkeit des TO steht. IMHO eine unabdingbare Zutat, wenn man sowas auf eigene Faust machen will. Funktionen aus einem fertig zur Verfügung gestellten Monsterframework aufzurufen, das bis hin zum Kaffeekochen schon alles vorgekaut hat, ist nun mal keine hinreichende Vorbereitung, wenn man von ganz unten anfangen will.
Es geht bei den Motortreibern viel weniger um die Spannung, als um den Strom. Nehmen wir mal an, dein Arduino kann an einem I/O-pin 20mA abgeben, dein Motor braucht aber, um irgendeinen Wert aus der Luft zu greifen, 1A. Also dein Arduino kann aus den 5V nur 20mA abgeben, du willst aber aus den 5V 1A holen. Da kommt der Treiber ins Spiel. Bzw es müssen am Treiber dann nicht unbedingt 5 Volt sein, sondern kann auch eine höhere Spannung sein. Aber das Prinzip ist quasi, das der Arduino dem Treiber sagt, wie viel Strom der Motor bekommt, statt das der Arduino alles was er kann in Motor pumpt, und trotzdem nix passiert =)
Chaoskind schrieb: > Es geht bei den Motortreibern viel weniger um die Spannung, als um den > Strom. > > Nehmen wir mal an, dein Arduino kann an einem I/O-pin 20mA abgeben, dein > Motor braucht aber, um irgendeinen Wert aus der Luft zu greifen, 1A. > > Also dein Arduino kann aus den 5V nur 20mA abgeben, du willst aber aus > den 5V 1A holen. Da kommt der Treiber ins Spiel. Bzw es müssen am > Treiber dann nicht unbedingt 5 Volt sein, sondern kann auch eine höhere > Spannung sein. > > Aber das Prinzip ist quasi, das der Arduino dem Treiber sagt, wie viel > Strom der Motor bekommt, statt das der Arduino alles was er kann in > Motor pumpt, und trotzdem nix passiert =) Vielen Dank sehr aufschluss reich! > Aber das will Patrick ja auf die harte Tour lernen. Durch scheitern. > Darin ist er schon geübt. Hat aber nichts draus gelernt. Nach wie vor möchte ich mich mit den einfach Dingen zuerst auseinandersetzen und wieso sollte ich mit scheitern geübt sein bitte? Also ich lasse den Arduino erstmal weg und konzentriere mich auf meinen RPi und ein paar LEDs usw. an... Wo liegt der Vorteil bei 2 Rädern gegenüber dem mit 4? Das Problem mit der exakten Drehzahl bleibt doch oder?
Patrick Winter schrieb: > Wo liegt der Vorteil bei 2 Rädern gegenüber dem mit 4? Das du vernünftig lenken kannst! > Das Problem mit > der exakten Drehzahl bleibt doch oder? Und? Wie wurde das beim NiboBee gelöst? Richtig: man misst sie - nennt sich Odometrie und ist beim Nibo genau wie beim Asuro mit Lichtschranken gelöst, die die Drehzahl des jeweiligen Antreibsstranges feststellen.
> Das er einen zur Verfügung gestellten NiboBee nicht auf eigene Faust > erforscht hat, spricht wohl Bände darüber, wie es um die > Experimentierfreudigkeit des TO steht. IMHO eine unabdingbare Zutat, > wenn man sowas auf eigene Faust machen will. > Funktionen aus einem fertig zur Verfügung gestellten Monsterframework > aufzurufen, das bis hin zum Kaffeekochen schon alles vorgekaut hat, ist > nun mal keine hinreichende Vorbereitung, wenn man von ganz unten > anfangen will. Das war vor einem Jahr. Erstes Lehrjahr Informatik tut mir Leid das ich neben Programmieren, Netzwerken, Betriebsystem usw. nicht auch noch für Elektronik interessiert habe ;D. Damit will ich sagen Interessen ändern sich! (Bei mir zumindest) Also Zusammenfassung: Die Steuerung über WLAN/TCP-IP Sockets/Python bleibt ein Projekt für mich. Ich beginne mal ein LED über meinen RPi anzusprechen... Ich habe jetzt aber Trotzdem schon einen Haufen gelernt wie Grundsätzlich das ganze Realisiert werden "könnte" nach wie vor bleibt das Auto mein End-Ziel. Irgendwie kam das in den falschen Hals meine Hauptfrage war: Brauche ich ein Arduino zum ansprechen von mehr als 2 Motoren oder reicht der RPi?
Hi >Brauche ich ein Arduino zum ansprechen von mehr als 2 Motoren oder >reicht der RPi? Mit seinen nur 16 GPIOs ist der so geeignet wie ein 20pol. ATTiny. MfG Spess
Die Drehzahl von Motoren steuerst Du mit PWM. (Fast) jeder Mikrocontroller hat PWM Ausgänge, so auch Arduino und Raspberry Pi. Die Umsetzung vom PWM Signal zum Motor übernimmt der Motortreiber, welcher im einfachsten Fall aus ein paar Transistoren besteht - wie bein Nibobee, den kennst Du ja schon. Schau Dir nochmal die Schaltungsunterlagen vom Nibobee an, und suche mit Google Erklärungen, wie diese H-Brücken funktionieren. Oder schau in mein Buch: http://stefanfrings.de/mikrocontroller_buch/index.html, Band 2. Um mit IP-Sockets zu arbeiten, brauchst Du eine TCP/IP Stack. Bei Mikrcontrollern kenne ich da µIP und lwIP, beide sehr ähnlich, vom selben Autor und alles andere als einfach. Lehrreicher ist, die Protokolle ARP, MAC, IP, TCP, und HTTP zu lernen und selbst zu implementieren. Damit wirst Du einige Monate beschäftigt sein. Am Einfachsten ist, unter Linux auf Raspberry Pi die Socket API zu verwenden. Aber da skann ja jeder :-) Da wärst Du in bekanntem Fahrwasser, lernst aber nix neues dazu. Es gibt auch Module und Chips die den TCP/IP Stack (und was so dazu gehört) als Firmware enthalten. Sowas bekommst Du beispielsweise unter den Namen Lantronics Xport oder die Chips von Wiznet.
Servo hacking könnte wasd für Dich sein: http://www.robotfreak.de/blog/robotik/servo-hacking/17 Hier wird ein Servo zum Antriebsmotor für ein einzelnes Rad umgebaut. Den kannst Du dann direkt an einen beliebigen Mikrocontroller anschließen und mit PWM ansteuern. So hast Du den Motortreiber und das Getriebe für kleines Geld gleich inclusive.
Stefan schrieb: > Die Drehzahl von Motoren steuerst Du mit PWM. (Fast) jeder > Mikrocontroller hat PWM Ausgänge, so auch Arduino und Raspberry Pi. > > Die Umsetzung vom PWM Signal zum Motor übernimmt der Motortreiber, > welcher im einfachsten Fall aus ein paar Transistoren besteht - wie bein > Nibobee, den kennst Du ja schon. > > Schau Dir nochmal die Schaltungsunterlagen vom Nibobee an, und suche mit > Google Erklärungen, wie diese H-Brücken funktionieren. Oder schau in > mein Buch: http://stefanfrings.de/mikrocontroller_buch/index.html, Band > 2. > > Um mit IP-Sockets zu arbeiten, brauchst Du eine TCP/IP Stack. Bei > Mikrcontrollern kenne ich da µIP und lwIP, beide sehr ähnlich, vom > selben Autor und alles andere als einfach. > > Lehrreicher ist, die Protokolle ARP, MAC, IP, TCP, und HTTP zu lernen > und selbst zu implementieren. Damit wirst Du einige Monate beschäftigt > sein. > > Am Einfachsten ist, unter Linux auf Raspberry Pi die Socket API zu > verwenden. Aber da skann ja jeder :-) Da wärst Du in bekanntem > Fahrwasser, lernst aber nix neues dazu. Via Python kann ich die Pins ansprechen also wo liegt das Problem? Ich mache mir eine simple Client/Server Software wobei der Pi der Server ist und mein Computer der Client... Nun übergebe ich im z.B. Bewegungsobjekte die die PWM's regeln also das ist natürich brutal vereinfacht ;D.
Die GPIO Pins sind sehr langsam. Zu langsam, um per Software PWM Signale zu erzeugen. Daher schließt man einen weiteren Mikrocontroller an den Raspberry Pi an, der PWM Signale erzeugt. DIe Kommunikation zwischen Raspberry Pi und diesem Mikrocontroller erfolgt seriell, zum Beispiel über I2C. Siehe http://www.gsurf.de/vorbereiten-des-raspberry-pi-auf-i2c/ Mit meinem Servo Controller kannst Du viele Modellbau Servo Motoren oder DC Motoren (über ESC Motortreiber). http://stefanfrings.de/servocontroller/index.html Schau mal in mein Buch, das beantwortet sicher viele Deiner Fragen. Zumindest wird es hilfreich sein, einen konkreten Plan zu erstellen.
Uuups, ich merke gerade, dass ich vorhin behauptet hatte, der Raspberry Pi habe PWM Ausgänge. Das war ein Irrtum. Hat er nämlich nicht.
Vielen Dank, werde ich machen werde aber leider diese Woche keine Zeit mehr finden. Prüfungen bis zum abwinken... ;-D Ahh schade, wie sieht es mit dem Arduino aus? lohnt sich der Kauf zum Dinge auszuprobieren? Der Arduino wird dann via USB ans Raspberry angeschlossen und der Pi kontrolliert so zusagen den Software Part des Arduino. Ist der Arduino dazu geeignet "schnelle" PWM-Signale zu senden? Mir geht allgemein darum eine ausbaufähige Entwicklungs Umgembung zu haben auf welche ich mit einem Computer Einfluss nehmen kann! Etwas was ich in Zukunft wiederverwenden kann. Der Nibo wird gerade wiederbestellt und diesmal auch studiert und nicht nur gelötet ;-D.
kopfkratz Also wenn er keine Lenkung haben will kann er ja auch alle vier Achsen entsprechend regeln und damit echte Kurven fahren. Aber bevor er nun damit anfängt könnte er ja auch erstmal ein LEGO-Mindstorm oder einen der vielen anderen Roboterbausätze nehmen: http://www.conrad.de/ce/de/overview/2420180/Roboter-Bausatz http://www.elv.de/Roboter-selbst-bauen-und-programmieren-%E2%80%93-Roboterbausatz-NIBObee/x.aspx/cid_726/detail_38050 http://www.nicai-systems.com/de/robotik.html http://www.getdigital.de/products/Roboter_Bausatz http://krause-robotics.de/xtshop/Roboter-Bausaetze:::84.html Nur mal kurz metagesucht :-P
kopfkratzer schrieb: > kopfkratz > Also wenn er keine Lenkung haben will kann er ja auch alle vier Achsen > entsprechend regeln und damit echte Kurven fahren. > Aber bevor er nun damit anfängt könnte er ja auch erstmal ein > LEGO-Mindstorm oder einen der vielen anderen Roboterbausätze nehmen: > http://www.conrad.de/ce/de/overview/2420180/Roboter-Bausatz > http://www.elv.de/Roboter-selbst-bauen-und-program... > http://www.nicai-systems.com/de/robotik.html > http://www.getdigital.de/products/Roboter_Bausatz > http://krause-robotics.de/xtshop/Roboter-Bausaetze:::84.html > Nur mal kurz metagesucht :-P Das war ja auch ursprünglich meine Idee... Das geht anscheinend nicht sehr gut.
Patrick Winter schrieb: > kopfkratzer schrieb: >> kopfkratz >> Also wenn er keine Lenkung haben will kann er ja auch alle vier Achsen >> entsprechend regeln und damit echte Kurven fahren. > Das war ja auch ursprünglich meine Idee... > Das geht anscheinend nicht sehr gut. Geht noch abgefahrener: http://de.wikipedia.org/wiki/Omnidirektionaler_Antrieb http://www.youtube.com/watch?v=FKWdU9p2n-w Mit diesen Rädern kann er dann auch nach links und rechts driften. Nur mit normalen starren Rädern mußt Du entsprechend dem Kurvenverlauf die Motoren steuern das ist ein nicht zu unterschätzender Berechnungsaufwand aber machbar. Nur als Anfängerprojekt nicht geeignet, zwei Motoren und ein Stützrad sind da wesentlich einfacher zu handhaben ;-)
Werde dir doch bitte erstmal klar, was der Raspberry Pi ist und was ein Arduino ist. Das sind so komplett unterschiedliche Geräte wie ein PC (Personal Computer) und Taschenrechner. Du tust immer so, als könnte man die irgendwie austauschen. Und das TCP/IP lässt du am Besten erst mal weg.
Ich dachte an die GPIOs... wäre es alleine mit diesen realisierbar bräuchte ich den Arduino nicht. Ausserdem könnte ich die Pins direkt mit Python ansprechen. Ledier unterstützt der Pi PWM nicht also hat es sich geklärt!
Patrick Winter schrieb: > Ich dachte an die GPIOs... wäre es alleine mit diesen realisierbar > bräuchte ich den Arduino nicht. Ausserdem könnte ich die Pins direkt mit > Python ansprechen. Ledier unterstützt der Pi PWM nicht also hat es sich > geklärt! Dann nimmt man Software-PWM aber vielleicht solltest Du auf Karl-Heinz hören und erstmal mit einem Taster eine LED ein- und ausschalten :-P
Hallo Patrick, Der RasPi ist kein Echtzeitprozessor, der kümmert sich alle Paar Millisekunden total um den DRAM-Refresh und lauter so lustige Sachen. Der RasPi hat einen Hardware-PWM-Ausgang. Du möchtest aber deren vier. Darum brauchst du einen Microcontroller, und eine Kommunikation zwischen uC und RasPi. Der uC ist auch hilfreich um die Encoderrückimpulse an den Rädern zu zählen und dabei keinen zu verlieren. Arduino Due ist sicher eine Möglichkeit, aber ein Leonardo reicht wohl auch. Mit beiden kannst du vom RasPi aus über USB seriell kommunizieren, alternativ auch über I2C. I2C hätte den Vorteil dass du anstelle eines Arduino auch einen rohen Microcontroller benutzen könntest (dann aber noch einmalig einen USB-ICSP-Programmierer bräuchtest). Die uC-Ports sind aber zu schwach um direkt die Motoren zu treiben. Dazu brauchst du noch H-Brücken. Etwas ansatzweise ähnliches, aber nur mit zwei Rädern, hab ich auch gerade gebaut (http://tilda.googlecode.com), auch nur um zu lernen. Für die Messung der Radgeschwindigkeit benutze ich dabei keinen Encoder, sondern eine Back-EMF-Messung. Ungenauer, aber hardwaremässig einfacher, da Lego-Motoren. LG, Sebastian
Wie ich es geschrieben habe zuerst wird ganz einfach begonnen... Zweiter Schritt ist der Nibobee Und dann schaue ich mal weiter ;D! Sebastian W. schrieb: > Hallo Patrick, > > Der RasPi ist kein Echtzeitprozessor, der kümmert sich alle Paar > Millisekunden total um den DRAM-Refresh und lauter so lustige Sachen. > > Der RasPi hat einen Hardware-PWM-Ausgang. Du möchtest aber deren vier. > > Darum brauchst du einen Microcontroller, und eine Kommunikation zwischen > uC und RasPi. > > Der uC ist auch hilfreich um die Encoderrückimpulse an den Rädern zu > zählen und dabei keinen zu verlieren. > > Arduino Due ist sicher eine Möglichkeit, aber ein Leonardo reicht wohl > auch. Mit beiden kannst du vom RasPi aus über USB seriell kommunizieren, > alternativ auch über I2C. I2C hätte den Vorteil dass du anstelle eines > Arduino auch einen rohen Microcontroller benutzen könntest (dann aber > noch einmalig einen USB-ICSP-Programmierer bräuchtest). > > Die uC-Ports sind aber zu schwach um direkt die Motoren zu treiben. Dazu > brauchst du noch H-Brücken. > > Etwas ansatzweise ähnliches, aber nur mit zwei Rädern, hab ich auch > gerade gebaut (http://tilda.googlecode.com), auch nur um zu lernen. Für > die Messung der Radgeschwindigkeit benutze ich dabei keinen Encoder, > sondern eine Back-EMF-Messung. Ungenauer, aber hardwaremässig einfacher, > da Lego-Motoren. > > LG, Sebastian Ne Menge Tips in so einem kurzem Text. Ich werde mich mal mit den einzelnen Begriffen auseinandersetzen!
Sebastian W. schrieb: > Hallo Patrick, > > Der RasPi ist kein Echtzeitprozessor, Was auch immer ein "Echtzeitprozessor" sein soll... > Darum brauchst du einen Microcontroller, und eine Kommunikation zwischen > uC und RasPi. Wozu braucht man denn den RasPi? Um dem Ganzen jetzt eine TCP/IP Schnittstelle zu verpassen? Sorry, aber das ist doch nur noch albern. > Arduino Due ist sicher eine Möglichkeit, aber ein Leonardo reicht wohl > auch. Oder jedes andere einfache Entwicklungsboard oder eine selbstentwickelte Platine. Aber fangen wir lieber erstmal klein an. > Mit beiden kannst du vom RasPi aus über USB seriell kommunizieren Haha, also PC -> Applikation -> TCP/IP -> RasPi -> USB -> RS232 -> Mikrocontroller? Oh mann! Das riecht nach Informatikern ;-) Dazu noch hier und da ein paar "Wrapperklassen", "Interfaces" und interpretierten Skriptsprachen. Und wo ist jetzt nochmal die Elektronik geblieben bei dem Projekt? Ja, der RasPi ist ein schönes Hipster Mode-Ding, besonders bei Informatikern mit Python und anderen Interpretersprachen furchtbar beliebt. Aber der ist hier einfach nur dermaßen fehl am Platze und hat zudem fast nichts mit Elektronik zu tun, was du ja schließlich lernen willst (?!). Nimm dir ein Entwicklungsboard, von mir aus auch ein Arduino und lass ein paar LEDs blinken, arbeite das Tutorial hier durch, da sind ein paar nette Beispiele drin. Alleine eine Tastenentprellung überfordert schon viele Anfänger.
Das ist der Plan! Über den Pi wird da ein Video Signal über eine Webcam gestreamed ;D!
Rasperry und Arduino, um ein kleines Modellauto zu lenken? Das ist wohl der falsche Weg. Mein Tipp: Kauf dir ein ferngesteuertes Auto und schraub es auf. Wie schon vorher gesagt: da traut sich ein angehender Fachinformatiker ein bisschen zu viel zu. Arduino ist eine Plattform für Künstler ohne Elektronik/Informatik-Kenntnisse. Insofern wundert man sich kaum über die ständigen Zwischenfragen des TOs, "Geht das mit einem Arduino...?"
kopfkratzer schrieb: > Nur mit normalen starren Rädern mußt Du entsprechend dem Kurvenverlauf > die Motoren steuern das ist ein nicht zu unterschätzender > Berechnungsaufwand aber machbar. Nur mit 4 starren Rädern ist eine nachvollziebare Kurvenfahrt praktisch unmöglich. Je nach Radlast, Untergrund und Rad-Geometrie (und noch einiges anderes) wird das Fahrzeug ständig anders reagieren. Mal rutscht es über die Vorderräder, mal hält es die Spur obwohl eine Kurve gefahren werden soll, mal drehen die Antriebsräder mehr und mal weniger stark durch. Am einfachsten und genauesten geht eine definierte Kurve mit nur zwei Rädern (zb: Asuro, Nibo). Ein kleines bisschen schwieriger ist es mit einem Modellautochasis (4 Räder, davon die vorderen zwei gelenkt). Ulli
Patrick Winter schrieb: > Das ist der Plan! Über den Pi wird da ein Video Signal über eine Webcam > gestreamed ;D! Ja, ne, is klar. In 3 Jahren vielleicht mal. Bis dahin hast du 2 Prozessoren abgefackelt, 5 mal die H-Brücke geschossen und 3 neue µC-Platinen gefädelt bzw. auf Lochraster aufgebaut und 12 neue Sensoren an deinen µC angeschlossen, deinem µC einfache Fähigkeiten zum autonomen Navigieren beigebracht, ihn Outdoor mittels GPS durch den Garten an den Blumenbeeten vorbeigejagt (wohlgemerkt im Wheely-Modus, also auf den Hinterbeinen aufrecht stehend). Kurz und gut: deine µC Hardware in 3 Jahren, wird mit dem was du in ein paar Tagen/Wochen in Betrieb nimmst, ausser dem Namen nicht mehr viel zu tun haben. Und das ist gut so! Denn es bedeutet, dass du dich weiterentwickelt hast! Plane für JETZT und was du JETZT machen kannst. Nicht für das was in 3 Jahren vielleicht mal sein wird. µC sind so billig geworden, dass du dir für den Gegenwert von 2 Bier mal schnell eine neue µC-Platine aufbauen kannst, wenn dir die alte zu klein geworden ist.
Ganz Ruhig das war ein JOKE :-). Was das ganze mit dem Echtzeitsystem anbelangt habt ihr natürlich recht :-). Das hätte mir eigentlich auch einfallen müssen.
Geht es dir ums bauen des Roboters oder ums Programmieren? Eventuell würde es ja ein Stellaris EvalBot tun. Der hat Ethernet mit dran, Wlan bekommt man bestimmt auch irgendwie hin. Außerdem lässt der sich relativ einfach programmieren, dank umfangreicher Library.
Kan asta schrieb: > Rasperry und Arduino, um ein kleines Modellauto zu lenken? Das ist wohl > der falsche Weg. Mein Tipp: Kauf dir ein ferngesteuertes Auto und > schraub es auf. > > Wie schon vorher gesagt: da traut sich ein angehender Fachinformatiker > ein bisschen zu viel zu. Arduino ist eine Plattform für Künstler ohne > Elektronik/Informatik-Kenntnisse. Insofern wundert man sich kaum über > die ständigen Zwischenfragen des TOs, "Geht das mit einem Arduino...?" Ist das mit dem Arduino ernst gemeint? Ich meine ist der Arduino das "Windows" unter den uC's? Was wäre dann ein uC bei dem man Kenntnise in Elektronik/Informatik-Kenntnisse haben sollte? Ein selber gebauter?
Patrick Winter schrieb: > > Ist das mit dem Arduino ernst gemeint? > Ich meine ist der Arduino das "Windows" unter den uC's? > Was wäre dann ein uC bei dem man Kenntnise in > Elektronik/Informatik-Kenntnisse haben sollte? > > Ein selber gebauter? Jein, der Arduino hat bereits Bootloader und eigene Bibliotheken für I/O, Timer usw. implementiert. Ergo legst Du Dich auf diese Bibliotheken bei der Programmierung fest. Hat den Vorteil das Du schneller zum Ergebnis kommst aber Du lernst nicht was in der Hardware passiert. Für's hardwarenahe Programmieren günstiger ist direkt mit einem "nackten" µC anzufangen um zu verstehen was der Timer macht, wie man das berechnet usw. usf. Für Deinen Roboter brauchst Du minimal: 2x E-Motoren mit Rädern (EMV nicht vergessen) 2x H-Brücke passend zum Motor (oder eine für zwei Motoren) 4x Taster als Anschlagsschalter 1x µC mit vier Eingängen für die Anschlagschalter und zur H-Brücke passende Ausgänge (PWM, Select usw, usf) 1x Stützrad 1x Chassis (Aluprofil o.ä.) 1x Platine (Lochraster o.ä.) 1x ISP-Programmer 1x Entwicklungsumgebung (WinAVR, AVR-GCC+AVRDUDE, ATMEL-Studio o.ä.) 1x 12V-Akkupack 1x 5V-Regler für den µC Xx Hühnerfutter (Widerlinge, Kondensatoren, Dioden usw. usf.) So, damit weißt Du was Du für einen ganz einfachen Fahrroboter brauchst. Dann mußt Du das Programm schreiben, das die Regelung der Motoren übernimmt und den Roboter steuert wenn die Anschlagtaster ein Hinderniß erkennen. Wenn der dann wild im Zimmer rummrennt kannst Du anfangen Dir zu überlegen wie Du den erweitern könntest. Gehe mal davon aus das Du bis er rennt ein paarmal das ganze Projekt "resettet" haben wirst, wie Karl-Heinz schon sagte :-P
Hi >Ist das mit dem Arduino ernst gemeint? >Ich meine ist der Arduino das "Windows" unter den uC's? Arduino ist kein µC sondern ein System aus Harware mit einem AVR, der einen Bootloader enthält, eineIDE und Bibliotheken für alle mögliche Hardware (bestimmt noch etwas vergessen). Und das ermöglicht es Leuten ohne größere Hardwarekenntnisse Erfolge zu erzielen. Aber genau so gut kann man andere Programmiersprachen verwenden und eigene Erweiterungen bauen. >Was wäre dann ein uC bei dem man Kenntnise in >Elektronik/Informatik-Kenntnisse haben sollte? Praktisch jeder. >Ein selber gebauter? Willst du jetzt auch noch Schaltkreise entwickeln? MfG Spess
Patrick Winter schrieb: > Ist das mit dem Arduino ernst gemeint? > Ich meine ist der Arduino das "Windows" unter den uC's? Arduino (bestimmungsgemäss) zu programmieren, ist eher wie das Spielen eines Synthesizers. Der Spieler wählt aus vorgefertigten Modulen diejenigen aus, die er für seinen Zweck benutzen möchte und verbindet die. Das heißt nicht, dass man damit nicht kreativ arbeiten kann. Überhaupt nicht. Abeer wenn ich Instrumentbau studieren möchte, dann muss ich verstehen, was in diesem Modulen abgeht und die nicht einfach nur abrufen und miteinander verbinden.
Ein "nackter" Mikrocontroller wäre zb der Atmel ATmega32, bzw jeder aus der Serie... wobei ich den Mega32 gern mag, der hat viele GPIO´s und anderen schicken SchnickSchnack mit an Bord. Damit entwickele ich mir z.Zt. auch nen Robi. Erstmal auf Lochrasterplatine, er hat auch nur eine Achse!!, dazu kommt halt vorn noch irgendwie ne Art Stützrad hin, da bin ich noch am Tüfteln. Als Motortreiber hab ich mir da einfach die auch schon erwähnten H-Brücken zusammengebastelt, davor noch n BC547 als kleiner "Treibertreiber" *gg damit die armen Ports nich so arg belastet werden. Um das Problem mit den 4Rädern, die per Drehzahl und nicht per Achsschenkel gelenkt werden sollen evtl ein wenig zu Erläutern: Stell dir vor, du hast nen Einkaufswagen, aber alle 4 Räder sind in der Geradeausstellung arretiert. Nun willst du das Ding koordiniert um die Regale mit den Gurkengläsern und anderen zerbrechlichem Krams herumbekommen, indem du einfach nur verschieden stark an den Griffseiten ziehst/drückst? ----- ----- <--Räder sind frei--> | | | | |-----------------| "hoch/runter" Räder blockieren: Haftreibung | | | | ----- ----- Eine Kurve beinhaltet aber immer eine Rotation um die Hochachse, und da wehren sich die Räder halt ganz einfach gegen. Egal wie du ansetzt, wählst du die Hinterachse als Drehpunkt, dann wird dir die Vorderachse die Rotation versauen, wählst du den Drehpunkt irgendwo mittig, dann sind beide Achsen demokratisch gegens Drehen, und bei der Vorderachse isses wie hinten nur umgekehrt. Du kannst sie natürlich mit roher Gewalt zum Drehen zwingen, doch ist rohe Gewalt naturgemäß immer recht unpräzise =) Ich hoffe, die Erläuterungen konnten dich zur Einachs- +Stütztradvariante überzeugen. Es muss übrigens kein Rad sein ;-), beim Asuro den ich hier auch rumfliegen hab, der mir aber zu wenig Erweiterungsmöglichkeiten mit seinem kleinen Mega8 hat, wird n halbierter Tischtennisball mit Heißkleber/Sekundenkleber zur Not wahrscheinlich auch Kaugummi festgepappt. Den Kaugummi solltest du aber gut durchtrocknen lassen, Speichel ist meines Wissens nach leitfähig *gg
P.S. Für den nackten µC brauchst du aber wie in anderen Beiträgen erwähnt, noch ein Programmiergerät, da solltest du dich Einlesen, indem du zb die Tutorials hier durchackerst, die haben mir auch sehr geholfen, ich bin ich auch noch nicht so lange dabei mich den kleinen Vielbeinern zu befassen. Also wenn elektronische Grundkenntnisse vorhanden sind, bei den den AVR, also den µC aus der ATiny ATmega und wie sie nich alle heißen Serie sind sehr gute Datenblätter zu haben. Damit und den Tutorials hier sollte es eigentlich kein Problem sein, dem erstmal ein LED blinken zu entlocken, und sich dann größerem zu widmen. Viel Erfolg bei deinem Prüfungsstress übrigens MfG Chaos
Lass dich auf gar keinen Fall von zu komplizierter mechanik von deinem Vorhaben abbringen es ist nicht ganz so kompliziert wie das alle darstellen ;) Ich habe sowas ähnliches auch schon gebastelt: Spielzeugauto + OpenWrt Router + Webcam = Auto das 180km nach Finnland fährt ;) Am besten nimmst du eine schon vorhandene platform als basis (z.B. Spielzeugauto wenn du nur Grundfunktionen brauchst wie vorwärts, vorwärts-links... oder gleich ein chasis von einem modellauto wo dann alles stufenlos regelbar ist) und arbeitest dich dann schritt für schritt über die Ansteuerung der Motoren, Notabschaltung (man sollte nie vergessen einen gut erreichbaren ausschalter einzubauen, das hab ich auf die harte tour lernen müssen :/) und dann dein TCP/IP Zeug Was alle anderen oben vergessen haben ist ein solider Akku, denn so ein Motor braucht doch ein bisschen was an Strom und wenn man immer nur 15min testen kann kommt man beim bauen nicht so schnell weiter ^^
> Am besten nimmst du eine schon vorhandene platform als basis (z.B. > Spielzeugauto wenn du nur Grundfunktionen brauchst wie vorwärts, > vorwärts-links... oder gleich ein chasis von einem modellauto wo dann > alles stufenlos regelbar ist) ^^ Wurde auch schon mehrfach erwähnt, und funktioniert auch gut, da hier ja eine Achse lenkbar ist. Wobei die Positionierung über eine Achse + Odometer wesentlich genauer und einfacher ist... Wenns natürlich darum geht, das es cool aussehen soll ist die 2Achsvariante wahrscheinlich die bessere Wahl, aber dem Roboter das Fahren beizugbringen, ist so wesentlich schwerer. Du hast nen "Fahrschüler" der zwar schnell, aber nur relativ simple Mathematik wirklich schnell kann. Der versteht dann dann eher: "lass denn linken Motor so lange drehen, bis die Lichtschranke x mal geblinkt hat", dann "weiß" er nämlich das er sich dann um meinetwegen 90° gedreht hat. Was das Navigieren deutlich einfacher macht macht, als wenn er sich "überlegen" müsste, wenn ich nun mit dem Lenkeinschlag x y lange Zeit fahre, dann hab ich mich soweit gedreht. Hinzukommt dann noch die eingeschränkte Wendigkeit. Beim 1Achser kannst du einfach auf der Stelle drehen. Mit der Variante über 2Achsen sind wir früher mal im Informatikunterricht gescheitert. Damals mit der ersten Mindstormsvariante. Wobei wir da mit der Sensorik sehr eingeschränkt ausgestattet waren. Wir sind dann halt sehr schnell zur 1Achsvariante übergegangen.
> Um das Problem mit den 4Rädern Ja, geht schon, http://www.reichelt.de/Robotik/6WHEEL-CHASSIS/3//index.html?ACTION=3&GROUPID=5728&ARTICLE=102235&SHOW=1&START=0&OFFSET=500& Das funktioniert, weil die 6 Räder speziell sind, die haben kleine Gumminoppen die etwas biegsam sind. Damit kann ein Rad "quer gezogen" werden und sich der Kurve anpassen ohne über den Boden zu schrappeln. Auf Grund der gleichmässigen Federkraft des Gummis aller 6 Räder ist die Kurve sogar halbwegs gleichmässig. Doch all solche technischen Konstruktions-Details mit denen man solche Technik dennoch zum laufen bekommt kennt der Patrick nicht.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.