Costruzione pilota automatico per barca a vela
#10
Ecco lo Sketch, per chi conosce questo linguaggio è abbastanza semplice.
Partiamo dal presupposto che con il pilot.. non debbo attraversare l'Atlantico quindi una cosa molto semplice, tra l'altro parliamo di una scheda Arduino uno da 15 euro. Attualmente il problema maggiore è durante la navigazione con angolo di rotta intorno a 0 gradi.



#include <LiquidCrystal.h>
#include <Wire.h> //i2c library for the Digital Compass

LiquidCrystal lcd( 12, 11, 7, 8, 9, 10 );
const int hmc5883Address = 0x1E; //0011110b, I2C 7bit address for compass
const byte hmc5883ModeRegister = 0x02;
const byte hmcContinuousMode = 0x00;
const byte hmcDataOutputXMSBAddress = 0x03;
int rotta=0;

void setup()
{
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);
lcd.clear(); //make sure screen is clear.
lcd.print("pepilene is Go");
delay(4000);
Wire.begin(); // Start the i2c communication
Wire.beginTransmission(hmc5883Address); //Begin communication with compass
Wire.write(hmc5883ModeRegister); //select the mode register
Wire.write(hmcContinuousMode); //continuous measurement mode
Wire.endTransmission();

pinMode(2, OUTPUT);//LED FUTURO RELAIS MOTORE A SINISTRA
pinMode(3, OUTPUT);//LED IN FUTURO RELAIS MOTORE A DRITTA
pinMode(4, OUTPUT);//LED PILOTA ON /OFF
pinMode(1, INPUT);//INTERRUTTORE ON OFF PILOTA
pinMode(5, INPUT);//PULSANTE MEMORIZZA ROTTA NUOVA DALL'ANGOLO ATTUALE
pinMode(13, INPUT);//PULSANTE + DIECI GRADI A DRITTA
pinMode(6, INPUT);//PULSANTE - DIECI GRADI A SINISTRA

}
void loop()
{
int x,y,z;
Wire.beginTransmission(hmc5883Address);
Wire.write(hmcDataOutputXMSBAddress); //Select register 3, X MSB register
Wire.endTransmission();
Wire.requestFrom(hmc5883Address,6);
if(6<=Wire.available())
{
x = Wire.read()<<8; //X msb
x |= Wire.read(); //X lsb
z = Wire.read()<<8; //Z msb
z |= Wire.read(); //Z lsb
y = Wire.read()<<8; //Y msb
y |= Wire.read(); //Y lsb
}

int angle = atan2(-y,x)/M_PI*180; // setta angolo SEMPRE POSITIVO
if (angle < 0) // 360 gradi

{
angle = angle +360; // 360 gradi
}

//IL DISPLAY VISUALIZZA STATO ON OPPURE OFF E POI ROTTA E ANGOLO , NON PIù X,Y,Z CHE MI PARE SERVANO A POCO

lcd.clear(); //make sure screen is clear again.
lcd.setCursor(0,0);
if (digitalRead(1) == HIGH) {lcd.print("ON:");} else {lcd.print("OFF:");}
lcd.setCursor(4,0);
lcd.print("rotta:");
lcd.setCursor(0,1);
lcd.print("gradi:");
lcd.setCursor(11,0);
lcd.print(rotta);
lcd.setCursor(11,1);
lcd.print(angle);
delay(500);

//PRIMA VA IMPOSTATA LA ROTA PREMENDO IL BOTTONE 5
if (digitalRead(5) == HIGH) {rotta = angle;}

//POI VA AVVIATO IL PILOTA CON L'INTERRUTTORE 1
if (digitalRead(1) == HIGH) {digitalWrite(4, HIGH);

//PILOTA ADESSO AVVIATO FUNZIONANO I TASTI PER CAMBIARE ROTTA
Smiley30if (digitalRead(6) == HIGH) {rotta = rotta + 10;}Smiley30
Smiley30if (digitalRead(13) == HIGH) {rotta = rotta - 10;}Smiley30


if (rotta < angle){digitalWrite(3, HIGH); delay(100);digitalWrite(3, LOW); delay(100);}
else {digitalWrite(2, HIGH);delay(100);digitalWrite(2, LOW);delay(100);}
}
else
{digitalWrite(3, LOW);}
}
Il destino mescola le carte, ma siamo noi a giocarle.


Cita messaggio


Messaggi in questa discussione
RE: Costruzione pilota automatico per barca a vela - da pepilene - 15-02-2016, 19:06

Discussioni simili
Discussione Autore Risposte Letto Ultimo messaggio
  Pilota B&G network devia rotta in modo anomalo sergiot 9 848 13-10-2025, 16:21
Ultimo messaggio: magior
  Blocco pilota automatico P70 Raymarine Frangi 4 585 21-09-2025, 09:11
Ultimo messaggio: maema
  pilota raymarine stlk fail monte88 17 8.884 07-09-2025, 15:51
Ultimo messaggio: Jonah11
  Calcolo automatico polari Nexus Race Matteo Gagliardi 2 662 03-06-2025, 18:43
Ultimo messaggio: Matteo Gagliardi
  Pilota SPX30 + GPS : possibile aggiungere antenna con uscita NMEA ? acquafredda 10 1.674 31-01-2025, 21:37
Ultimo messaggio: acquafredda
  Pilota raymarine che si sgancia pasdik 13 2.677 07-10-2024, 15:04
Ultimo messaggio: pasdik
  NMEA0183 - problema di comunicazione plotter - pilota automatico gadisac 4 1.308 08-08-2024, 18:54
Ultimo messaggio: NicolaBologna
Photo Tensioni corrente su centralina Pilota St7000 lupo planante 0 731 16-07-2024, 23:01
Ultimo messaggio: lupo planante
  Pilota st4000 impazzito Francescobissotwo 5 1.696 16-07-2024, 12:15
Ultimo messaggio: Rickymat
  Problemi pilota automatico ST 7000 luka62 0 609 25-06-2024, 15:10
Ultimo messaggio: luka62
  Strumento di controllo del pilota mod Raymarine ST6001 - compatibilità? crocchidù 1 1.298 27-11-2023, 07:38
Ultimo messaggio: pepe1395
  Pilota . LINK' ???? Madinina II 32 10.668 14-09-2023, 16:22
Ultimo messaggio: Poliorcete
  Problemi pilota st 4000 CUCUDRIL 0 1.072 12-09-2023, 11:14
Ultimo messaggio: CUCUDRIL
  Pilota automatico a ruota che resta agganciato torcido 14 2.773 29-07-2023, 12:34
Ultimo messaggio: torcido
  Consiglio pilota automatico giorgio8596 15 3.611 13-07-2023, 17:09
Ultimo messaggio: giorgio8596

Vai al forum:


Utenti che stanno guardando questa discussione: 1 Ospite(i)