Sie sind auf Seite 1von 45

Ansteuerung eines Robotergreifers eines

CORTEX-M3 Boards

Steve Romaric Tchuinte

Hochschule Mannheim University of Applied Sciences


Gliederung

Projektbeschreibung und Präsentation der Komponenten

(1) Evaluierungsplatine : “LandTiger Board”


(2) Ultraschallsensor HC-SR04
(3) Servomotor (Servo)
(4) Sub-Micro Gripper Kit

Implementation der Komponenten

(1) Ultraschallsensor HC-SR04


(2) Servomotor (Servo)
(3) Sub-Micro Gripper Kit

Schwierigkeiten

Steve Romaric Tchuinte 13.08.2021 2


Steve Romaric Tchuinte 13.08.2021 3
LPC1768 Development Board

Evaluierungsplatine

Steve Romaric Tchuinte 13.08.2021 4


LPC1768 Development Board (1)

NXP LPC1768 ARM development board

Second generation ARM Cortex-M3 microcontroller

A high-performance, low-power 32-bit microprocessor


designed for embedded system applications

Clock frequency up to 100 MHz

512KB on-chip Flash program memory, supports in-system


programming (ISP) and In Application Programming (IAP)

64KB SRAM for high-performance CPU access through the


instruction bus, system bus, data bus access

AHB multi-layer matrix with 8-channel general-purpose


DMA controller (GPDMA)

Supports SSP, UART, I2C, I2S, ADC, DAC, Timer, PWM,


GPIO, can be used for memory-to-memory transfer

Steve Romaric Tchuinte 13.08.2021 5


LPC1768 Development Board (1)

Steve Romaric Tchuinte 13.08.2021 6


Ultraschallsensor HC-SR04

Entfernungsmessen

Steve Romaric Tchuinte 13.08.2021 7


Ultraschallsensor HC-SR04

Power Supply(VCC) : +5V DC

Quiescent Current : <2mA

Working Current : 15mA

Effectual Angle : <15°

Ranging Distance : 2cm – 5 m

: 4.8 – Resolution : 0.3 cm

Measuring Angle : <15°

Dimension : 45mm x 20mm x 15mm

Steve Romaric Tchuinte 13.08.2021 8


Betriebsart (1)

Vcc = +5VDC

Trigger input of Sensor,


Output of Microcontroller

Echo output of Sensor,


Input of Microcontroller

GND = GND

Steve Romaric Tchuinte 13.08.2021 9


Betriebsart (2)

Vcc = +5VDC

Trigger input of Sensor,


Output of Microcontroller

Echo output of Sensor,


Input of Microcontroller

GND = GND

Steve Romaric Tchuinte 13.08.2021 10


Berechnung der Entfernung

Abstand = Geschwindigkeit x Zeit

? ?
Geschwindigkeit : Bewegungsgeschwindigkeit einer Schallwelle
(ungefähr 340 m/sec = 34 cm/sec im 25 Grad).

Zeit : Dauer des Echo pulses


(Zeit zwischen fallende und steigende Flanke des Trigger).

Steve Romaric Tchuinte 13.08.2021 11


Servomotor HS-55

Ansteuerung des Greifers

Steve Romaric Tchuinte 13.08.2021 12


Servomotor HS-55

Motor Type : 3 Pole Ferrite

Control System : +Pulse Width Control 1500usec

Required Pulse : 3-5 Volt Peak to Peak

Operating Speed : 0.17sec/60 degrees

Operating Speed : 0.17sec/60 degrees

Operating Voltage : 4.8 – 6.0 Volt

Operating Angle : 40 Deg. one side pulse travelling


400usec 360 Modifiable : Yes

Operating Temperature Range : -20 to +60 Degree C

Current Drain (4.8 V) : 5.4mA/idle and 150mA


Size : 0.89“ x 0.45“ x 0.94“
22.8 x 11.6 x 24mm
Current Drain (6.0 V) : 5.5mA/idle and 180mA

Steve Romaric Tchuinte 13.08.2021 13


Sub-Micro Gripper Kit

Greifen ein Objekt

Steve Romaric Tchuinte 13.08.2021 14


Sub-micro Gripper Kit

Servo Spline Compatibity : 15T Sub-Micro(A1) Spline

Servo Size Compatibity : Hitec HS-55 and Hs-5055MG

Steve Romaric Tchuinte 13.08.2021 15


Sub-Micro Gripper Kit & Servo (1)

+ =
Steve Romaric Tchuinte 13.08.2021 16
Sub-Micro Gripper Kit & Servo (2)

Max PWM Signal Range (Standard) : 615 – 2390 usec

Pulse Amplitude : 3-5 Volt Peak to Peak

Direction w/Increasing PWM Signal : Clockwise

Feedback Style : 5KΩ

Steve Romaric Tchuinte 13.08.2021 17


Steve Romaric Tchuinte 13.08.2021 18
Ultraschallsensor HC-SR04

Nested Vectored Interrupt Controller (NVIC)

Interrupt für die Meldungen (Oder nur Implementation)

Interrupt für das Trigger Impuls

Interrupt für die Zeit zwischen steigende und fallende


Flanke am Triggerspin oder Capture.

GLCD vs PINs Konflict

Pulse-width mit dem Oszilloskope prüfen

Standardsunsicherheit bei der Messungen

Steve Romaric Tchuinte 13.08.2021 19


Berechnung der Zeit

Die Triggerung wird jede 20ms ausgeführt.

Wir arbeiten mit einer Frequenz von 12Mhz :

20ms = 1 / 0.02 s = 50Hz

12Mhz / 50Hz = 240000.

In der Intialisation der Interruption speichern wir die “Warte-Werte”


im Register TxMR1

Alternative Lösung wird auch “ CAPTURE – INTERRUPT ”

Aber muss man nicht unendlich warten !!!

Steve Romaric Tchuinte 13.08.2021 20


Die Meldungen

Pin Error

→ Wenn das Sensor nocht nicht eingesteckt ist.

→ Wenn das Sensor im falschen Pin eingesteckt ist

No Obstacle

→ Wenn keine Reflexion gibt nach eine bestimmte Zeit

Steve Romaric Tchuinte 13.08.2021 21


Interrupt für die Meldungen : Pin Error

Pin Error

→ Wenn das Sensor nocht nicht eingesteckt ist.

→ Wenn das Sensor im falschen Pin eingesteckt ist

Steve Romaric Tchuinte 13.08.2021 22


Interrupt für die Meldungen : Pin Error

Pin Error

→ Wenn das Sensor nocht nicht


eingesteckt ist.

→ Wenn das Sensor im falschen Pin


eingesteckt ist

Steve Romaric Tchuinte 13.08.2021 23


Interrupt für die Meldungen : NO OBSTACLE (1)

No Obstacle

→ Wenn es keine Reflexion gibt nach eine bestimmte Zeit

→ Timer 0 Interrupt für das zählen von Zeit nach der Triggerung.

→ Wird aufgerufen wenn es kein Objekt gibt

Steve Romaric Tchuinte 13.08.2021 24


Interrupt für die Meldungen : NO OBSTACLE (2)

No Obstacle

→ Wenn es keine Reflexion gibt nach eine bestimmte Zeit

→ Timer 0 Interrupt für das zählen von Zeit nach der Triggerung.

→ Wird aufgerufen wenn es kein Objekt gibt

Steve Romaric Tchuinte 13.08.2021 25


Service Routine für die Flanken (oder für das Trigger)

→ Timer 0 Interrupt für das Trigger Impuls

Steve Romaric Tchuinte 13.08.2021 26


LCD vs PINs Konflict

 Wählen Sie nicht die vom GLCD verwendeten Pins

 „Interrupts“ deaktivieren, bevor etwas auf dem GLCD angezeigt wird

 Reaktivierung Unterbrechungen („Interrupts“ ) nach der Anzeige

Steve Romaric Tchuinte 13.08.2021 27


Service Routine für die Flanken (oder für das Trigger)

Steve Romaric Tchuinte 13.08.2021 28


Anschlüsse von Sensor mit Mikroprozessor

 GND -> mit Gnd im Mikrokontroller

 Trigger -> mit Port 0.6 (Ausgang von Mikrokontroller )

 Echo -> mit Port 0.5 (Eingang von Mikrokontroller)

 VCC -> mit Versorgungsspanung im Mikrokontroller

Steve Romaric Tchuinte 13.08.2021 29


Sub-Micro Gripper Kit & Servo

Max PWM Signal Range (Standard) : 615 – 2390 usec

Pulse Amplitude : 3-5 Volt Peak to Peak

Direction w/Increasing PWM Signal : Clockwise

Feedback Style : 5KΩ

Steve Romaric Tchuinte 13.08.2021 30


Sub-Micro Gripper Kit & Servo

Die an den Servomotor gesendete Impulsfolge bestimmt die


Winkelposition des Stopps der Ausgangsachse

Die Periode ist normalerweise 20 ms.

Wenn der Impuls 1,5 ms beträgt, ist die Position "neutral",


der Servo stoppt in der Mittelstellung (Abbildung A)

Bei einem Impuls von weniger als 1,5 ms dreht sich der
Motor in Richtung der (Figur B), bis das durch Vergleich
mit dem Wert des internen Potentiometers festgelegte
"Gleichgewicht" erreicht ist.
Wenn dieser Impuls höher wird, ändert der Motor seine
Richtung und stoppt nur, indem er das gleiche
Gleichgewicht findet .... (Figur C)

Drehgeschwindigkeit ändert sich nicht.


Um eine langsamere scheinbare Bewegung zu erhalten,
ist es notwendig, kleine Rotationen zu programmieren
und Verzögerungen zwischen jeder Reihenfolge einzufügen

Steve Romaric Tchuinte 13.08.2021 31


Flussdiagramm (1)

Initialisierung
• Init Port
• Init LCD
• Init Timer

• Init Timer Interrupt


• Init GPIO Interrupt

Steve Romaric Tchuinte 13.08.2021 32


Flussdiagramm (2)

• Start in die while (1)


• Triggern mit Timer1 in TIMER1_IRQHandler

nein Warte auf steigende


Flanke in Echopin

ja

Steve Romaric Tchuinte 13.08.2021 33


Flussdiagramm (3)

• Start Timer1 in TIMER1_IRQHandler

nein Warte auf fallende


Flanke in Echopin

ja

• Stop Timer1 in TIMER1_IRQHandler


• Wert von T1TC speichern und in integer umwandeln
mit der Funktion get_integer_val()
Steve Romaric Tchuinte 13.08.2021 34
Flussdiagramm (4)

• Abstand berechnen in distance_value()


• Display Result

nein

Abstand = 5 cm ?

ja

• Objekt greifen
• Nach 10 sec das Objekt wieder lassen

Steve Romaric Tchuinte 13.08.2021 35


Flussdiagramm für Objekt über 4 Meter

• Start in die while (1)


• Triggern mit Timer1

ja Warte auf steigende


flanke in Echopin

nein

nein
200 ms?

ja

Steve Romaric Tchuinte 13.08.2021 36


Flussdiagramm falls kein Objekt vorhanden ist

Display „NO OBSTACLE“

Steve Romaric Tchuinte 13.08.2021 37


Überprüfung mit der Oszilloskope (1)

 Single Shot Modus

 Im folgenden ist eine einzelne Messung zu sehen.


 Kanal 2 ist das Triggersignal.
 Kanal 1 der Ausgang.
 Die Laufzeit des Ultraschall-Burst beträgt bei dieser Messung etwa 600µs (200µs/Div).
 Die angezeigte Zeit von 456µs setzt sich aus dem 250µs Delay nach Triggerung und
dem anschließenden 200µs Burst zusammen.

Steve Romaric Tchuinte 13.08.2021 38


Überprüfung mit der Oszilloskope (2)

 Kontinuierliche Messung

 Es besteht die Möglichkeit eine permanente Messung durchzuführen.


 Da das Modul auf die fallende Flanke des Triggereingangs reagiert ist es nicht nötig ein
kurzes Triggersignal zu erzeugen.
 Es genügt ein Rechtecksignal mit einer Frequenz kleiner 50Hz (20mS Intervall) an den
Triggereingang anzulegen um eine dauernde Messung durchzuführen.
 Auf Kanal 2 liegt wieder der Triggereingang, das Rechtecksignal hat eine Frequenz von
25Hz die Amplitude beträgt 5V (Tastkopf 1:10).

Steve Romaric Tchuinte 13.08.2021 39


Fehler bei der Messungen

Durchnitt

Steve Romaric Tchuinte 13.08.2021 40


Das fertiges Produkt

Steve Romaric Tchuinte 13.08.2021 41


Steve Romaric Tchuinte 13.08.2021 42
Schwierigkeiten (1)

 Konflikt vom Sensorspins mit dem GLCD Pins

Pins des GLCD nie verwenden, wenn wir mit dem GLCD arbeiten wollen

 Keine Änderungen des Abstands auf dem GLCD

Prüfen mit der Oszilloskope ob das Sensor kaputt ist


(Ob wir noch Flanken haben)

Trigger Pin ist „INPUT“ vom Sensor aber „OUTPUT“ vom Microkontroller

Echo Pin ist „OUTPUT“ vom Sensor aber „INPUT“ vom Microkontroller

Steve Romaric Tchuinte 13.08.2021 43


Schwierigkeiten (2)

 Konflikt vom Sensorspins mit dem GLCD Pins

Pins des GLCD nie verwenden (wenn wir mit dem GLCD arbeiten wollen)

 Timer „Interrupts“ Konflikt mit der Anzeige auf dem GLCD.

„Interrupts“ deaktivieren, bevor etwas auf dem GLCD angezeigt wird

Reaktivierung der Unterbrechungen („Interrupts“ ) nach der Anzeige

Steve Romaric Tchuinte 13.08.2021 44


Steve Romaric Tchuinte 13.08.2021 45

Das könnte Ihnen auch gefallen