Go Down

Topic: KI für Carrera Bahn (Read 8 times) previous topic - next topic

bimini

Jan 11, 2012, 04:39 pm Last Edit: Jan 14, 2012, 01:17 pm by bimini Reason: 1
Hallo

Ich bin Schüler eines Technischen Gymnasiums und bei uns steht demnächst eine größere Projektarbeit an. Bei der Themenauswahl sind wir sehr frei und da ich ich schon länger mit einem Arduino Liebäugle nehme ich das jetzt als Anlass mich damit zu beschäftigen. In Assembler (8051) und Java habe ich ein gutes Grundwissen. Auch mit der Architektur von Mikrocontrollern kenne ich mich ganz gut aus und ich kann mit Lötkolben und Oszilloskop umgehen und habe sowohl ein Analoges als auch ein digitales Speicheroszilloskop zur Verfügung.

Meine Projektidee ist es eine selbstfahrendes Auto für eine Carerra-Bahn zu bauen. Realisiert soll das ganze mit einem 3-Achsen Accelerometer Modul (ADXL330). Sobald das Auto in die Kurve fährt soll der Arduino die Geschwindigkeit soweit herunter regeln (PWM) das die Zentrifugalkraft einen bestimmten wert nicht übersteigt und das Auto nicht abfliegt. Da der Sensor ja erst anschlägt wenn das Auto bereits in der Kurve ist denke ich darüber nach für kurze zeit den Motor umzupolen um die Geschwindigkeit schnell genug zu reduzieren. Anfänglich soll sich nur der Sensor im Fahrzeug selbst befinden und der Arduino in der Mitte der Strecke und über eine "Angel" mit dem Auto verbunden sein. Falls es Zeitlich noch reicht soll später alles ins Auto verfrachtet werden und dann eine Nano, Mini oder sowas bit.ly/6uo86g zum Einsatz kommen. Evtl. besteht auch die möglichkeit eine Platine zu fräsen. Dies will ich Anfangs noch nicht machen da dann die Stromversorgung über die Schienen erfolgen muss und das ganze möglichst kompakt sein sollte.

Bezüglich der Bestellung und Realisierung sind noch ein paar Fragen aufgetaucht.

1: Um erstmal die Realisierung zu testen hab ich gedacht das ich anfangs erst mal ein Logging Programm entwickel um die wirkenden G Kräfte aufzuzeichnen. Brauch ich um die Messwerte zu speichern ein SD Karten Modul oder reicht erst mal der Ram auf dem µC. Es reicht ja nur die Y-Achse aufzuzeichnen.

2: Das PWM Signal kann ich ja ganz einfach über eine Transitor-Schaltung verstärken. Frequenzmäßig dürften ja einige 100 Hz reichen.

3: Da der Sensor eine VCC von max. 3,6 V  hat und der Sensor die Daten von 0 - VCC ausgibt. Müßte man diese Signale noch verstärken um den kompletten Analogbereich des Arduinos nutzen zu können oder kann man den Bereich der 1024 schritte auch verlagern (ich denke nicht)?

4: Um das Ganze späte möglichst kompakt zu machen will ich einen Mini oder Nano verwenden (Anfangs einen Uno)  da die aber recht teuer sind wollte ich fragen ob ein "DFRduino Pro Mini 8Mhz" nehmen kann da der nur 1/4 des Original Mini kostet. Kann ich den mit der Platine des Uno's programmieren (mit dem Offiziellen Mini soll das ja angeblich gehen) oder brauch ich da noch ein Programmiermodul.






Udo Klein

1) Du brauchst doch vermutlich eh nur Maximum und Minimum und wenn's hochkommt noch die Varianz. Wieso sollte dazu der Speicher nicht reichen?

2) Das ist keine Frage

3) Wieso nimmst Du nicht eine Arduino Variante die mit 3V auskommt? Die darfst Du auch mit 3.6V betreiben --> keine Verstärkung nötig und Du kommst mit einer einzigen Versorgungsspannung aus.

4) 8MHz Varianten kommen mit 3V aus ;)   Du hattest Eingangs gesagt Du kennst Dich mit Controllern gut aus, wieso musst Du das noch fragen?
Check out my experiments http://blog.blinkenlight.net

bimini


1) Du brauchst doch vermutlich eh nur Maximum und Minimum und wenn's hochkommt noch die Varianz. Wieso sollte dazu der Speicher nicht reichen?

Ja stimmt eigentlich. Wie kann ich den Internen Speicher denn auslesen? Hab mir die IDE noch nicht angeschaut. Werde mich die nächsten Tage mal damit Auseinandersetzten. Bei dem 8051 hab ich mir solceh werte entweder auf dem Display ausgeben lassen oder über den Debugger in den Speicher reingeschaut.
Quote

2) Das ist keine Frage

Gut wollte mich nur absichern.
Quote

3) Wieso nimmst Du nicht eine Arduino Variante die mit 3V auskommt? Die darfst Du auch mit 3.6V betreiben --> keine Verstärkung nötig und Du kommst mit einer einzigen Versorgungsspannung aus.

Das mit der 3V Variante ist bisschen schwierig da ja früher oder später die Komplette Elektronik über die Bahn versorgt werden soll und auf der Bahn 14,6V anliegen. Um in das empfohlene Spektrum (12V) des Uno's zu kommen muss ich also nur einen kleine Widerstand nehmen.
Quote

4) 8MHz Varianten kommen mit 3V aus ;)   Du hattest Eingangs gesagt Du kennst Dich mit Controllern gut aus, wieso musst Du das noch fragen?

Ich hab jetzt gerade gesehen das es auch eine 16MHz+5V variante gibt. Diese wäre ist imho besser geeignet. Obwohl ich auch da auf 8V runter muss. Die frage ist halt ob Dieser Controller auch von dem USB Umsetzter des Uno's programmiert werden kann. Wenn ich dich richtig verstanden hab ist das einzige Hindernis beim 8MHz+3,3V die Spannung. Stimmt das so.
Mit dem satz das ich mich recht gut mit Mikrocontrollern auskenne meinte ich das ich das Funktionsprinzip und den Internen Aufbau im allgemeinem verstanden habe. Mit den Feinheiten einzelner Typen kenn ich mich noch nicht aus.

Danke für die Antworten.

Udo Klein

Dann glaub mir, es ist IMMER einfacher nur mit einer Spannung zu arbeiten. Spannungsregler gibt es als fertige Bausteine. 2 Kondensatoren dran und fertig. Kritischer ist, daß Du vermutlich parallel zu einem Motor arbeitest der vieleicht durch Vibrationen auch noch öfters von der Stromversorgung kurz abgeschnitten wird --> vermutlich starke Störungen auf der Spannungsversorgung. Das kann ein ziemliche ätzendes Problem werden.
Ich würde eine kleine 8 MHz Variante nehmen und per extra Schnittstellenkabel programmieren. Das macht die ganze Sache kleiner und leichter.
Check out my experiments http://blog.blinkenlight.net

Udo Klein

Nachtrag: wenn Du einen "nackten" Chip verwenden willst, warum nicht gleich mit 8MHz RC Oszillator arbeiten und den Quarz einfach weglassen. Bei der Modellautosteuerung wird es wohl kauf drauf ankommen ob der Takt mal ein Prozent daneben liegt.
Check out my experiments http://blog.blinkenlight.net

Go Up