PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Grundschaltung meines ersten Bots



daviid
17.08.2010, 22:47
Hallo,

ich bin gerade dabei meinen ersten Bot zu entwickeln, ich bin elektronisch definitiv nicht unbegabt und programmiere µCs normalerweise mit Bascom, ausnahme is dabei jedoch mein NET-IO weil ich da Ulrich Radigs FW einsetz, aber ich komm schon wieder weit vom Thema ab.

Also ich hab erstmal nen Mega eingeplant, den kann ich später auch Problemlos durch nen 644er ersetzen, wenn der Platz knapp wird, wenn dann alles mal halbwegs läuft werd ich das ganze auch noch in SMD aufbauen.

Hab ich irgendwelche groben Fehler in meiner Schaltung bzw im Layout?

Wundert euch nicht dass auf dem Teil noch keine Sensorik verbaut ist, die schlis ich per I2C an, also vorne kommen zwei IR-Dioden und ein TSOP (gab bei Conrad nix anderes mehr, und der 36khz Empfänger bei reichelt gabs auch nichmehr ...) hin um damit grobe Hindernisse erkennen zu können.

Später kommt dann auch ein genauer IR Abstandsmesser von Scharp zum Einsatz mit dem genaue Ausweichmanöver möglich werden.

Achja, aufgebaut werden wird das auf dem Chassis vom RP5.

Wär echt nett wenn da jemand mal drüberschauen könnt. :)


Gruß
David

MichaF
18.08.2010, 07:35
Ein paar Worte zur Schaltung:

- Du hast AVCC/AGND nicht angeschlossen. Wird von Atmel zwar nicht empfohlen, aber wenn du den PortA nicht brauchst, kann man das evtl. noch durchgehen lassen. Sauberer wäre es, die beiden Pins auch noch anzuschließen und mit 100nF zu blocken.

- Auf "SV2" soll mal der I2C abgreifbar sein? Da sind Pullup Widerstände nicht unüblich ;)

- Wenn du mit dem LD293 einen Motor schalten willst stehen die Chancen momentan gut das der Mega16 bei jedem Anlaufvorgang Schluckauf bekommt. Da würde ich noch für Kapazität vor dem Spannungsregler (> 100µF) sorgen. Bestenfalls auch noch nach dem Spannungsregler, also auf der 5V Seite einen etwas größeren Kondensator einplanen, 10µF verkraftet so ein Regler üblicherweise. Das steht aber alles im Datenblatt. Noch besser wären 2 verschiedene Spannungsquellen, aber das ist ja meist nicht realisierbar.


Layout:

- Hat das nen Design Rule Check (DRC) bestanden? Ich glaube nicht ;) Gibt ja leider keine Pin Nummerierungen, aber schau dir mal die Leiterbahn zwischen dem 3. und 4. Pin von links unten am Mega16 an - soll das wirklich so sein? Und es gibt auch noch die ein oder andere weitere Stelle, die eng werden könnte.

- C4 dürfte selbst für sehr anspruchslose Bauteile so gut wie keinen Vorteil bringen, der ist viel zu weit von seinem zugehörigen Pin entfernt.

- C3 und C5 sehen komisch aus, mit beiden Seiten auf Masse!?


Ansonsten sieht das Layout aber schon recht gut aus. Kaum 90° Winkel in den Leiterbahnen und die meisten Bauteile doch recht clever plaziert - das wird schon! :)

daviid
18.08.2010, 09:09
Ersmal danke für deine Antwort mit den Tipps :)

Hier mal der "Changelog":
- AVCC-AGND sind angeschlossen
- 2k Pullups am I2C-Bus eingefügt
- 100µF vor und nachem Spannungsregler eingefügt
- An C4 hat ne Verbindung gefehlt
- C5 wurd durch die zwei 100µF ersetzt bzw. erweitert
- C3 war auch nich angeschlossen

Das mit der Leiterbahn war nur en kleiner Fehler weil ich da nich aufem Raster geroutet hatte, is auch behoben.

Und durch den eagle deault drc is das Teil auch durch, ohne Beanstandung^^


Gruß
David

MichaF
18.08.2010, 10:18
Das sieht doch schon ganz gut aus :)

Mit den 100µF auf der 5V Seite bist du recht großzügig. Es wird höchstwahrscheinlich funktionieren, aber man sollte im Hinterkopf behalten das ein Spannungsregler mit großer Kapazitiver Last Probleme bekommen kann. Falls es dann mit der Versorgung Probleme gibt als erstes den Kondensator verkleinern. Da sollte man das Datenblatt hinzuziehen. Die Hersteller legen die Regelung mal auf mehr Kapazitive Last aus, und mal auf weniger. Auch wenn überall "7805" drauf steht.

Der Abstand zur Massefläche erscheint an einigen Stellen ziemlich klein, aber das ist auf dem Bild kaum zu erkennen. 0,4mm sollten es schon sein fürs selber ätzen. Aber wenn der DRC ein OK gibt, wirds schon passen.

Mit der Beschaltung des L293 bin ich im übrigen nicht so vertraut, da solltest du noch die Meinung eines "Fachkundigen" abwarten :)

Edit: Ich seh grad das an AVCC noch 100nF fehlen. Vorsichtige Zeitgenoßen spendieren auch dem Reset des Mega noch 100nF. Alles kein Beinbruch - geht zu 98% auch ohne, aber man sucht sich zu tode wenn dann doch mal.... ;)

daviid
18.08.2010, 10:38
Das mit dem zutode suchen stimmt allerdings, werds in meine Todo Liste aufnehmen mit AVCC, bin jetz ersmal den Kino Keller fertig aufräumen ...

Gock
18.08.2010, 19:42
Bei Applikationen mit Motoren würde ich immer zu Kondesatoren raten an Reset und VCC!
Eine andere Sache ist die, dass Du jetzt mit wenig Mühe noch Stiftleisten oä für die freien Ports, zB ADC Port vorsehen könntest, über die Du sehr einfach später Deine Schaltung erweitern kannst, falls Du das wolltest. Ein Analogspannungseingang kann nie schaden. Dann solltest Du auch einen C an AREF nach GND vorsehen.
Was mir bei der Fehlersuche immer hilft, ist, in das Layout den ersten Pin jedes ICs zu markieren. Dann zählt es sich schneller durch.
Außerdem kann es nicht schaden, der Platine einen Namen zu geben. Daran kannst Du erstens beim Belichten die Seite eindeutig zuordnen und zweitens weißt Du später wieder, mit wem Du es zu tun hast.
Ist aber alles Ansichtssache.
Gruß

daviid
18.08.2010, 21:41
Vielen dank auch für deine Hilfe, das mit den ADCs hatte ich mir überlegt, aber bei V1 noch nicht für nötig gehalten, aber wie das dann so ist bleibt dann natürliche V1 ne halbe Ewigkeit im Einsatz ...

Hab PA und Aref jetz trotzdem auf Pin Header geführt.
Auch die C's wurden eingefügt.

Das mit der Pin-Makierung stimmt, aber ich weis nich wie ich die machen soll. Vlt mach ich einfach das Pad größer.

Gruß

5Volt-Junkie
18.08.2010, 21:55
Layout hat einige Fehler.

Motortreiber hat nicht überall GND (pin4, 5). Lösungsvorschlag: Die Leiterbahn die von Pin 15 des L293 zum µC führt, zwischen Pin1 und Pin2 des L293 verlegen. Die anderen Leiterbahnen können stückchen nach unten rutschen.
R2 hängt auch in der Luft.

Gock
18.08.2010, 22:04
Was ich vergaß:
Wenn Du die Platine selber ätzen willst, kann es nicht schaden, den Isolatewert in Eagle zu erhöhen, zB auf 20mil und die Abstände aller Bahnen so groß wie möglich zueinander zu machen.
Es gibt da eine ganz gute Anleitung im Wissensbereich...;-) wenn auch für 2-seitige Platinen gedacht, hilft sie auch bei einseitigen was DRC einstellungen usw angeht.
http://www.rn-wissen.de/index.php/Platinen_doppelseitig_layouten_mit_Eagle
Gruß

daviid
18.08.2010, 22:35
@Sheff, also wenn ich mich nich völlig Irre geht liegen Pin 4-5 vom Motortreiber schon auf GND, die Massefläche Dort wird über die auf TOP geroute Bahn (Lötbrücke) wieder auf die Massefläche "ausen".

R2 hab ich auch grad gedacht der hängt in der Luft, tut er aber nich, man siehts nur ganz schlecht, der hängt an der Bahn die direkt unter ihm verläuft.

@Gock, mit Isolate bin ich jetzt grad nochmal hoch auf 0.032 Inch, aber auch 0.016 dürften noch problemlos gehen.

Im Anhang das neue Layout

Gruß
David

5Volt-Junkie
19.08.2010, 07:26
Ich dachte erst mal ich wäre verrückt ](*,)
Weil ich genau weiß dass der Treiber nicht auf Masse lag und der Widerstand in der Luft hing (unrouted).
Dann habe ich mir die Zeiten der Beiträge angeguckt. Während ich mein Beitrag geschrieben habe, hast du aktuelle Bilder gepostet.

daviid
19.08.2010, 07:29
Ahhh, hab eigentlich die ganze Zeit drauf gewartet dass das mal schief geht^^ :-b

Im Anhang nochmal die aktuellste version die ich nacher ätzen werd.

Gruß
David

5Volt-Junkie
19.08.2010, 17:22
ich glaube ich habe noch paar fehler entdeckt.
werde gleich mal posten

daviid
19.08.2010, 17:26
Soooo,

die Platine is super geworden, hat im ersten Anlauf geklappt und ist inwzischen bestückt und ich kann auf den Mega 16 auch ein Programm flashen,
ABER, mein bis jetz geschriebenes Programm funzt nicht, aber immerhin kann ich nen Pin toogeln, naja das bekomm ich heut auch noch hin und wenns bis um 2 geht ...

P.S Im Scan sieht das viel schlimmer aus als im Original^^

Gruß
David

5Volt-Junkie
19.08.2010, 17:28
Die Pins 8 und 16 von dem Treiber werden direkt von dem Akku versorgt? odr hast du da was irgendwie anders geplant was auf dem Bild nicht zu sehen ist?

Die Taster würde ich mit Pull-Ups versehen.

daviid
19.08.2010, 17:30
Jo die 8 und 16 vom Treiber kommt direkt vom Treiber.

Die Taster bekommen interne Pullups, spart 2 R's und vor allem Platz und Fummelei :)

5Volt-Junkie
19.08.2010, 17:36
Ach ok Sry. Dachte dass die Spannung für Logiclevel 5V sein muss.

daviid
19.08.2010, 23:11
@Sheff, das denkst du nicht nur du hast Recht, und ich scheise gebaut, ich hab die Akkuspannung angelegt, aber mittem Skalpell und Kupferlackdraht war das schnell behoben.

Dann hab ich aber auchnoch gemerkt dass die Enable Eingänge nicht auf die Hardware-Pwms gehen sondern auf die Pins wo beim Atmega162 die HW-PWM Pins sind.

Also auch das noch mit Kupflackdraht behoben, et voíla, das Teil fährt tatsächlich.

In V2 kommt dann aufs Hauptboard die IR Sensorik und vor allem die Möglichkeit die Drehzahl zu messen da die doch voneinander abweichen, das war mir zwar schon vornerein klar, aber mir war auch klar dass es das Board eh nur einige Wochen im Einsatz geben wird ...^^

Morgen gibts mal ein kleines Video.


Allerdings hab ich noch ein Problem, ich bräucht ne Drahtlos Verbindung vom Bot zum PC, und das geht am einfachsten mit Bluetooth.

Bei U. Radig gibts da zwar ein Dongle, ich könnt das zwar Löten, hab aber keine Lust dazu und möcht schon garnich nochmal bei Reichelt bestellen um an das benötigte Hühnerfutter dafür zu kommen.

Daher die Frage ob jemand weis obs irgendwo ein BT Modul mit 5V Pegel gibt? Oder ob evtl jemand bereit wäre mir für einen kleinen Betrag so ein Teil von U.Radig zusammenzubauen, oder mir seins überlassen könnte wenn eins übrig wäre oder so. Natürlich gibts dafür Geld, aber ich weis nicht wieviel ich da geben sollte, ich würde sagen 30€ wären glaub OK mit Material, oder evtl. bischen höher, aber vielmehr geht auchnicht, armer Schüler eben ... . Einfach per PN melden.

Gruß
David

MichaF
19.08.2010, 23:30
Mit 5V Pegeln wirst du dich bei BT wahrscheinlich schwer tun. Ich nehme an, du willst auf der Controller Seite den UART nutzen? Mit 3,3V wäre das hier eine gute, und auch finanzierbare Möglichkeit:

http://www.watterott.com/de/Serial-port-Bluetooth-Module-Master-Slave
bzw.
http://www.watterott.com/de/Bluetooth-Bee

Ein simpler Pegelwandler ist schnell dazugebastelt :)

daviid
20.08.2010, 14:06
Ok danke für die Links, das is genau das was ich gesucht hab, das mit dem Pegelwandler bau ich einfach direkt auf die nächste Version meiner Platine, die is dann auch im RN Standard Format und hat auch den RN-Standard I2C Stecker somit is das alles schön kompatibel :)

Hier noch ein Video vom ersten Fahrversuch http://vimeo.com/14290694

5Volt-Junkie
20.08.2010, 15:52
ist aber ziemlich flott unterwegs

daviid
20.08.2010, 21:40
Das war glaub die zweite Fahrstufe, die erste is wesentlich langsamer.

Aber bevor ich weitermachen brauch ich zuerst ein Bluetooth Modul und zwei Sharp GP2D120, weil es mir schlichtweg zu kompliziert is das ganze mit nur einem Sensor zu machen und den drehbar auf nem Servo zu montieren.

Oder is das doch nich so kompliziert wie ich denke.
Aber ich hab keinen HW-PWM Port mehr am Haupt µC frei, also würde ich den Sensor und den PWM über nen zweiten AVR anschliesen und den per I2C ansteuern.

5Volt-Junkie
20.08.2010, 21:59
Eigentlich sollte es nicht so schwierig sein, denn ich hatte die Idee am Anfang auch. Hatte leider Probleme es mit Bascom anzusteuern, weil meine Servos zu heiß geworden sind. Und ich hab eigentlich auch ziemlich wenig verstanden, was in dem Code im Moment abläuft, deswegen auf Arduino umgestiegen. Mit Arduino und Servo hat alles super geklappt, nur nach 20 Min. Servobetrieb, war ich von diesem Geräusch so genervt, dass ich mein SRF05 fest eingebaut habe. Die Sharps werde ich als Hilfssensoren verwenden, eigentlich nur dafür um die Schränke und Tapeten zu schonen. Außerdem gefällt mir die Spannungslinie nicht, die im Datenblatt steht.

daviid
20.08.2010, 23:13
OK das Argument is echt überzeugend. Und soviel kostet ein zweiter Sensor jetz auch nich.

Oder sollt ich lieber gleich auf Ultraschall setzen, der bietet mir schlieslich eine wesentlich einfachere Ansteuerung als das rumgerechne mit dem ADC.
Aber da bräucht ich doch dann auch zwei davon um nicht nur zu wissen ob überhaupt was im Weg des Bots steht oder?

Allerdings könnt ich mir für das Geld eines US-Sensors gleich zwei Sharp-IR Sensoren kaufen was ich schlussendlich wahrscheinlich auch machen werd glaub ich.

dannyboy1994
23.08.2010, 16:36
schönes teil geworden :-)

das mit dem servo habe ich noch nie versucht......is mir aber auch iwie zu doof.....

tipp. Man gibt für seinen kleinen ja alles ^^
die sharp sensoren sind gut aber doch recht teuer.
Kauf dir bei aldi oder lidl oder so 2 optische mäuse. Darin hast du dann jeweils einen IR seonsr und einen IR sender(sensor 3 pins sender 2 pins)
(wenn du sie von hinten anschaust ist dieser Hacken der aussieht wie ein L
GnD. Beim senosr bleibt die mitte frei.

hjier mal ein p ic wie ich das meine(nicht sonderlich profesiunel.

http://www5.pic-upload.de/23.08.10/bnsjjuwrspye.png


ach ja in diesem fall übrigens gilt: Um so heller das IR licht das auf den sensor trifft, um so niedriger die spannung.
Da kannst du ja dann ganzleicht eine abfrageroutine progen um die 2 sensoren abzufragen.
Dann vergleichen wo ist die spannung niedriger?(hier reicht der 8 bit ADC modus. als referenzspannung würde ich 3V anschließen ( über einen wiederstand und einen ca 100µF Kondensator). Dann kannst du nämlich mit 3V/256=0,01171875V schritten arbeiten. Das genügt locker. ICh habe bei meinem robi das so verwendet.

ich weis nciht ob das so deine art ist. Ich bau mir gerne solche kleinen schaltungnen auf um geld zu sparen. Den mit15 euro das stück was ich gesehen habe ist das mit den 2 mäusen eindeutig günstiger


lg
Daniel

daviid
23.08.2010, 18:01
Gute Idee, merk ich mir, evtl wie Sheff auch als Hilfssensoren, als Hauptsensor hab ich für den US-Sensor Ping))) entschieden, den gabs auch grad bei watterott und lässt sich wesentlich leichter auslesen als ein Sharp, der kommt ersmal auf nen Servo, wenn ich mal wieder bischen Geld übrig hab besorg ich noch nen zweiten so dass ich das blöde Servo getue loswerd.

Mein BT-Modul dürfte die Tage auch kommen so dass ich auch schön
bequem online debuggen kann, evtl gibts dann auch nen Bootloader damit ich gar kein Kabel mehr brauch außer zum aufladen :)
Hab ich übrigens wie vorgschlagen für das BT-Bee entschieden das Pin kompatibel zum ZigBee is, so kann ich falls ichs mal brauchen würd auch bequem auf ZigBee umsteigen was ja auchnicht viel teurer ist.

Gruß
David

5Volt-Junkie
23.08.2010, 22:08
Kauf dir bei aldi oder lidl oder so 2 optische mäuse.
Ja das mag eine billigere Lösung sein. Jedoch vertraue ich den Sharpsensoren mehr, da sie (zwar nicht alle) die Faktoren ausfiltern, die das Signal beeinflüssen. Aber wenn es um Platz gehen würde, dann würde ich die Lösung mit den Mäusen bevorzugen. O:)


...für den US-Sensor Ping))) entschieden...
Kosten die nicht auch so um die 20 €uronen?
Srf05 kostet ca. 20-25€.
guck mal bei www.robotikhardware.de

Das was Ping))) macht, kann man mit SRF05 auch mach, man braucht nur ein Pin auf GND zu setzen und andere 3 Pins (VCC, GND, Signal) rauszuführen. Vermutlich würde ein Quellcode in Bascom/C/Arduino C usw. 1:1 aussehen. O:)

Und sonst... viel Erfolg \:D/

daviid
23.08.2010, 22:19
Kosten die nicht auch so um die 20 €uronen?
Doch, 26 und paar zerquetsche um genau zu sein, aber das war mir dann auch egal, weil die paar € die ich zwischen Ping))) und Srf05 sparen würd würd bei robotikhardware schon wieder der Versand kosten ...

Die Auswertung ist zum Srf-05 wohl sehr ähnlich, 5µS auf high ziehen und dann messen, das ganze am besten aufem INT.

Danke für die Glückwünsche, werd ich bestimmt brauchen^^

daviid
26.08.2010, 08:36
So ich bins mal wieder, und zwar ist das Paket mit dem Sensor und dem BT-Modul angekommen, allerdings hat das BT Modul ein Rastermaß von 2mm ..., da muss ich erstmal passende Buchsenleisten auftreiben.

Kennt dazu vlt. jmd. einen Elektronikladen in Zürich?

Gestern Abend wollte ich dann den US-Sensor auswerten, allerdings klappt das nicht so richtig ...
Hier gibts nen Thread dazu: https://www.roboternetz.de/phpBB2/viewtopic.php?p=516405

Gruß