Hackster is hosting Impact Spotlights highlighting smart energy storage. Start streaming on Thursday!Stream Impact Spotlights on Thursday!
MisterBotBreak
Published

How to Make a Hovercraft

This project will show you how to create a floating hovercraft using a 3D printer and some brushless motors.

AdvancedFull instructions provided3 days1,153
How to Make a Hovercraft

Things used in this project

Hardware components

Arduino Nano R3
Arduino Nano R3
×1
Brushless motors + ESCs
×2
Arduino Nano expansion
×1
SG90 Micro-servo motor
SG90 Micro-servo motor
×1
XT60 connectors
×1
XT60 to T-plug
×1
LiPo Battery 4s
×1

Software apps and online services

Arduino IDE
Arduino IDE

Story

Read more

Custom parts and enclosures

spreader_8cP0u9pGW8.stl

female_support_-_it_W0psMzROdV.stl

general_support_-_it_lgemLoCSkC.stl

main_support_iQXiluQm3S.stl

male_support_-_it_ymiGrYlUlq.stl

microcontroller_support_DaURJpkhf3.stl

nut_spreader_2zT1L9R9Eu.stl

propeller_-_float_I1KW9lSKT8.stl

propeller_-_speed_wtVM23SDMv.stl

speed_motor_support_JetwaEJO8W.stl

Schematics

Hovercraft connections

A Fritzing file

Code

Hovercraft Code

Arduino
#include "I2Cdev.h"  
#include "MPU6050.h"
#include "math.h"
#include <Servo.h>
#include <SPI.h>                                                
#include <nRF24L01.h>
#include <RF24.h>

#define CE_PIN   3
#define CSN_PIN 4

Servo speedh;
Servo highh;
Servo directionh;

float pwmspeed = 51;
float pwmhigh = 51;
float pwmdirection = 90;

RF24 radio(CE_PIN, CSN_PIN);                               

const uint64_t adresse = 0xE8E8F0F0E1LL;  

int data[5];

void setup(){   
  Wire.begin();  
  Serial.begin(9600);                                               
  radio.begin();                                                         
  radio.openReadingPipe(1,adresse);                    
  radio.startListening();   
  
  speedh.attach(5);
  directionh.attach(6);
  highh.attach(9);
}


void loop() {
  
if (radio.available()){
  
radio.read(data, sizeof(data));                     
speedh.write(pwmspeed);
directionh.write(pwmdirection);
highh.write(pwmhigh);


pwmdirection = map(data[3], 0, 1080, 130, 50);

if(pwmspeed>50 && pwmspeed<170){
if(data[1]>600){
  pwmspeed = pwmspeed + 0.5;
}
else if(data[1]<400){
  pwmspeed = pwmspeed - 0.5;
}
}
else if(pwmspeed>=170){
  pwmspeed = 169;
}
else if(pwmspeed==50){
  pwmspeed = 51;
}


if(pwmhigh>50 && pwmhigh<170){
if(data[0]>600){
  pwmhigh = pwmhigh + 0.5;
}
else if(data[0]<400){
  pwmhigh = pwmhigh - 0.5;
}
}
else if(pwmhigh>=170){
  pwmhigh = 169;
}
else if(pwmhigh==50){
  pwmhigh = 51;
}
Serial.println(pwmhigh);
  }

delay(25);
}

Credits

MisterBotBreak

MisterBotBreak

48 projects • 150 followers
I love electronics and cats :D !

Comments