RoboPro : Radar

ftComputing : Programme für die fischertechnik-Interfaces und -konstruktionskästen
  
ftComputing.de
Home
Back
Sitemap
Index
Links
Impressum
Mail
 

Scan der Umgebung mit ROBO TX und Robo Pro

Drehkranz angetrieben durch Motor an M1 mit Endtaster an I1 und Impulstaster an C1. UltraschallSensor (ersatzweise auch Photowiderstand) an I8, sowie rote Lampe an O3

Programm RadarTurm :
Der Turm oszilliert zwischen Position 0 und 200. Dabei wird alle 20 Impulse der am Ultraschallsensor gemessene Abstandswert in cm ausgegeben.

Programm RadarTurmZwei :
Wie Eins. Hinzugekommen ist die rote Lampe zur Anzeige von Distanzwerten kleiner 16 cm. Die Messung wurde in die Unterprogramme DistR und DistL verlegt.

Programm RadarTurmDrei :
Wie Zwei. Hier aber in 1er-Schritten. Die Messung wird jetzt in einem Unterprogramm erledigt.

Programm RadarTurmVier :
Flexiblere Lösung durch Ausprogrammierung der Schleifen anstelle der Verwendung des Schleifenbausteins. Außerdem wird der Turmmotor zwischen den Messungen nicht mehr abgestellt, läuft dann flüssiger

Programm RadarTurmFuenf
Dauerbetrieb unter Nutzung der Funktionen vom EncoderMotor (aber weiterhin mit dem MiniMotor) Download-Modus, Anzeige 
auf dem TX Display

Programm RadarTurmSechs
Wie TurmVier. Hinzugekommen ist eine Bewegung des Ultraschallsensors um die waagerechte Achse (Motor an M2, Lampe an O5)

Vergleiche auch mit den Python und VB2008 Lösungen

Programm RadarTurm, der einfachste Fall :

 

Anfahren des Endtasters : Home-Position
Anzeige des aktuellen Abstandes in cm

 

Feststellen des Abstandswertes

Drehen um 20 Impulse nach rechts




Schleife 10mal Messen


Feststellen des Abstandswertes

Drehen um 20 Impulse nach links





Schleife 10mal Messen

Anmerkungen : 
Alles in einem Programm. Will man laufend messen, kann man die Schleife auf 200 ändern und ein einfaches Warten auf Impusdurchgang einbauen.

Program RadarTurmZwei :

Aufbau wie oben


Home-Position wie gehabt.
Jetzt Anzeige Position und Abstand




Messung in den Unterprogrammen DistR(echtsDrehen)
und DistL in 10er-Schleife. Die jeweilige Startposition
wird in pos vorgegeben.
Grund für die Unterprogramme : Übersichtlichkeit

Unterprogramm zum Messen des aktuellen Abstandes und zur Anzeige von Position und Abstand. Schalten rote Lampe


Abstand messen und Anzeigen

Position anzeigen


Wenn Abstand kleiner 16 dann rote Lampe an, 
sonst aus



Drehen um 20 Impulse nach rechts
bei DistL nach links






Aktualisieren der Position um 20 Impulse
bei DistL wird subtrhiert.

Anmerkungen : 
- Aufbau wie Eins. Die Messung und Positionierung wurde in Unterprogramme verlagert. 

Programm RadarTurmDrei

Aufbau wie oben, aber nur ein - parametrisiertes Unterprogramm. Hier wird laufen (in 1er-Schritten gemessen.







Position = 0

Aufruf Dist mit -8 : RechtsDrehen mit FullSpeed
Position Aufaddieren.

 

200er-Schleife

Position = 200

Aufruf Dist mit 8 : LinksDrehen mit FullSpeed
Position Aubtrahieren.


200er-Schleife

 

Unterprogramm zum Messen des aktuellen Abstandes wie oben, aber für beide Richtungen.







Hier ist der Grenzwert für die rote Lampe = 12





Motor in Richtung und Speed schalten.


einen Impuls abwarten




Position aktualisieren.

Anmerkungen : 
Die Nutzung nur eines Unterprogrammes reduziert den Code, macht ihn hier auch schon unübersichtlicher. Die Parameterübergabe für Geschwindigkeits- und Richtungswerte ist eine recht unübersichtliche Angelegenheit. Hier eine Kompromisslösung mit Level 3.

Programm RadarTurmVier : Die Luxus-Version

Aufbau wie Drei, aber DreiwegeAbfrage statt Schleifenbaustein, Turmmotor wird nach einer Messung nicht mehr abgestellt - so ordentlich muß man nicht sein.

Anfahren Home, mit anschließenden Umschalten auf Rechtslauf




Schleife für den Rechtslauf unter Verwendung des Unterprogramms Dist. Beginn bei Position 0, Ende 200
Schrittweite 10




Umschalten Motor auf Linkslauf

Schleife links mit Beginn bei 80, Ende bei 200, Schrittweite 
-10 um Dist den Linkslauf mittzuteilen.

Vorteil der Lösung : Die Positionswerte werden nur einmal im Hauptprogramm als Konstanten festgelegt, und lassen so zentral leicht ändern.
Unterprogramm Dist.


Anzeige aktueller Abstandswert und Position in Impulsen ab Home.



Abfrage auf zu große Nähe (Abstand < 16 cm), ggf. rote Lampe.




Auswerten des Vorzeichens des inc Parameters (die RoboPro Funktion abs() ist leider noch nicht implementiert). Hier wird die Obergrenzen des Loops über die Schrittweite einheitlich positiv gesetzt. Der Loop ist erforderlich, weil der Baustein Impulszählen leider keinen Eingang dafür hat.




Schleife über die Impulse in Schrittweite (der Anzeige)


Achtung : Eingang C1D und C1Z unterscheiden sich auch beim gleichen Impulstaster D liefert 8 und Z nur 4 Impulse pro Umdrehung des Impulsrades (unabhängig vom eingestellten Symbol).

Aufaddieren der aktuellen Position.

Programm RadarTurmFuenf : Die Patentlösung

Hier Dauerbetrieb im "EncoderStyle" mit Anzeige
auf dem Display des TX-Controllers. Download
Betrieb sinnvoll möglich.

Anfahren Home-Position


Rechtsrunde 111 Impulse

Im eigenen Thread : Schalten der roten Lampe



Linksrunde 111 Impulse wieder in Richtung Home

Anmerkung : 
Anzeige Count her wie her ab null aufsteigend, da nur der Zähler angezeigt wird, nicht die Position. 
Der eingesetzte C1Z-Counter zählt nur 4 Impulse pro Impulsradumdrehung, deswegen sind die 111-Runden etwas länger als die 200er.

Modifiziertes Modell : jetzt kann der UlraschallSensor auch nicken.

Das Hauptprogramm entspricht RadarturmVier. Hinzugekommen ist die Anzeige der Höhe, entfallen ist das Schalten des TurmMotors (jetzt über Parameter -8 rechts und 8 links in Dist).

Neu ist Unterprogramm AufAb : Bei Aufruf linksdrehend zu Endtaster und dann in 7er-Schritten wieder nach vorne neigen. Begonnen wird mit der mit der Anzeige aller Werte und dem Schalten der roten Lampe dann erst kommt das Neigen des Sensors.

Unterprogramm Dist ist kleiner geworden :
Die Anzeigen der Werte und die rote Lampe wurden nach AufAb verlagert. Dafür gleich am Anfang ein Aufruf AufAb.

Das Neigen in AufAb ist nicht so komfortabel wie das TurmDrehen (Grund : Faulheit). Die Methode Turm ein Increment und dann AufAb kann natürlich auch auf den Kopf gestellt werden : Turm einmal über den ganzen Weg drehen, dann UltraschallSensor einen Schritt bewegen - wieder TurmDrehen ...

Programm RadarTurmSechs : AufAb des Ultraschallsensors bei jeder Position des Turms.

 

 

Download 

Sources enthalten in RoboRadarTX.ZIP

Weitere Radartürme sind auf radar.htm und radarex.htm zu bewundern.

Stand : 05.02.2010