Un
piloto automático?
Volver
![]() |
Bien...,
la idea es recojer los datos que envia el GPS por el protocolo NMEA y
leerlos via serie desde un micro Basic Stamp2. La movida es añadirle un servo que controle el timón o un actuador para corregir mecanicamente el rumbo.
|
HARDWARE:
![]() |
![]() |
|
|
![]() |
![]() |
|
|
![]() |
![]() |
|
|
SOFTWARE:
'***************************************************************************
'** DEBUG NMEA 2 - Muestra el desvio de rumbo en DEBUG -
'**
'** SOFT:
'** Sacamos la info de trac de la sentencia $GPRMC que envia el GPS
'** Sacamos la info de Rumbo a WP de la sentencia $GPRMB que envia el GPS
'** Configuramos la entrada, 16572 es N81 a 4800 baud
'**
'** HARD:
'** PIN 0 = LED (Con una Resistencia de 22K)
'** PIN 2 = LED (Con una Resistencia de 22K)
'** PIN 15 = TX del GPSIII (Con una Resistencia de 22K)
'** Vss = GND del GPSIII
'****************************************************************************
tr1 var word 'Rumbo actual
wp1 var word 'Rumbo hacia el WP destino
low 0 'ENCIENDO LED en 0
OUTPUT 2 'Led amarillo en P2, para monitorizar cuando se recibe el rumbo
DEBUG CR,"Ahi vamos!"
Bucle:
DEBUG CR
serin 15\2, 16572, [wait("GPRMC,"),wait(","),wait(","),wait(","),wait(","),wait(","),
wait(","),wait(","),dec tr1]
serin 15, 16572, [wait("GPRMB,"),wait(","),wait(","),wait(","),wait(","),wait(","),
wait(","),wait(","),wait(","),wait(","),wait(","),
dec wp1]
DEBUG CR,"Rumbo = ",DEC tr1
DEBUG CR,"wp1 = ",DEC wp1
IF wp1 < tr1 THEN Derecha 'A la izquierda
DEBUG CR,"wp1 > tr1 "
DEBUG CR,"Derecha ",DEC tr1-wp1,"º"
goto Bucle
Derecha: 'A la Derecha
DEBUG CR,"wp1 < tr1 "
DEBUG CR,"Izquierda ",DEC tr1-wp1,"º"
goto Bucle
![]() |
Saludos,
Bruno Barangé.
|