Forum: Mikrocontroller und Digitale Elektronik Lego Mindstorm Ultraschallsensor mit Lego Drehmotor


von Martin M. (martin1235)


Angehängte Dateien:

Lesenswert?

Hi,

Ich benutze den PIC18F2XJ53.
http://ww1.microchip.com/downloads/en/DeviceDoc/39964B.pdf


Ich versuche gerade die Daten eines LegoMindstorm Ultraschallsensors 
einzulesen.
Will einen LegoMindstorm Drehmotor mithilfe dieses Sensors ansteuern.
Und zwar, wenn ich meine Hand vor dem Sensor halte soll sich der Motor 
schneller drehn als wenn ich die Hand nicht davor halte.

Die Schaltung ist soweit aufgebaut, ich scheitere momentan an der 
Programmierung im MPLAB.

Pinbelegung: http://www.stzedn.de/isl/nxt/hardware


Digitale I/O Pin Verbindung zum ARM7 (I2C Clock/RS485 A)
- ist auf PIN 25 am microcontroller angeschlossen.

Digitale I/O Pin Verbindung zum ARM7 (I2C Data/RS485 B)
- ist auf PIN 26 am microcontroller angeschlossen.

Wie geh ich da jetz vor ?
Bin Anfänger

von Wusel D. (stefanfrings_de)


Lesenswert?

So gefragt wirst Du keine hilfreiche Antwort bekommen. Überlege Dir, was 
Du brauchst, besorge es Dir. Und wenn dann irgendwelche Details nicht 
klappen, dann berichte, was Du versucht hast und woran es scheitert.

von Mr. X (Gast)


Lesenswert?

ma ma schrieb:
> Ich versuche gerade die Daten eines LegoMindstorm Ultraschallsensors
> einzulesen.

In welcher Form liegen die Daten denn vor?

> Wie geh ich da jetz vor ?
> Bin Anfänger

Einfache Übungen zum Einlesen von Tastenzuständen durchspielen.

von Stefan H. (stefan_h16)


Lesenswert?

Ich weiß nicht ob ich das richtig verstanden habe:
Hast du jetzt deinen uC an den Ultraschallsensor angeschlossen oder an 
den NXT Baustein ? Und was ist das mit dem Motor ?

Der Ultraschallsensor von Lego Mindstorms NXT ist etwas tricky da er 
einen kleinen Firmwarebug hat. Das I2C Interface ist in Software 
implementiert, und hat braucht einen extra SCL Takt zwischen Schreiben 
der Adresse und Auslesen des Wertes.
Also mit 9600Hz an Adresse 0x02 und Commando 0x42 (auslesen der 
entfernung)
Dann noch einmal mit dem SCL pin High-Low-High.
Dann kann man die Daten einlesen.

von Martin M. (martin1235)


Angehängte Dateien:

Lesenswert?

Also die Schaltung habe ich, ich komm nur nicht in der Programmierung 
mir C# weiter. Ich benutze keinen NXT Baustein.

Den Motor (Aktor1) will ich nun mit dem Sensor ansteuern. Ich weiß jetz 
aber nicht was ich überhaupt für Daten vom Sensor bekomme und wie ich 
diese einlesen kann.

von Stefan H. (stefan_h16)


Lesenswert?

Martin M. schrieb:
> Also die Schaltung habe ich, ich komm nur nicht in der Programmierung
> mir C# weiter. Ich benutze keinen NXT Baustein.
>
> Den Motor (Aktor1) will ich nun mit dem Sensor ansteuern. Ich weiß jetz
> aber nicht was ich überhaupt für Daten vom Sensor bekomme und wie ich
> diese einlesen kann.

Könntest du bitte deutlicher werden, was du womit und welchem Ziel 
ansteuern willst. Da fehlen alle Details. Der Sensor kann keinen Aktor 
ansteuern. Dein uC kann den Sensor auslesen, und dann vielleicht den 
Aktor ansteuern.

Vielleicht verstehe ich auch dein Ansinnen falsch, aber vielleicht 
solltest du nochmal mit einem ausführlichen PIC Grundlagentutorial 
beginnen. Nachdem du das durchgearbeitet hast, kannst du nochmal das I2C 
Kapitel ansehen.
Zur Motoransteuerung ist wohl insbesondere das Kapitel PWM interessant.
Anschließend kannst du die kompletten Datenblätter (Schaltpläne und
Dokumentation für das NXT System) von der Lego Mindstorms Website laden 
und durchlesen. Fehlen da nicht viele Kondensatoren im Schaltplan ? Kann 
man den uC überhaupt mit 5V betreiben ? Der Spannungsteiler an den 
Tachoausgängen des Motors ist auch unnötig, da diese Greycode auf 5V 
Level und der verlinkte uC 5V tolerant ist ausgeben.

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
Noch kein Account? Hier anmelden.