Skip to content
Postmedias edited this page Jan 1, 2018 · 12 revisions

The purpose of this project is to make a DIY autopilot for sailing boat.

Hardware :

  • 2 arduino mini
  • 1 IMU BNO 055
  • 1 DC Motor driver MD10C R3
  • 1 Liquidcrystal LCD (20x4) I2C
  • 5 buttons

Software library

  • PID_V1
  • Adafruit_BNO055
  • Adafruit_Sensor
  • LiquidCrystal_I2C

for better portabilty I have integred this libraries in the folder

Arduino No 1 (menu) is dedicated to

  • manage menu
  • detect action on button ( pin 5,6,7,8,9 )
  • print information on LCD via I2C (pin 4 and 5)
  • send parameters to the second arduino via Serial connection (pin rx et tx)

Arduino No 2 ( asservissement ) is dedicated to

  • calibrate the IMU (BNO055)
  • save/recall calibrating informations to Eprom
  • get euler angle from IMU
  • get parameters from Arduino 1
  • compute PID asservissement
  • send data to Motor driver

IMU BNO055

It is a 3D magnetometer, 3D gyroscope and 3D accelerometer. It as internal processeur who can compute in reel time the data of the capteur to produce euler angle. It communicate with Arduino 2 via I2C

DC Motor driver MD10C R3

It can drive Motor up to 13A. This means around 150 watts Motor. It as two input : pwm ( level from 0 to 100% ) and reverse So it can pull and push the helm of the boat with variable power.