Boat hovercraft - mcworkshop

MC        WORKSHOP
Vai ai contenuti

Menu principale:

Boat hovercraft

Projects
Fifth prototype
Quinto prototipo

Arduino nano, HC05 bluetooth, SG 90 servomotor, spare parts for drone

#define bluetooth Serial
#include <SoftwareSerial.h>
#include <Servo.h>
Servo Servo1;
SoftwareSerial mySerial(1, 0);
void setup()
{
 Serial.begin(9600);
 Servo1.attach (3);
 bluetooth.begin(9600);
 mySerial.begin(9600);
 delay(1000);
}
void loop()
{
 while (bluetooth.available())
 {
   char dato = bluetooth.read();
   switch (dato)
   {
     case 'a':
       {
         Servo1.write (90);
         break;
       }
     case 'b':
       {
         Servo1.write (50);
         break;
       }
     case 'c':
       {
         Servo1.write (130);
         break;
       }
   }
 }
}

clic to enlarge

Boat fourth prototype
This is the fourth prototype of a boat. The first three were driven by 2/4 engines in the air. This boat is the first to have two engines with thrusters in the water. The obstacle that had arisen in the first three prototypes was the ignition of the engines via bluetooth command through a relay. The interference produced made the bluetooth module unhook. In this way I decided to use power transistors like the TIP. The problem encountered was not with the HC05 module, but with the servo motor. The ignition of the engines caused sudden jerks to the servo motor which was unable to return to the required position. For this reason, in the wiring diagram, you find a series of measures to reduce the disturbances generated by the two engines. A 1000 micro electrolytic capacitor at the ends of each of the motors, a diode on the servo motor power supply and a capacitor between GND and the servo motor signal itself. Actually the addition of the 10 nano capacitor has increased the effect of the noise. I removed the ignition command of the engines by entrusting it to a simple switch so as to have two completely separate circuits between them. From the first tests performed the problem seems to be solved. Each of the motors is powered by a 1200mA Lipo battery. Arduino is powered by a 9 Volt battery. A second problem to be faced in the construction of the boats, as well as in the models that move on the ground, are the overall weight with respect to the generating power and the overall consumption.

Questo è il quarto prototipo di imbarcazione. I primi tre erano spinti da 2 / 4 motori in aria. Questa barca è la prima ad avere due motori con le eliche di spinta in acqua. L'ostacolo che si era presentato nei primi tre prototipi era l'accensione dei motori tramite comando bluetooth attraverso un relay. Le interferenze prodotte facevano sganciare il modulo bluetooth. In questo proptotipo ho deciso di utilizzare dei transistori di potenza come il TIP. Il problema riscontrato non è stato con il modulo  HC05 , bensì con il servo motore. L'accensione dei motori provocava guizzi improvvisi al servo motore che non era in grado di rimettersi nella posizione richiesta. Per questo motivo, nello schema elettrico, trovate una serie di accorgimenti per abbattere i disturbi generati dai due motori. Un condensatore elettrolitico da 1000 micro ai capi di ciascuno dei motori, un diodo sull'alimentazione del servo motore e un condensatore tra GND e segnale del servo motore stesso. In realtà l'aggiunta del condensatore da 10 nano ha aumentato l'effetto del disturbo. Ho tolto il comando di accensione dei motori affidandolo a un semplice interruttore in modo da avere due circuiti completamente separati tra loro. Dai primi test eseguiti il problema sembra essere risolto. Ciascuno dei motori è alimentato da una batteria Lipo da 1200mA. Arduino è alimentato da una batteria da 9 Volt. Un secondo problema da affrontare nella costruzione delle imbarcazioni, così come nei modelli che si muovono su terra, sono il peso complessivo rispetto la potenza di spinta generabile e il consumo complessivo.

Wiring diagram I

click to enlarge

Filter



Wiring diagram II

click to enlarge


Constructive scheme

click to enlarge


click to enlarge






click to enlarge


Sketch
Wiring diagram I

// Boat V1.1 by M.C. mcworkshop
// This example code is in the public domain.
// March 2018 V1.1 - modified in March 2019 V1.2

#include <Servo.h> //Richiama la libreria Servo
Servo Servo1; //Il nome del servo è Servo1
#include <SoftwareSerial.h> //Richiama la libreria seriale
#define bluetooth Serial // Richiama la libreria bluetooth
SoftwareSerial mySerial(0, 1); // Imposto i pin per la comunicazione seriale dove: RX=>1 TX=>0
void setup()
{
 Serial.begin(9600);
 pinMode(7, OUTPUT); // il pin 7 è una uscita e collego il TIP
 pinMode(8, OUTPUT); // il pin 8 è una uscita e collego il TIP
 Servo1.attach (3); //Il Servo1 è collegato al pin digitale 3
 bluetooth.begin(9600); //Setto la comunicazione bluetooth
 mySerial.begin(9600); // Setto la comunicazione seriale
 delay(1000); // attendo un secondo
}
void loop()
{
 while (bluetooth.available())
 {
   char dato = bluetooth.read(); // "dato" è il valore che viene ricevuto dalla seriale
   switch (dato)
   {
     case 'a': // Se ricevo la lettera a metto il servo a 90 gradi
       {
         Servo1.write (90); // servo a 90

         break;
       }
     case 'A':
       {
         Servo1.write (90);

         break;
       }
     case 'b':
       {
         Servo1.write (110);

         break;
       }
     case 'B':
       {
         Servo1.write (110);

         break;
       }
     case 'c':
       {
         Servo1.write (70);

         break;
       }
     case 'C':
       {
         Servo1.write (70);

         break;
       }
     case 'd':
       {
         digitalWrite(7, HIGH); // Accendo il motore
          digitalWrite(8, HIGH); // Accendo il motore

         break;
       }
     case 'D':
       {
         digitalWrite(7, HIGH);
          digitalWrite(8, HIGH);

         break;
       }
     case 'e':
       {
         digitalWrite(7, LOW); //Spengo il motore
          digitalWrite(8, LOW); //Spengo il motore

         break;
       }
     case 'E':
       {
         digitalWrite(7, LOW);
         digitalWrite(8, LOW);

         break;
       }
   }
 }
}

Sketch II
Wiring diagram II

// Boat V1.1 by M.C. mcworkshop
// This example code is in the public domain.
// March 2018 V1.1 - modified in March 2019 V1.2 / V1.3

#include <Servo.h> //Richiama la libreria Servo
Servo Servo1; //Il nome del servo è Servo1
#include <SoftwareSerial.h> //Richiama la libreria seriale
#define bluetooth Serial // Richiama la libreria bluetooth
SoftwareSerial mySerial(0, 1); // Imposto i pin per la comunicazione seriale dove: RX=>1 TX=>0
void setup()
{
 Serial.begin(9600);
 Servo1.attach (3); //Il Servo1 è collegato al pin digitale 3
 bluetooth.begin(9600); //Setto la comunicazione bluetooth
 mySerial.begin(9600); // Setto la comunicazione seriale
 delay(1000); // attendo un secondo
}
void loop()
{
 while (bluetooth.available())
 {
   char dato = bluetooth.read(); // "dato" è il valore che viene ricevuto dalla seriale
   switch (dato)
   {
     case 'a': // Se ricevo la lettera a metto il servo a 90 gradi
       {
         Servo1.write (90); // servo a 90
         break;
       }
     case 'A':
       {
         Servo1.write (90);
         break;
       }
     case 'b':
       {
         Servo1.write (110);
         break;
       }
     case 'B':
       {
         Servo1.write (110);
         break;
       }
     case 'c':
       {
         Servo1.write (70);
         break;
       }
     case 'C':
       {
         Servo1.write (70);
         break;
       }
   }
 }
}
Conclusions fourth prototype. The tiller is too long and tends to swing like a spring. The rudder is too small compared to previous versions and too far from the hull. Removing the DC DC converters and using 1200mA LIPO batteries I solved the problem of too fast discharge of 9 Volt batteries. The problem of electromagnetic interference of the motors both on the bluetooth connection and on the servomotor, despite the shielding devices and filters, remains present. Today the sailing conditions were not perfect. Wind, water current, waves produced by passing motor boats. The tests continue!
Conclusioni quarto prototipo. La barra del timone è troppo lunga e tende ad oscillare come una molla. Il timone è troppo piccolo rispetto le versioni precedenti e troppo lontano dallo scafo. Togliendo i convertitori DC DC e utilizzando delle batterie al LIPO da 1200mA ho risolto il problema della scarica troppo veloce delle pile a 9 Volt. Il problema delle interferenze elettromagnetiche dei motori sia sulla connessione bluetooth sia sul servomotore, nonostante gli accorgimenti di schermatura e filtri, restano presenti. Oggi le condizioni di navigazione non erano perfette. Vento, corrente dell'acqua, onde prodotte dalle barche a motore di passaggio. Le prove continuano!

09/07/2019
 
Copyright 2015. All rights reserved.
Torna ai contenuti | Torna al menu