Herramientas de usuario

Herramientas del sitio


Esta traducción es más antigua que la página original y podría estar obsoleta. Ver lo que ha cambiado.
Traducciones de esta página:
es
es:start

FIXME Esta página no está completamente traducida, aún. Por favor, contribuye a su traducción.
(Elimina este párrafo una vez la traducción esté completa)

AgOpenGPS Dokuwiki

AgOpenGPS

* Información importante *

Este software es únicamente para debate y aprendizaje de la Agricultura de Precisión, sus algoritmos y sus técnicas. No debe ser usado en ningún medio físico, y ha sido diseñado para ser utilizado como simulador solamente.

Cualquier uso de AgOpenGPS en algún medio físico no está permitido ni recomendado de ninguna de las formas, ni en carretera ni fuera de ella.

Este sistema es inseguro, y no posee ningún sistema de seguridad integrado.

AgOpenGPS es simplemente un ejemplo de código C#, con propósitos de demostraciones únicamente, y no debe ser usado para ninguna otra finalidad.

Software para mapeado en la Agricultura de Precisión y control de secciones.

Este software lee caracteres NMEA con el propósito de grabar informaciones de la posición instantánea para servicios agrícolas. Posee hasta 8 secciones para el control de tramos. También es capaz de mostrar el ángulo delta, así como la distancia a una recta de referencia.

Se incluye una aplicación y diversas carpetas de recursos, junto con UDP, TCP/IP y un simulador serial NMEA.

Software y Dispositivos

AgOpenGPS se ejecuta en Windows.

La resolución mínima para ejecutar AgOpenGPS es de 1366 x 768 píxeles.

Es preferida una resolución de pantalla de 1920 x 1080 o mayor. Algunos dispositivos recomendados pueden ser el Acer Transformer 300, Acer Switch 12, Microsoft Surface, o bien de la marca Samsung. Se recomienda una pantalla táctil para una mayor eficiencia.

Se debe tener precaución a la hora de adquirir un dispositivo, ya que debe tener varias conexiones USB tanto para la carga del mismo como para la conexión del hardware externo (Arguino, módulo GPS, etc)

Para descargar el software, entrar en el siguiente enlace: https://github.com/farmerbriantee

  • AgOpenGPS: última versión disponible
  • Click en el botón verde (Clone or download) –> Download zip
  • Descomprimir

La carpeta descomprimida contiene:

  • AgRate: código del control de secciones para Arduino
  • Application: agopengps.exe es el software ejecutable
  • AutoSteer: código del guiado automático para Arduino
  • BNO055_Cal: código de calibración del IMU BNO055, para Arduino
  • Docs: documentos e imágenes de ayuda
  • SourceCode: código fuente

Funciones de botones

Funciones de teclas

Simulador:

  • L - Mantener
  • K - Aumentar velocidad
  • J - Detenerse
  • H - Reducir velocidad
  • B - Girar a la izquierda
  • M - Girar a la derecha
  • N - Posición media

En funcionamiento:

  • F - Nueva tarea
  • A - Autoguiado
  • D - Secciones Automáticas encendidas o apagadas

Primera prueba

Abrir agopgengps.exe (Está localizado en la carpeta Application y tiene un pequeño icono azul).

El simulador GPS simulará señales GPS NMEA, y se abrirá automáticamente. Observando en la caja de información del GPS, se puede contemplar la latitud (53.XXX), la longitud (-111.XXX) y PPS fix.

Si se desea conectar un receptor GPS, entrar en Config →Ports y escoger en el apartado de GPS el puerto COM correspondiente, y ajustar la tasa de actualización (si fuese necesario).

Configuración del Hardware

Receptor GPS

Abrir: Options/USB Ports

Seleccionar el puerto COM correspondiente y el baudrate.

Presionar Connect.


Opciones para GPS RTK (datos aproximados):

Sistemas L1

Nombre Precio
uBlox M8T or M8P 75 $
NS-HP-BD 100$
NV08C-RTK-A
Emlid Reach M+ 265 $
Emlid Reach RS+ 799 $

Sistemas L1 / L2

Nombre Precio
Swiftnav Piksi Multi 600 $
ComNavTech K501G >1000 $
Tersus GNSS BX305/BX306/BX316 1000-1800 $
North Surveying RTKITE 2200$
Sxblue

Ejemplo para la construcción de un módulo GPS

Fue construido como propuso spunky en: ordering list page 35 picture page 37 https://www.landtreff.de/einfache-parallelfahrhilfe-fur-dein-android-gerat-t5428-510.html

Hardware utilizado:

  • Antena: TW2710 magnética, 5m de cable, el conector es compatible con el módulo GPS.(Digikey, 90,-$)
  • UBlox M8T. (CSG-shop.com product 205, 75,-$)
  • Módulo Bluetooth HC-06 o HC-05. (4 PIN, 5,-€)
  • Batería 3,7V 800mAh. (Ebay 9,-€)
  • Cargador para batería. (Ebay 7,-€)
  • Módulo USB a TTL 232 UART PL2303HX. (ebay 2,-€) → Para programar el módulo Bluetooth.
  • Cables …

MONTAJE Y PUESTA EN MARCHA: Para programar el módulo Bluetooth, conectaremos el módulo USB-UART (¡RX y TX deben de estar cruzados!). Quizá se tenga que instalar un driver para el módulo USB-UART, pero fácilmente se puede encontrar en Internet. Como terminal de programación se puede utilizar TERMITE. El comando AT=BAUD8 modifica la velocidad del puerto serie, 115200 Baudios. El módulo debe contestar esto en TERMITE. Al comando AT normalmente no contesta. ATENCIÓN: si la velocidad del P. Serie es cambiada, deberá de modificarse también en TERMITE. Esto es muy importante para no dañar el módulo. El comando AT=NAMESETGPS modifica el nombre con el que se identifica el módulo Bluetooth (cambiará a “GPS module”). El módulo GPS se conecta vía USB para programarlo con U-Center (software descargable de la web de U-Blox). Modificar únicamente velocidad del puerto serie a 115200 Baudios, y para EUROPA, añadir Galileo y DGPS Egnos (señal SBAS). Guardar cambios. Más tarde se podrá utilizar U-Center vía puerto virtual COM Bluetooth.

SOldar al módulo GPS 4 cables, o bien un conector de 4 pines de 1.27 mm (preferible) a GND/Vcc/RX/TX. Este módulo requiere de 3.3 V como mínimo para su funcionamiento, de manera que los 3.7 V de la batería son suficientes. El módulo cargador se conectará a la batería, y a los módulos GPS y Bluetooth. Entre la batería y el cargador es recomendable insertar un fusible (de 500mA). Conectar el cargador al USB para alimentar a los módulos, y cargar la batería. Para la comunicación de los móds. Bluetooth y GPS, conectar RX y TX cruzados. Normalmente, UART está activado en U-Blox, por tanto no se requiere hacer nada, y los datos enviados a AgOpenGPS son perfectamente compatibles. Si se requiere RTK, el módulo puede procesarlo (no se ha intentado hasta el momento).

Los precios son sólo una estimación. Además, los módulos poseen más funcionalidades.

Arduino

Se requiere una placa Arduino UNO o Nano.

Ir a https://www.arduino.cc/ y descargar el IDE de Arduino. Se necesitan los drivers USB para la correcta conexión del Arduino. Pueden ser localizados perfectamente en internet en el caso de la placa Arduino no sea original.

Ir a la carpeta de AgOpenGPS→Autosteer→autosteer.ino (abrir con el IDE de Arduino)

Seleccionar el puerto COM donde está localizado la placa Arduino, y subir el código al mismo. (Si esta parte no está muy clara, puedes buscar algún ejemplo en Internet, o bien utilizar el que indica a continuación)


Tutorial en https://www.arduino.cc/en/Guide/ArduinoUno o https://www.youtube.com/watch?time_continue=11&v=d8_xXNcGYgo


Esquema de conexiones para el Arduino.

Sensor MEMS DOG2-Esquema de pines.

Ejemplo del control de secciones

W. Eder desarrolló un circuito para el control de secciones basado en el Arduino Nano. Servirá para la mayoría de requerimientos. Soporta hasta 7 secciones y 1 regulación de caudal automática, interruptores de secciones, interruptor MANUAL/AUTOMÁTICO, interruptor principal de ON/OFF, y un interruptor de modificación de presión y/o caudal. Se puede modificar fácilmente el código para utilizar 2 regulaciones de caudal automáticas, pero utilizando solo 5 secciones.

Este desarrollo es solo para pruebas. No existe ningún tipo de garantía de que funcione correctamente. Construcción bajo su propio riesgo.

Circuito del Control de Secciones

PCB del circuito de Control de Secciones

ag_rate_2_2_overlay.pdf

ag_rate_2_2_bottom.pdf

ag_rate_2_2_compo.pdf

Cuando estén listas las pruebas y la programación, se publicará la lista de piezas para la placa PCB.

Lista de elementos necesarios

Sensor de ángulo de giro: Delphi ER10031 Se puede utilizar un sensor de posición lineal, o bien utilizar uno integrado en el vehículo (en el caso de que se disponga de ello).

Controlador PWM del motor: Cytron Technologies MD30C

Inclinómetro: TE Connectivity G-NSDOG2-001 (+/- 25 grados)

Sensor de cabeceo (dirección) BNO055 o Tinkerforge Brickv2 IMU

Arduino: Arduino UNO o Nano

GPS: De elección personal, teniendo en cuenta que como mínimo debe enviar datos GGA. Se puede conectar vía USB, Bluetooth, TCP o UDP.

Caja de montaje: No existe una clara elección aún, pero se puede usar una de medidas 200x120x75 mm, y debe incluir el Arduino, el controlador del motor y el receptor GPS (si fuera el caso) en su interior, y en el exterior sensor de inclinación.

Alimentar el Arduino desde el puerto USB del ordenador, o bien desde una salida de 5 V regulados; alimentar el inclinómetro desde el Arduino con 5 V; alimentar el controlador de motor Cytron desde una fuente de 12 V constante, como puede ser la batería del vehículo.

Inclinación y cabeceo (IMU)

Si no se dispone de sensores de inclinación y/o cabeceo, modificar el siguiente código:

 //   if there is no gyro installed send 9999
 //  Serial.print(9999); //heading in degrees * 16
    Serial.print(IMU.euler.head); //heading in degrees * 16
    Serial.print(",");

    //  if no roll is installed, send 9999
    //Serial.print(9999); //roll in degrees * 16
    Serial.print((int)XeRoll); //roll in degrees * 16
    Serial.print(",");

a:

 //   if there is no gyro installed send 9999
   Serial.print(9999); //heading in degrees * 16
   // Serial.print(IMU.euler.head); //heading in degrees * 16
    Serial.print(",");

    // if no roll is installed, send 9999
    Serial.print(9999); //roll in degrees * 16
   // Serial.print((int)XeRoll); //roll in degrees * 16
    Serial.print(",");

Existen diversos modos de utilizar el cabeceo o heading:

  • BNO055 - Usar el código del Arduino, y conectar el módulo BNO055 atendiendo al diagrama de conexiones que se ofrece.
  • TinkerForge IMU Brick V2 - Utilizar el USB del dispositivo (ordenador, tablet, etc). Se requerirá brickd y brickviewer (para UID).
  • Doble antena GNSS - Enviará datos atendiendo al código NMEA, mensaje GNHDT. Se necesita la instalación de detección de movimiento.
  • PAOGI - Solución alternativa para los dispositivos de EMLID (Reach).

Y para la inclinación o roll:

  • MEMS DOG2 conectado al Arduino (Mejor opción hasta el momento).
  • IMU Brick.
  • PAOGI

Steering Sensor

you need something like:

https://www.ebay.at/itm/Suspension-Ride-Height-Sensor-Turn-Rate-Sensor-Delphi-fits-08-11-Cadillac-CTS-/112418146972?clk_rvr_id=1375528686940&rmvSB=true

or

https://www.rockauto.com/en/catalog/cadillac,2009,cts,3.6l+v6,1442758,suspension,ride+height+sensor,17137

you can find such sensors in every car for height controll of lights or for suspension. most of them have 3-6 connectors.

or something like a linear potentiometer running at 5 v.

Most of these Sensor have connectors like this:

1: + 2: - 4: Signal

connect it like in the jpg to 5V, GND, and AO

open options/usb ports and select com port of arduino and press connect.

click and open steer wizard

if you have a value in raw data - feel lucky

follow instructions on that screen.

Steering Motor

you need:

http://www.robotshop.com/ca/en/cytron-30a-5-30v-single-brushed-dc-motor-driver.html

as motor controller

and a motor with ~300rpm like

https://www.phidgets.com/?tier=3&catid=19&pcid=16&prodid=299

(motor is 24 v but runs very well at 12 v)

Hydraulic Steering

You will need to know the type of hydraulic circuit your tractor uses. It is usually either Open Centre or Closed Centre Load Sensing (CCLS). you can tell by checking the Orbitrol unit at the front of the steering column. If it has 4 pipes, it is OC; else if 5 pipes, it is CCLS. The fifth pipe carries a signal to the pump whenever there is demand for flow. Some tractors pressurise the pipe, others depressurise it when demanding flow. You will need to know which style your machine uses. A workshop manual for your tractor is useful for these purposes.

If your tractor is OC, you will need a valve like this:

https://www.savery.co.uk/products/view/sp10-47c-spool-4-way-3-position-closed-center

If your tractor is CCLS, you will need a valve like this:

https://www.savery.co.uk/products/view/sp10-57c-spool-5-way-3-position

you will also need a dual motor driver board like this:

https://www.ebay.co.uk/itm/30A-Dual-Motor-Driver-Module-board-H-bridge-DC-MOSFET-IRF3205-3-36V-10A-Peak/291990037975?hash=item43fbf665d7:g:Z-YAAOSwjDZYa2ED

You will then need to tee into the Pressure (P), Tank return (T), A, B (to the steering ram) and LS ports of the orbitrol, and connect them to ports 5, 3, 4, 2 and 1 of the valve respectively. Swap 5 and 3 if the LS line is supposed to depressurise when flow is demanded.

Alternatively, you can use the Power Beyond functionality of your tractor (if fitted), or a spool valve set to constant pumping.

you will need to modify the arduino code to output two channels. Code changes for the latest AOG release will be released shortly.

When setting up the PIDs, be aware that the steering can be very sharp and fast with hydraulic. A good starting point is: P 200, I 20, D 30, O 1.

Software Setup

Steering Control

Sensor Reading for Roll and Steering Sensor Raw Data

  • Roll to left is positive.
  • Steering to the right is positive

Errors

If something is going wrong (eg false settings) and agopengps don’t start again

There is a setting file which is stored in

C:\Users\YourUserNameHere\AppData\Local\AgOpenGPS

Just delete the whole directory, start again

Glossary

AOG: Quite simply Ag Open GPS, an open source computer program for field guidance, navigation, and mapping started by Farmer Brian Tee

Arduino: refers to an open-source electronics platform or board and the software used to program it. (Techopedia)

BNO055: an IMU made by Adafruit

Brick: In these threads we're talking about a specific IMU made by TinkerForge

DOG2: An inclinometer made by TE connectivity

GitHub: A website where programmers can post their Open Source Code and collaborate with one another on certain projects.

IMU: Inertial Measurement Unit is an electronic device that measures and reports a body's specific force, angular rate, and sometimes the magnetic field surrounding the body, using a combination of accelerometers and gyroscopes, sometimes also magnetometers. IMUs are typically used to maneuver aircraft, including unmanned aerial vehicles (UAVs), among many others, and spacecraft, including satellites and landers. Recent developments allow for the production of IMU-enabled GPS devices. An IMU allows a GPS receiver to work when GPS-signals are unavailable, such as in tunnels, inside buildings, or when electronic interference is present.[1] A wireless IMU is known as a WIMU.[2][3][4][5] (Wikipedia)

Inclinometer: an instrument for measuring angles of slope (or tilt), elevation or depression of an object with respect to gravity. (Wikipedia)

L2: One of two frequencies sent out to a rover from an RTK enabled base station to correct positional inaccuracies in GPS location. L1 is the other frequency.

RTK: stands for Real Time Kinematics satellite navigation is a technique used to enhance the precision of position data derived from satellite-based positioning systems (global navigation satellite systems, GNSS) such as GPS, GLONASS, Galileo, and BeiDou. It uses measurements of the phase of the signal's carrier wave, rather than the information content of the signal, and relies on a single reference station or interpolated virtual station to provide real-time corrections, providing up to centimetre-level accuracy. With reference to GPS in particular, the system is commonly referred to as Carrier-Phase Enhancement, or CPGPS.[1] It has applications in land survey, hydrographic survey, and in consumer unmanned aerial vehicle navigation. (Wikipedia)

The Future of AGOpenGPS

Wishlist.. what do you think?

  1. Path guidance
  2. Navigate to a specific point and or row
  3. Area of field remaining (not covered)
  4. Average coverage per hour
  5. Estimated completion time
  6. Pass counter and direction
  7. Row counter

other Wikis

Pictures Gallery pictures:start

es/start.txt · Última modificación: 2018/04/03 20:55 por svidales