PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : RC-UNIMOG aufmotzen - mein erstes Projekt



Cairol
31.07.2007, 01:07
Erstmal ein "Hallo!" an alle!
Ich lese hier schon seit etwa 2 Jahren mit und hab mich in dieser Zeit im Forum und in der Wiki rauf- und runtergearbeitet.
Anlässlich meines ersten Projekts möchte ich gerne eure Tipps und Meinungen dazu hören.

Zu meiner Person:
Meine elektronischen Kenntnisse hab ich mir durch das Studium und durch eigenes Interesse erarbeitet.
Ich weiß wie man lötet und habe Anfänger- und Fortgeschrittenen-Kenntnisse in C/C++/C#,JAVA und VisualBasic.
Mechanische Arbeiten sind zwar nicht mein Lieblingsgebiet, aber ganz ungeschickt bin ich auch nicht.
Mit Mikrocontrollern habe ich allerdings - bis auf die angelesene Theorie - noch keine Erfahrung.

Das soll sich in den kommenden Wochen aber ändern...

Mein erstes Projekt:
Ich möchte in die MC-Programmierung einsteigen, indem ich ein altes RC-Fahrzeug der Elektronik entledige und stattdessen ein RN-Board einbaue.
Welches Board das sein soll, dürft ihr mir gleich erzählen.

Folgende Funktionen soll das RN-Board steuern können:
- Antrieb: 1 Motor der mit PWM angesteuert werden soll
- Lenkung: 1 Elektromegnet (da macht PWM wohl keinen Sinn, der muss nur umgepolt und ganz ausgeschaltet werden können)
- Beleuchtung: 2 Hochleistungsdioden als Frontscheinwerfer die ein/ausgeschaltet werden können sollen (toll, gleich 3 Verben am Stück ;))
Die Dinger haben je 100 mA Stromaufnahme - also ganz schöne Brocken.
- 1 oder mehrere IR-Leuchtdioden für die Kamera-Nachtsicht
- 1 Mini-Servo (zum Schwenken einer kleinen Funk-Kamera)
- 2-3 Sensoren wie Lichtsensor und Bewegungsmelder können später dazukommen. Allerdings sind keine IR- oder US-Sensoren geplant.
Die Kiste soll rein ferngesteuert sein.

Als Stromversorgung werden wohl 8 AA-Zellen mit 2.000 mAh oder mehr zum Einsatz kommen. Da schau ich dann je nach Gesamt-Stromverbrauch was nötig ist.
Ich hätte dann also 9,6 V.
Das Board braucht ja etwa 7V und liefert Stabilisierte 5V,
der Motor und der E-Magnet sind auf 4,8V ausgelegt,
der Mini-Servo ist ebenfalls mit 4,8V zufrieden,
Die Hochleistungsdioden haben 3,5V Nominalspannung,
die Funk-Kamera braucht etwa 8V.
Bis auf die Kamera sollte also alles problemlos vom Board versorgt werden können.

Um das ganze noch interessanter zu machen, soll der UNIMOG die Steuersignale per Funk vom PC empfangen.

Meine Arbeitsabfolge wäre:
1. Dioden zum leuchten bringen
2. E-Magnet mit beiden Polungen ansteuern
3. Antriebsmotor regeln mit PWM
4. Servo ansteuern
5. PC-Steuerung einrichten

Wenn ich das richtig verstanden habe, wird das RN-Funk an die RS232-Schnittstelle vom PC angeschlossen und man kann dan Daten senden/empfangen als ob der Bot (oder eher das "RoV"!?) per Kabel verbundn wäre.
Wenn das so ist, müsste ich das ja schon von Beginn an so machen können.
Sonst muss halt das Kabel ne Weile herhalten.

Und jetzt seid ihr gefragt: Welches RN-Board soll ich dafür nehmen? :-k
Das RN-Control scheint mir dafür etwas überdimensioniert, sowohl vom Controller als auch von der übrigen Ausstattung her.
Ich dachte an das RN-MiniControl oder das RN-Mega8+.
Vor allem das Mega8+ imponiert mir, weil es schon einen Steckplatz für das EasyRadio hat. Dann müsste ich statt 2 nur 1 RN-Funk kaufen.
Allerdings bleibt bestimmt nicht viel Platz im 8k-Flash übrig wenn da noch die Sprach-Bibliothek rein muss. Das mach mir etwas Sorgen.
Beim herkömmlichen PC-Programmieren sind 8 KB nämlich schnell rerreicht...

Bei der "Port"-Geschichte bin ich noch nicht ganz durchgestiegen.
Wieviel Ports brauche ich, wenn man die Sensoren mal außen vor lässt?
Wie viele Ports sind denn beim Mega8 noch frei? Laut Anleitung scheinen alle schon vorbelegt zu sein mit internen Funktionen.

Und noch eine Frage zur MC-Programmierung: C oder BASCOM? Wonach entscheidet ihr das? Ist das nur ne "Glaubensfrage" oder gibt es bestimmte Vor- und Nachteile die man abwägen muss?
Mein Kenntnisstand ist in beiden Sprachen etwa gleich, wobei ich aber nicht genau weiß inwieweit sich BASCOM von BASIC oder VB unterscheidet.

Mir ist klar, dass das Ganze für den Anfang sicher schon "anspruchsvoll" ist, aber ich möchte das ohne Hektik Schritt-für-Schritt verwirklichen.

Die Oberfläche für die PC-Steuerung habe ich - soweit es ohne konkrete MC-Programmierung geht - schon vorbereitet. (in VB.NET 2005 programmiert)
Die LIVE-Verbindung zwischen 2,4 Ghz Funk-Kamera und der Steuerungs-Oberfläche funktioniert schon.

Bilder vom UNIMOG und der VB-Oberfläche reiche ich bei Gelegenheit nach.

So, das war jetzt ne menge Text, aber jetzt seid ihr dafür im Bilde.
Ich bin gespannt auf eure Kommentare... :)

ehenkes
03.08.2007, 21:40
Das RN-Control scheint mir dafür etwas überdimensioniert
RN-MiniControl und auch RN-Mega8 sind eher als Zusatzboard konzipiert. Ich würde mich beim µC heutzutage nicht mehr auf 8KB beschränken, sondern wegen des Speichers einen ATmega32 wählen, d.h. RN-Control.
Für die Funkverbindung ist RN-Funk mit EasyRadio-Funkmodul geeignet.


C oder BASCOM?Beides ist geeignet. Ich würde an Deiner Stelle die Sprache nehmen, die Du besser beherrschst. Wenn das gleich ist, nimm C (Basissprache für C++, Java, C#), da die AVR dafür optimiert wurden. Für Java gibt es NanoVM (http://www.mikrocontroller.net/articles/NanoVM). Dafür sind 8KB auf jeden Fall dauerhaft zu klein.


Bei der "Port"-Geschichte bin ich noch nicht ganz durchgestiegen.Die alternativen Funktionen der einzelnen Portpins findest Du im jeweiligen Datenblatt genau beschrieben. Am besten schaust Du Dir mal einige Vorbilder (ASURO: ATmega8, c't-Bot u. RP6: ATmega32, Nibo: ATmega128) bezüglich Verschaltung an. Der Trend geht dahin, mehrere Prozessoren via I2C zu verknüpfen (RP6, Nibo). Das ist die flexibelste Variante, allerdings komplex zu programmieren.

Cairol
06.08.2007, 17:25
Danke für die Tipps!
Wenn ich das RN-Control nehme, hab ich tatsächlich noch Reserven für spätere Ideen. Das kommt im Endeffekt wohl auch billiger als irgendwann doch noch ein anderes Board zu kaufen weil der Speicherplatz ausgeht.

Als Sprache hab ich zwar - wie gesagt - keinen großen Kenntnis-Unterschied von (reinem) C zu Basic, aber C finde ich doch etwas strukturierter und die Syntax gefällt mir besser.

Noch ne allgemeine Frage zur Programmierung:
Ich bin jemand der seinen Code i.d.R. recht ausführlich kommentiert, damit ich auch nach Monaten (oder Jahren) weiß, was mir bei dieser oder jener Funktion durch den Sinn gegangen ist.
Meine Variabeln haben auch meistens sprechende und damit oft etwas längere Namen.
Wirken sich viele Kommentare und lange Namen auch auf die spätere Größe der HEX-File aus die auf den µC geladen wird?
Oder ist da schon alles unwichtige vom Compiler rausgefiltert worden?

Ich kommentiere zwar nicht jede Zeile, aber auf 100 Zeilen können schon etwa 10 Zeilen an Kommentaren kommen.

ehenkes
06.08.2007, 17:53
Wirken sich viele Kommentare und lange Namen auch auf die spätere Größe der HEX-File aus die auf den µC geladen wird? Oder ist da schon alles unwichtige vom Compiler rausgefiltert worden? Ich kommentiere zwar nicht jede Zeile, aber auf 100 Zeilen können schon etwa 10 Zeilen an Kommentaren kommen.Nein, Variablennamen oder Kommentare spielen keine Rolle. Das geht via Assembler komplett verloren. Also schreibe Kommentare soviele Du brauchst. Es lohnt sich vor allem, den Zweck und die Hintergründe zu kommentieren.

Cairol
16.08.2007, 16:18
Nachdem mein RN-Control noch "im Lieferverzug" ist, hab ich mich mal in EAGLE eingearbeitet und um den Schaltplan gekümmert.
Erst wollte ich alles modular aufbauen, aber ich hab die Ansteuerung jetzt doch auf eine Platine ausgelegt.

Schaut euch bitte mal den Plan durch und gebt mir bescheid falls es noch wo hakt.

Besonders das "Freilaufdioden"-Netz und der Mess-Shunt "R3" hat mir einiges an Kopfzerbrechen bereitet. Ich hoffe das es jetzt OK ist.

Die Reedrelais haben 15 mA Anzugsstrom und 10mA Haltestrom -das müsste also der AVR verkraften. Dioden sind schon integriert.

Der Motor ist übrigens schon mit Kondensatoren entstört, aber ich hab an der Anschlussklemme beim Plan schluss gemacht, da die C's ja nicht auf der Platine sind.
Dann noch eine Frage wegen den Freilaufdioden:
Ich hab die Dioden ja auf der Platine und nicht "direkt" am Motor bzw. dem E-Magneten.
Es werden später ca. 5-10 cm Kabel dazwischen liegen. Ist das noch tolerierbar, oder kanns dann Ärger geben mit dem Abfangen der Induktionsspannung?

Dann bin ich jua mal gespannt was eurer scharfer Blick noch erkennt... :shock:

Cairol
18.09.2007, 16:28
OK, kleines Update:
Da der Antriebsmotor von meinem RC-UNIMOG leider zwischen 450 mA im Leerlauf, 600 - 1500 mA bei normalem Betrieb und 2,6A bei Blockade zieht, kann ich das RN-Control mit dem L293D nicht dafür verwenden. (oder nur mit einem separaten Motortreiber über I²C)
Da mir das RN-Control ohnehin zu teuer ist um es dauerhaft auf dem Auto zu lassen, baue ich also statt einer Ansteuerschaltung für das RN-C gleich ein komplettes Steuerboard mit einem Mega8 und L298.
Der Schaltplan ist soweit fertig. Bei der Beschaltung der Schnittstellen habe ich versucht mich an den RN-Standard zu halten.

Ich würde euch jetzt gerne bitten mal drüberzuschauen, ob ich was wichtiges übersehen habe.
Vorwiderstände für die Scheinwerfer "LIGHTS" und den LDR sind absichtlich nicht auf dem Board untergebracht.

Gesamtstatus des Projekts:
- Schaltplan fertig
- Platinen-Layout fertig
- 90% aller benötigten Bauteile vorhanden, Rest bestellt
- Steuer-Software in BASCOM zu 95% fertig und größtenteils getestet
- Programmoberfläche in VB2005 zur Steuerung des UNIMOGS per RS232 zu 98% fertig und soweit getestet
- z.Zt. noch ohne RN-Funk


Gruß, Cairol

Andun
18.09.2007, 16:54
Moin

Also meinem 1 minütigen Blick hat den Schaltplan stand gehalten. :D Was ich damit sagen will: Sieht gut aus, auch wenn ich nicht alles 100% angeschaut habe. :D

Sieht aber nett aus und bin gespannt auf das Ergebnis deines Projektes.

Andun

Cairol
18.09.2007, 22:21
Ganz ehrlich - ich auch! :)

Seit über einem Monat arbeite ich jetzt an der Schaltung und parallel dazu am Boarddesign.
Das Design ist auch ne Sache für sich, denn ich benutze dafür eine Steifenraster-Platine. Die Ätz-Geschichte ist mir irgendwie zu aufwändig mit dem nötigen Zubehör, Entwickler, Ätzbad ect.
Obwohl ich mittlerweile der Meinung bin, das es vom Zeitaufwand her eher länger dauert mit Streifenraster und Drähten zu planen als alles direkt auf die Bauteile zuzuschneiden und zu ätzen.

Da ich sowas außerdem zum ersten mal mache, hab ich zu allen unklaren Punkten das Forum durchwühlt und die Schaltung nach und nach angepasst.
Manche Dinge wie z.B. die Freilaufdioden hab ich auch nicht auf Anhieb richtig gemacht.
Erstmal 20 Stück N4004er-Dioden bestellt und später nochmal 10 Stück damit ich einen Vorrat hab.
Dann hab ich zufällig mitbekommen das die Schaltgeschwindigkeit auch ne Rolle spielt - und hab jetzt 30 Dioden rumliegen von denen ich zumindest für dieses Projekt nicht eine einzige brauche...
Aber besser ich merke es VOR dem Einbau als später an defekten IC's.

In den nächsten Tagen gehts dann ans Eingemachte - das Bestücken und Löten der Platine.
Ich hab das letzte mal vor etwa 7 Jahren in der 10. Klasse der Realschule im Technik-Unterricht auf Platinen gelötet. Deshalb hab ich kürzlich ein paar alte Widerstände und LED's auf ner kleinen Platine test-gelötet - mit verheerendem Ergebnis!
Von den ersten 20 Lötstellen waren 18 völlig unbrauchbar. :oops: Von den nächsten 10 waren nach verbesserter "Taktik" immerhin 6 in Ordnung.
Bevor ich mit der Steuerplatine anfange mach ich aber lieber nochmal ein paar Probe-Lötungen.
Kalte Lötstellen nachzubessern macht nämlich erstaunlich wenig Spaß...

Cairol
21.10.2007, 15:17
Update: (diesmal mit Bildern)

Aktueller Stand

- Steuer-Platine komplett fertiggestellt
- Steuersoftware auf AVR zu 99% fertig
- Programmoberfläche auf PC zu 99% fertig
- Alle Steuerfunktionen per RS232 ansprechbar
- Schutz vor zu hohen/niedrigen Steuerwerten (max. PWM, Servo-Winkel ect.)
- Telemetriedaten-Übertragung eingerichtet
- Funk-Kamera mit Servo montiert und kalibriert

- RN-Funk noch nicht eingebunden
- Motorstrommessung noch ohne Funktion
- Scheinwerfer noch ohne Funkton

In den Angehängten Bilden sieht man zum einen die Programmoberfläche der Steuer-Software auf dem PC.
Auf dem 2. Bild ist die Steuerplatine zu sehen.
Das letze Bild zeigt das "Opfer".
Die Funk-Kamera und Schwenk-Servo sind schon montiert, aber noch nicht fest angeschlossen.
Unter der Haube sieht es aber noch sehr unordentlich aus. Ich hab das Chassis nur für das Foto schnell zusammengesteckt.

Als nächstes steht die "Hochzeit" an, also Steuerung und Auto werden fest miteinander verbunden.
Dann ist Feintuning angesagt.
Lichtautomatik und Motorstromessung kommen erst zum Schluss dran.
(deshalb bitte nicht über die Anzeige "20 Lux" in der Obefläche wundern)

T.J.
21.10.2007, 20:35
Ich bin begeistert! Respekt =D>

Reeper
21.10.2007, 20:51
Sehr schönes Projekt, nun sieht man auch mal den Bot ;-)

Ist das die Kamera von Pollin?
Wie ist die Übertragung während der Fahrt so?
Will auch so eine für mein Projekt benutzen und fraqe mich daher nach der Übertragungsqualität bei Erschütterungen.

Gruß Stefan

Cairol
21.10.2007, 21:41
Nein, die Kamera ist von eBay. Typ heißt glaub ich "208C".
Aber man muss aufpassen - es gibt diese Art in 2 Versionen: Eine mit und eine ohne IR-Dioden.
Das erkennt man dran, dass die IR-Dioden transparent sind.
Meine hat keine, aber das hab ich erst gemerkt als ich die Cam bei Dunkelheit getestet habe. In den Borungen sind schwarze Plastik-Dummies eingesetzt. :-s
IR-Empfindlich ist sie aber trozdem. Hat wohl keinen IR-Filter.

Bei Erschütterungen gibt es leichte Bildstörungen (Streifen), aber es ist nicht so schlimm das man nix mehr erkennt.
Es gibt aber sicher auch Kameras die da noch weniger empfindlich sind.
Da muss dir aber jemand anders weiterhelfen der schon andere Cams verwendet hat.
Zur Reichweite kann ich im Freifeld noch nichs sagen. Mit der Standard-Antenne vom Empfänger waren im Haus nach der 2. Backsteinwand schon starke Störungen im Bild.
Nachdem ich eine Antenne mit etwa doppeltem Gewinn (5.5 statt 2.1 dBi) anmontiert habe, sind 2-3 Wände ohne nennenswerte Störungen möglich.
Die Reichweite der Kamera wird auch der begrenzende Faktor sein. Das 433 MHz-"EasyRadio" für die Datenkommmunikation hat ja mit Wänden weniger Probleme - wegen der tieferen Frequenz.

Reeper
21.10.2007, 21:45
Danke und viel Erfolg, halt uns auf dem Laufenden :P

MezzoMix
25.10.2007, 19:47
Hallo,

erstmal respekt! Sehr schönes Projekt, das mir endlich den Anstoß gegeben hat selber sowas zu machen.
Kannst du vielleicht noch Bilder von dem Innenleben des Unimogs machen und online stellen? Mich würde mal interessieren wie das Mainboard auf Streifenraster-Platinen aussieht, da ich hier auch noch einen haufen von den Platinen rumfliegen habe. Hat das gut geklappt oder war Platznot?

grüße
jojo

Cairol
28.10.2007, 19:55
Öhm, Bilder vom Steurboard sind in meinem Beitrag vom 21.10.07. (2. Bild im Post)

Ich hab eben die erste Probefahrt mit provisorisch angebrachter Steuer-Platine und RN-Funk hinter mir.
Es hat schon ganz ordentlich funktioniert.
Es gibt fast keine Übertragungsfehler - und das auf fast dem kompletten Grundstück. Egal ob im Haus, auf der Straße davor oder im Garten.
Bin ziemlich begeistert vom EasyRadio!
Einziges Problem ist jetzt noch, dass der E-Magnet für die Lenkung zu schwach ist bzw. die beiden Permanent-Magnete am Gegenstück. (Immerhi8n schon über 15 Jahre alt)
Ich muss die erst noch gegen neue NeFeB-Magnete austauschen.

Ein großartiges "Innenleben" gibt's nicht wirklich, da ich ja einfach den Antriebs-Motor und den E-Magnet für die Lenkung an mein Board angeschlossen hab.
OK, im Führerhaus ist ein Mini-Servo für die Kamera eingebaut und ein Lichtsensor kommt noch in die Front-Scheibe.
Die Scheinwerfer sind noch nicht verbaut weil mir eine der beiden Hochleistungsdioden hopps gegangen ist. (muss erst Ersatz bestellen)

Platznot gab es nicht wirklich. Ich hab erst den Schaltplan mit Eagle erstellt und dann mit "Lochmaster" die Platine geplant.
Als Maximalmaß hab ich die Ladefläche vom UNIMOG genommen.
Die Platine ist 140x100 mm groß geworden.
Wenn ich sie geätzt hätte, wäre sie vermutlich nur etwa halb so groß ausgefallen, aber davor schrecke ich immernoch zurück...

Wichtig bei Streifenraster ist halt, dass man wahnsinnig aufpasst wenn man die Leiterbahn-Unterbrechungen macht und natürlich auch beim Platzieren der Bauteile. (Reihen / Pins zählen damit alles da landet woh's hin soll)
Ich hab mich da mehrmals ein paar Pins vertan und musste 3 Stellen später nachbessern bzw. neue Verbindungen ziehen ect.
Sogar ein Komplett-Kurzschluss war dabei - inklusive verbrannter Finger. ("Hmmm....hier riechts aber nach Ampére...! Mal den Spannungsregler befühlen....http://www.world-of-smilies.com/wos_schockiert/Wow1.gif")

Cairol
12.11.2007, 21:28
OK, wir nähern uns der Zielgeraden:

Der Lichtsensor ist eingebaut und die Lichtautomatik (SW) funktioniert ganz ordentlich.
Wenn der Wagen nicht gerade direkt vor einer weißen Wand steht die das Licht der zugeschalteten Scheinwerfer reflektiert, kann man sich darauf Verlassen.
Das könnte man auch lösen indem man wie im echten Auto 2 Sensoren einsetzt - einen nach vorne und einen nach hinten gerichtet. Aber so wie es jetzt funktioniert reicht mir das völlig.
Die ADC-Werte werden jetzt auch in Lux umgerechnet.
Da ich einen LDR und keine lineare Photodiode verwende, muss ich mit einer Case-Abfrage mehrere Wertebereiche mit unterschiedlichen Faktoren zur Umrechnung verwenden, aber da das auf dem PC passiert, ist der Speicherplatz der dafür draufgeht ja ziemich egal.

Die Scheinwerfer sind jetzt natürlich auch verbaut.
Sie dürften etwas höher am Fahrzeug sitzen, aber das konnte ich mir ja nicht aussuchen...
Leider leuchtet die später bestellte Ersatz-LED (eine ist mir den Hitzetot gestorben) obwohl es der identische Typ ist, etwas wniger stark und hat einen Grünstich.
Aber damit kann ich erstmal leben.

Die Lenkung mit diesem ominösen E-Magnet/Permanent-Magnet-System hab ich nicht mehr hinbekommen.
Deshalb ist jetzt ein Mini-Servo an der Stelle verbaut der die Lenkung ansteuert.
Der Vorteil davon: Jetzt kann man die Räder schon im Stand einschlagen und damit engere Kurven fahren.

Einziges Problem sind jetzt noch die recht starken Störungen im Kamerabild durch die PWM-Ansteuerung vom Antrieb und auch die Servos wenn sie gerade stellen.
Hat da jemand einen Tipp wie man das reduzieren könnte?
Ich hab gesehen, dass der Motor nur mit einem Kondensator zwischen + und - - Pol entstört ist. Da könnte ich vielleicht noch die anderen beiden C's anlöten die man sonst dranhat.
Ich denke aber eher, dass die Störungen direkt von der PWM verursacht werden und nicht vom Motor selbst.
Und was kann ich mit den Servos machen?

Die Motorstrom-Überwachung ist jetzt noch offen.
Bei nächster Gelegenheit versuch ich das mit dem Komparator vom Mega8 und wenn das zu unpraktisch ist, löte ich nachträglich noch ein RC-Glied an den ADC-Eingang an dem der Shunt hängt.
Denn eigentlich möchte ich den Motorstrom permanent anzeigen lassen und nicht nur per Interrupt auf Überstrom reagieren.

Im nächsten Update kommt dann die Schluss-Präsentation.
Vielleicht mach ich dann auch ein kleines Video.

Gruß,

Cairol