Hallo Community, ich arbeite derzeit an einem Roboterprojekt und würde mich freuen, wenn mir jemand Feedback zu meinem Schaltplan geben kann, da es sich hierbei um mein erstes aufwändige Projekt handelt und sicher voller Fehler ist. Ich versuche mal die Features etwas zu beschreiben, um den Plan etwas klarer zu machen. Was man auf dem Schaltplan sehen kann, soll eine Platine (designed als Raspberry PI Zero Schield) sein. Mein Ziel ist es, ein Modul zu haben (möglichst klein), auf dem sich alles befindet was man braucht, um einen einfachen Roboter zu bauen der sich mittels LIDAR selbst lokalisieren und 2D Karten aufnehmen kann. Die zentrale Einheit ist der STM32F103, dieser soll über SWD durch den Raspi remote geflashed werden können. Der MCU soll u.a. dazu verwendet werden um die Antriebsmotoren anzusteuern. Es sollen sich jeweils zwei Motoren Links und Rechts befinden (L293DD). Um die Drehzahl zu messen möchte ich an jeder Seite eine Encoder-Scheibe anbringen, welche durch eine Gabellichtschranke und Interrupts am STM32 abgelesen werden soll. Damit es im Gehäuse nicht zu warm wird will ich einen kleinen 20mm Lüfter einbauen, welcher über ein IRLML2505 angesteuert wird. Das gleiche Bauteil möchte ich dazu verwenden, um zwei weiße LEDs zu betreiben, welche als Frontlampe dienen. Und noch einen weiteren um einen Motor anzusteuern, der den LIDAR bewegen soll. Der LIDAR selbst ist lediglich ein TFMini mit einer weiteren Gabellichtschranke, um die Position zu bestimmen. Für Odometrie möchte ich ein IMU-Sensor (ICM-20948) verwenden und diesen mit den Motordrezahldaten integrieren. (Mal sehen wie das Funktioniert) Um eine RGB-Status-LED zu betreiben habe ich mir mal das PCA9533 Modul ausgewählt, da dieses über I2C ansteuerbar ist und somit Bauteile und Pins am MCU spart. Außerdem möchte ich gern ein INA219 dazu verwenden, um den Stromverbrauch zu ermitteln, um z.B. die Verbleibende Akkuleistung bei aktuellem verbrauch zu berechnen. Um das ganze zu betreiben brauche ich scheinbar vier verschiedene Spannungslevel. 3.3v für alle am I2C hängenden ICs sowie dem STM32, 5v für den Raspberry Pi und den LIDAR (dafür nehme ich einen billigen Buck-Converter mit 4 Ampere) und 1.8v für die Logic des ICM-20948. Alle Motoren würde ich mit der eingehenden Spannung direkt betreiben - dann kann ich später vielleicht z.B. auch 12v Motoren betreiben, wenn ich eine andere Spannungsquelle verwende, dachte ich mir. Ich hoffe mein Vorhaben sowie der Plan ist verständlich. Neben dem Schaltplan habe ich noch mein PCB-Routing hochgeladen, man wird vermutlich nichts darauf erkennen können, aber vielleicht fällt jemandem dennoch das ein oder andere auf. Ich habe schon eine eine Version gebaut, bei der es wohl leider einen Fehler in der 3.3v Stromversorgung gab und sie hat daher nicht funktioniert, ich habe den Fehler denke ich korrigiert, aber es wäre sehr ärgerlich noch eine Version zu haben bei der garnichts geht :D Vielen Dank für eure Hilfe, ich bin für jede Art von Kritik und Verbesserungsvorschläge sehr dankbar.
Bin leider nicht bewandert genug um dich beraten zu können, aber die Projektidee gefällt mir! :)
L293 Motortreiber ist nicht mehr von diese Zeit ! Hohe Verlustleistung, fiel Spannungsabfall, fackelt schnell ab. Such eine moderne Fet H-brucke. Ausgange für (modellbau) Servos sind immer nutzlich, als auch analog eingange (Sharp Distance sensoren). Wie sieht aus mit die Schnittstelle, nur Wifi ? Eine uart mit BT (HC05) ist auch nutzlich, braucht du nicht immer Wifi. Hasst du schon ein Prototyp gebaut auf eine Lochplatine ? MFG, RP6conrad.
Alex G. schrieb: > Bin leider nicht bewandert genug um dich beraten zu können, aber die > Projektidee gefällt mir! :) vielen Dank :) RP6conrad schrieb: > Hasst du schon ein Prototyp gebaut auf eine Lochplatine ? ich hab mit ein paar Breakout Modulen rumgespielt und mit dem L293d, aber alles zussammen komplett noch nicht wirklich, damals aber noch mit einem Teensy 3.2. Hab aber seither einiges gändert. Ist Teilweiße auch relativ schwirig da es großteils SMD bauteile sind. Den größten unbehagen habe ich bei den 3 Mosfets für Lüfter und LIDAR-Motor, da ich noch keine Erfahrung mit diesen Bauteilen habe. RP6conrad schrieb: > als auch analog > eingange (Sharp Distance sensoren) Den Sensor hatte ich sogar damals eingeplant für meinen LIDAR, hab es aber entfernt, da zum einen die analogen STM32 Eingänge nicht 5v kompatibel sind und ich zum anderen Angst davor habe, dass ich den Ground und Vref nicht richtig hinbekomme, sodass das gemessene nutzlos wird. RP6conrad schrieb: > Wie sieht aus mit die Schnittstelle, > nur Wifi ? Eine uart mit BT (HC05) ist auch nutzlich, braucht du nicht > immer Wifi. Mit dem Gedanken hatte ich auch gespielt, hab es jetz aber eher mal vernachlässigt, da ich es als Raspi Schield designed habe und dieser auch mit Bluetooth agieren könnte. Als Erweiterungsmöglichkeit habe ich Pins für die I2C Schnittstelle angebracht und theoretisch könnte man anstatt den Gabellichtschranken ein UART-Modul anbringen, da es die UART-Pins verwendet, oder den Raspi entfernen und die serielle Schnittstelle von diesem verwenden. RP6conrad schrieb: > Ausgange für (modellbau) Servos sind immer nutzlich Das stimmt, darüber habe ich noch garnicht nachgedacht, ich muss mal schauen, wie ich das unterbringe :D RP6conrad schrieb: > L293 Motortreiber ist nicht mehr von diese Zeit ! Hohe Verlustleistung, > fiel Spannungsabfall, fackelt schnell ab. Such eine moderne Fet > H-brucke. Der L293d hat den Vorteil, dass es einfach anzuschliesen ist, das es sehr viele Anfänger Tutorials gibt. Nach Alternativen habe ich schon ausschau gehalten, aber ich weiß leider nicht auf was ich achten soll, weswegen ich so verblieben bin. Aber ich denke du hast. Vielen Dank für die Antworten.
Was sollen denn da für Motoren drann? 2A Anlaufstrom für die Motoren reichen? so mal übern Daumen - sind deine Leiterbahnen für ca. 10A Belastung ausgelegt?
Ich verwende eine STM32 Discovery F100 platine. Bei Belegung von alle pins ist es wichtig um die auf die richtige Functionen einzurichten, beispiel : Analog eingange auf Analog pins Encoder A/B auf Timerpins, so kannst du ohne Interrupt geleich in Hardware die pulzen zahlen. Functioniert bis sehr hohe frequenzen. Modellbau servo auf Timerpins, mit eine 16 bit timer kan auf µs genau diese pulsen generiert worden. Bestimmte timer haben 4 Kanalen ! UART (bt) auf fest, I2C auch fest. Bestimmte Lidar haben auch eine UART Schnittstelle ! PWM fur H-brucke, auch auf Timerpins ! Mit eine FET etwas anzusteuern geht gut, aber : eine n-mosfet schaltet nach masse, mit 3.3V brauchen sie ein Logic level fet ! Ein kurzes video : https://www.youtube.com/watch?v=fp8s_tlwyIY
Rene K. schrieb: > Was sollen denn da für Motoren drann? 2A Anlaufstrom für die Motoren > reichen? so mal übern Daumen - sind deine Leiterbahnen für ca. 10A > Belastung ausgelegt? momentan 4 von diesen hier: https://www.ebay.de/itm/DC3-6V-Verbesserte-Smart-RC-Auto-Robot-Gear-Motor-Rad-fur-Arduino-Ersatzteil-Fla/143134462637?hash=item21537a92ad:g:QaAAAOSwlddcZ~fJ sind zwar auf 6v asugelegt, aber die H-Brücken müssen ja nicht komplett aufgedreht sein. Hab jetz doch mal geschaut, der MC33926PNBR2 sieht ganz gut aus für miene Zwecke oder nicht? Würde auch platz sparen auf der Platine. https://de.farnell.com/nxp/mc33926pnbr2/motortreiber-dc-b-rstenm-5a-qfn/dp/2775962?st=MC33926 H.Joachim S. schrieb: > Ich empfehle dir ein 4Lagen-Layout. Da hast du wohl recht, konnte mich aber noch nicht dazu durchringen, 17 Euro im Monat für Eagle zu bezahlen
Diese Motoren soll ich vermeiden : absolut billig plastic getriebe, und kein eingebautes encoder ! Ich habe gute Erfahrungen mit diese motoren : https://www.banggood.com/search/encoder-motor-dc.html?sbc=1 Hier ein Bericht dazu : http://wiki.robotmc.be/index.php/Encoder_Motor (Google translate ?).
RP6conrad schrieb: > Mit eine FET etwas anzusteuern geht gut, aber : eine n-mosfet schaltet > nach masse, mit 3.3V brauchen sie ein Logic level fet ! Danke für den Hinweis. Ist das bei dem IRLML2502 wirklich auch so? Ich habe ihn aus diesem Thread. Leider sind mir die Datenblätter viel zu kryptisch um herauszufinden ob es funktionieren wird Beitrag "SMD Fet für 3,3V?" RP6conrad schrieb: > Analog eingange auf Analog pins > Encoder A/B auf Timerpins, so kannst du ohne Interrupt geleich in > Hardware die pulzen zahlen. Functioniert bis sehr hohe frequenzen. > Modellbau servo auf Timerpins, mit eine 16 bit timer kan auf µs genau > diese pulsen generiert worden. Bestimmte timer haben 4 Kanalen ! > UART (bt) auf fest, I2C auch fest. Bestimmte Lidar haben auch eine UART > Schnittstelle ! > PWM fur H-brucke, auch auf Timerpins ! Danke auch für diesen Hinweis, bei der Erstellung habe ich darauf geachtet die Hardwareschnittstellen Pins zu verwenden und das alle Interrupts/PWM ihren eigenen Timer-Kanal haben. RP6conrad schrieb: > Ein kurzes video : Youtube-Video "Slalom met differentiaal robot" Sieht gut aus. Verwendest du neben Odometrie noch andere Methoden zur Positionsbestimmung? Wenn nein, wie lange dauert es ca. bis sich der Drift bemerkbar macht?
ITLML2502 ist eine logic level n-channel mosfet. Soll functionieren, muss aber die Masse leitung unterbrechen. Geht nicht immer, da die Versorgungsspannung immer auf das teil bleibt ! Meine Robby macht diese slalom rein ueber odometrie, aber der drift baut sich langsam auf. Gans wichtig ist die Auflosung von encoder (bei mir ca 0.02 mm/puls), mechanic und reibung. Auch ansteurung (trapezium profil) von Motoren ist sehr wichtig. Auf eine glatte boden geht das fiel besser wie auf teppig !
RP6conrad schrieb: > Diese Motoren soll ich vermeiden : absolut billig plastic getriebe, und > kein eingebautes encoder ! Ich habe gute Erfahrungen mit diese motoren : > https://www.banggood.com/search/encoder-motor-dc.html?sbc=1 > Hier ein Bericht dazu : http://wiki.robotmc.be/index.php/Encoder_Motor > (Google translate ?). Die Motoren will ich für die erste Version mal verwenden, bis alles einigermaßen läuft. Aber das ist tortzdem ein guter Punkt, vielleicht sollte ich meine Anschlüssle auf der Platine direkt so machen, dass man Encoder-Motoren einfach anschliesen kann.
RP6conrad schrieb: > Soll functionieren, > muss aber die Masse leitung unterbrechen was meinst du mit Masseleitung unterbrechen?
Ihre Schaltplan ist richtig, fets unterbrechen der Ground. Gate widerstand soll ich etwas hoher wahlen (1k), das ist dan auch ein absicherung when den fet mal durchschlagt.
Jan schrieb: > Ich hoffe mein Vorhaben sowie der Plan ist verständlich Wie kommt man eigentlich auf due Idee, das Nebeneinanderklatschen von Prinzipschaltbildern als Schaltplan zu verstehen ? Weil Adafruit das aus Faulheit auch so macht ? Es ist nicht zu erkennen, ob beispielsweise der DS18B20 ausreichend abgeblockt ist, ob 0 Ohm als Vorwiderstand für 2 LEDs in Reihe passt, ob der Lüfter per PWM geregelt werden soll (dank 1N4004 wohl nein), wie man darauf kommt dass 2 LiPo in Reihe 8V haben (sie haben wohl eher 5 bis 8.4V) Ein L293D für Motoren zu verwenden ist nun sowas von 80ger Jahre, aber vielleicht reicht dieser billigste und uneffizienteste der Treiber ja, weil die Motoren nicht mal 600mA Blockierstrom=Anlaufstrom haben.
Sieht für mich nach Eagle aus. Kannst du die Dateien hochladen?
MaWin schrieb: > Wie kommt man eigentlich auf due Idee, das Nebeneinanderklatschen von > Prinzipschaltbildern als Schaltplan zu verstehen ? > Weil Adafruit das aus Faulheit auch so macht ? Was spricht dagegen? Ich dachte, die vielen Verbindungen an den MCU würden es nur unnötig kompliziert machen, da überall verbindungen wären. MaWin schrieb: > Es ist nicht zu erkennen, ob beispielsweise der DS18B20 ausreichend > abgeblockt ist was meinst du mit abgeblockt? MaWin schrieb: > wie man > darauf kommt dass 2 LiPo in Reihe 8V haben (sie haben wohl eher 5 bis > 8.4V) das ist ein Standart Supply-Element von Eagle, daher habe ich es dazu gesagt. MaWin schrieb: > ob 0 Ohm als Vorwiderstand für 2 LEDs in Reihe passt Das hätt ich vielleicht erwähnen sollen, die wiederstände für die LEDs wollte ich nicht auf der Platine haben um ggf. noch mehr oder weniger zu haben. 0Ohm wollte ich einfahc nur als Platzhalter drauf haben, falls es doch mal nur eine ist oder so. MaWin schrieb: > ob > der Lüfter per PWM geregelt werden soll (dank 1N4004 wohl nein) Sollte eigentlich PWM werden, genauso wie bei den LED, wieso geht das nicht? Ich dachte die Diode ist nur dafür da Rücklaufstrom abzuwendenden, wenn der Motor z.b. anhält oder sich bewegt? Schorsch X. schrieb: > Ich kann den DRV8844 empfehlen. Für etwas höhere Ströme den DRV8412. Danke für den Tipp, ich schau mir die Bauteile später etwas genauer an. Funktionieren die gut mit 2s LiPos? Da steht steht Betriebsversorgungsspannung 8v, das muss ja nicht unbedingt immer gegeben sein, z.b wenn die Batterien nur noch halb voll sind. Thomas Malwinter schrieb: > Sieht für mich nach Eagle aus. Kannst du die Dateien hochladen? Korrekt - ist im Anhang. Ich denke das Board muss ich neu machen. Die Masse ist nicht wirklich gut verlegt. Vielen Dank für eure Antworten.
Hi, auch ich rate dir von den L293-Treibern ab, es finden sich bestimmt brauchbare Moderne H-Brücken und man kann bestimmt auch mit einem Gatedriver-IC und diskreten Mosfets geeignete Motorsteuerungen bauen. Zu den zwei diskreten Mosfets: Es fehlt mir noch ein Widerstand (>=100k) zwischen Gate und Source um sicherzustellen, dass im Hochohmigen zustand der µC-Pins die Transistoren nicht durchschalten. LG
Elektro Heini schrieb: > und man kann bestimmt auch mit einem > Gatedriver-IC und diskreten Mosfets geeignete Motorsteuerungen bauen ach ne, nicht bei der Leistung. Da gibts genug fertigen Kram.
Elektro Heini schrieb: > Zu den zwei diskreten Mosfets: Es fehlt mir noch ein Widerstand (>=100k) > zwischen Gate und Source um sicherzustellen, dass im Hochohmigen zustand > der µC-Pins die Transistoren nicht durchschalten. Du meinst einfach Pulldown-Widerstände oder? Stimmt, das kann nicht schaden. H.Joachim S. schrieb: > Da gibts genug fertigen Kram. bei meinem Anfängerwissen hab ich auch nur so eine Chance, dass es funktioniert :D
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.