Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

DIY op Arduino gebaseerde RC Hovercraft

In deze tutorial leren we hoe we een op Arduino gebaseerde RC Hovercraft kunnen bouwen. Ik laat je het hele bouwproces zien, van het ontwerpen en 3D-printen van de hovercraft-onderdelen, inclusief de propellers, tot het aansluiten van de elektronische componenten en het programmeren van de Arduino.

Je kunt de volgende video bekijken of de schriftelijke tutorial hieronder lezen.

Overzicht

Voor het besturen van de hovercraft heb ik mijn DIY Arduino-gebaseerde RC-zender gebruikt die ik in een van mijn vorige video's heb gemaakt. Ik heb de rechter joystick ingesteld om de servomotor te bedienen voor het positioneren van de roeren aan de achterkant van de stuwkrachtmotor, stel een van de potentiometers in om de liftpropeller te bedienen die feitelijk op een borstelloze gelijkstroommotor is bevestigd, en stel de linker joystick in om te bedienen de voortstuwing. Laten we dus eens kijken wat er nodig is om deze RC-hovercraft te bouwen.

Hovercraft 3D-model

Om te beginnen heb ik de hovercraft ontworpen met behulp van 3D-modelleringssoftware.

U kunt dit 3D-model vinden en downloaden, en het ook verkennen in uw browser op Thangs.

Download het montage 3D-model op Thangs.

STL-bestanden voor 3D-printen:

Hovercraft-werkprincipe

Het basiswerkprincipe van een hovercraft is dat het vaartuig wordt opgetild door een luchtkussen. De centrale propeller blaast lucht onder het vaartuig, waardoor een rok van zacht materiaal wordt opgeblazen.

Wanneer de luchtdruk in de rok hoog genoeg is, wordt het vaartuig opgetild. De constant aangevoerde lucht ontsnapt vanuit het midden van het vaartuig, tussen de rok en de grond, wat extra lift creëert en ook de wrijving tussen de hovercraft en de grond vermindert.

Eenmaal opgetild, wordt met behulp van de tweede propeller een stuwkracht gegenereerd die de hovercraft naar voren beweegt.

Aan de achterkant van de stuwschroef bevindt zich een eenvoudige set roeren die worden gebruikt voor het besturen van de hovercraft.

3D-printen

Desalniettemin, toen ik eenmaal klaar was met het ontwerp, begon ik met het 3D-printen van de onderdelen.

De romp van de hovercraft is het grootste deel om te printen en ik heb speciaal ontworpen om te passen op mijn Creality CR-10 3D-printer, die een printbed van 30x30cm heeft.

Hier is een link naar deze 3D-printer voor het geval je hem wilt bekijken.

Nadat het afdrukken is voltooid, is het tijd om wat op te ruimen. Het hoofdgedeelte van de hovercraft of de cockpit was de langste print die ongeveer 18 uur duurde om te printen. Vanwege het gebogen ontwerp, en omdat ik een enkele print wilde zijn, werd er veel ondersteunend materiaal gebruikt voor deze print.

Het was echter heel gemakkelijk om het te verwijderen en het laatste stuk bleek gewoon perfect. De romp van de hovercraft was ondersteboven bedrukt en er moest slechts een kleine hoeveelheid ondersteunend materiaal worden verwijderd. Eigenlijk moest ik wat aanpassingen maken aan deze print en wat materiaal uit de centrale ventilatorbehuizing snijden zodat de rokhouder er goed in kan passen.

Ik heb het 3D-model al bijgewerkt, dus ik heb dit probleem niet.

Sommige ronde delen van de onderdelen waren een beetje ruw, dus ik gebruikte een eenvoudig verzendpapier om ze glad te strijken.

De propellers hoefden niet schoongemaakt te worden en ze werkten best goed, ze kwamen rechtstreeks uit de 3D-printer.

De hovercraft schilderen

Ok de volgende stap is het schilderen van de 3D geprinte onderdelen. Ik heb nog geen primer gebruikt, maar direct een acrylverf aangebracht in de vorm van een spuitbus.

Ik gebruikte een chocolade wenkbrauwkleur voor de eerste laag. Voor sommige van de kleinere delen, die eigenlijk alleen maar decoratiedelen zijn, heb ik een lichtere bruine kleur gebruikt.

Om de hovercraft er wat cooler uit te laten zien, ging ik, toen de eerste laag was uitgedroogd, verder met het toevoegen van nog twee kleuren aan de onderdelen. Ik heb daarvoor wat willekeurige patronen op een eenvoudig vel papier gemaakt en daarmee strepen en vlekken in verschillende kleuren gemaakt. Ik heb daarvoor een lichtere bruine en zwarte kleur gebruikt.

De Arduino RC Hovercraft in elkaar zetten

Ik vind de onderdelen erg mooi, dus toen ze eenmaal uitgedroogd waren, ging ik verder met het monteren ervan.

Ik ben begonnen met het installeren van de servomotor die de roeren aanstuurt op het stuwkrachtventilatorhuis. Ik heb de servo vastgezet met twee M2-bouten en moeren.

De volgende is de borstelloze motor. Het specifieke model dat ik heb is de D2830 met een diameter van 28 mm en een lengte van 30 mm, en natuurlijk is de behuizing speciaal ontworpen om op deze motor te passen.

Hier moest ik bij het plaatsen van de motor eerst de draden door de openingen halen. Het is een beetje krap, maar nog steeds beheersbaar om ze door te laten. Vervolgens heb ik aan de achterkant, met behulp van M3-bouten, de motor aan de behuizing bevestigd.

Vervolgens kan ik de stuwkrachtbehuizing samenvoegen met het hoofdgedeelte van de hovercraft. Dit onderdeel heeft een opening waar de servo- en de BLDC-motordraden doorheen kunnen.

Met vier M3-bouten heb ik ze stevig aan elkaar vastgemaakt.

Toen ik daarmee klaar was, ging ik verder met het installeren van de tweede borstelloze motor op de romp van de hovercraft. Ook hier heb ik dezelfde methode gebruikt. Eerst heb ik de draden door de openingen gehaald en vervolgens aan de achterkant de motor vastgezet met vier M3-bouten.

Circuitdiagram

Daarna komt de elektronica. De elektronische componenten worden tussen de romp en het hoofdgedeelte van de hovercraft geplaatst. Maar laten we voordat we dat doen het schakelschema eens bekijken en kijken hoe alles moet worden aangesloten.

Het brein van deze hovercraft is dus een Arduino-bord. Met de Arduino kunnen we zowel de servo als de twee borstelloze motoren eenvoudig besturen met behulp van de twee elektronische snelheidsregelaars of ESC's. Voor het aandrijven van de BLDC-motoren zal ik een 3S Li-Po-batterij gebruiken die ongeveer 11V levert, en voor het voeden van de Arduino kunnen we de gereguleerde 5V gebruiken die de ESC's leveren via hun Battery Eliminator Circuit-functie.

Voor de draadloze communicatie zal ik de NRF24L01 transceivermodule gebruiken die, indien gebruikt met een versterkte antenne, een stabiel bereik tot 700 meter in open ruimte kan hebben. De RC-zender die ik zal gebruiken voor het besturen van de hovercraft, is degene die ik op maat heb gebouwd in een van mijn vorige tutorials, dus je kunt het bekijken als je er meer informatie over nodig hebt. Er zijn ook gedetailleerde tutorials over de NRF24l01-module en het gebruik van borstelloze motoren met Arduino. Het basiswerkprincipe is echter dat de zender de joysticks of potentiometergegevens naar de ontvanger stuurt die de snelheid van de borstelloze motoren en de positie van de servo regelt.

Er is nog een klein detail op dit schakelschema, en dat is de batterijmonitor. Ik heb een eenvoudige spanningsdeler gemaakt van twee weerstanden, die rechtstreeks op de batterij is aangesloten, en de uitvoer gaat naar de analoge ingang van de Arduino. De spanningsdeler laat de 11 volt zakken tot ongeveer 4 volt, wat dan acceptabel is voor de 5V Arduino-pinnen. Hiermee kunnen we de accuspanning monitoren, en een LED instellen die gaat branden wanneer bijvoorbeeld de spanning van de accu onder de 11 volt komt.

U kunt de benodigde componenten voor deze Arduino-zelfstudie verkrijgen via de onderstaande links:

  • NRF24L01 Zendontvangermodule….
  • NRF24L01 + PA + LNA ………….….
  • Borstelloze motor ……………….……
  • ESC 30A …………………………….…..
  • Li-Po-batterij ……………………………..
  • XT60 2 Vrouw naar 1 Man ………….
  • XT60-connector ………………………
  • Servomotor ……………………………..
  • Arduino-bord …………………………

Dus begon ik de componenten aan te sluiten zoals uitgelegd. Voor het aansluiten van de twee ESC's op een enkele batterij heb ik een parallelle batterijconnectorsplitter gebruikt, type XT60.

Voor het toevoegen van een aan / uit-schakelaar aan het project heb ik een andere XT60-connector gebruikt, waarop ik een draad heb doorgesneden en daar een tuimelschakelaar heb gesoldeerd. Dus de ene kant gaat naar de Y-splitterkabel en de andere kant naar de batterij.

Vervolgens plaatste ik de ESC's in het hoofdgedeelte en sloot ze tussen het en de romp van de hovercraft. Vervolgens heb ik met behulp van vier M3-bouten de twee delen aan elkaar bevestigd. Via de bovenste opening van de carrosserie heb ik vervolgens de batterij in de cockpit geplaatst.

Vervolgens moeten we de componenten op de Arduino aansluiten en voor dat doel heb ik twee pin-headers aan de Arduino toegevoegd die zullen dienen als GND- en 5V-pinnen.

Dus toen ik alles op de Arduino had aangesloten, heb ik de NRF24L01-antenne, de indicator-LED en de aan / uit-schakelaar door de bovenklep van de cockpit geleid.

Toen moest ik gewoon alles in de cockpit persen. Het was hier een beetje krap omdat ik Arduino UNO gebruikte, en waarschijnlijk had ik in plaats daarvan Arduino Nano moeten gebruiken.

Het is me echter gelukt om alles erin te passen, ook een klein decoratiedeel aan de hoes te bevestigen en het vervolgens gewoon op de cockpitbehuizing te klikken.

Ik ging verder met het installeren van het stuursysteem. Eerst heb ik een kleine link op de servohoorn aangesloten met behulp van een M2-bout en een moer. Daarna plaatste ik het eerste roer op zijn plaats en bevestigde het aan het stuwkrachthuis met behulp van een 2 mm metalen draad die door zijn lichaam gaat en zodat het roer eromheen kan draaien. Op dezelfde manier heb ik het tweede roer bevestigd.

Dit roer heeft een extra slot zodat we het kunnen aansluiten op de eerder ingevoegde link naar de servo. Nogmaals, ik gebruikte M2-bout en moer om ze vast te zetten. En tot slot heb ik de twee roeren via een andere link met elkaar verbonden en daarmee is het stuursysteem compleet.

Vervolgens bevestig ik dit kleine decoratiedeel aan de zijkant van de hovercraft. Met behulp van een boor heb ik een gat gemaakt en vervolgens het onderdeel met een enkele schroef aan de romp bevestigd. Ik heb deze onderdelen aan beide kanten geplaatst en ik denk dat ze redelijk goed passen bij het algehele uiterlijk van de hovercraft.

Ok, daarna ging ik verder met het maken van de rok voor deze hovercraft. Je kunt hier zien dat de rokhouder gaten eromheen heeft en dat is om hem aan de romp te bevestigen.

Er zijn ook sleuven voor moeren om in te plaatsen en op die manier kunnen we de rokhouder gemakkelijk aan de romp bevestigen met M3-bouten. Nadat ik alle moeren op hun plaats had vastgezet, ging ik verder met het maken van de rok waarvoor ik een eenvoudige plastic vuilniszak gebruikte.

Dus eerst heb ik AC-lijm op het midden van de houder aangebracht en op de plastic zak geplakt. Vervolgens heb ik de omtrek van de houder op ongeveer 6 cm verschoven. Ik heb het op verschillende punten gemarkeerd en vervolgens met elkaar verbonden.

Met behulp van een mes heb ik de plastic zak op de juiste maat gesneden. Toen draaide ik de rok om en voegde wat extra houder toe aan de tas waar we hem eerder hadden gelijmd met AC-lijm.

Vervolgens moet de buitenkant van de tas aan de bovenkant van de houder worden gelijmd. Nogmaals, ik heb voor dat doel AC-lijm gebruikt en de plastic zak er zorgvuldig aan vastgemaakt.

Als je daarmee klaar bent, zie je hoe de rok eruit zou moeten zien.

Vervolgens maakte ik gaten door de plastic zak waar de bouten doorheen moeten. De rokhouder is slechts 1 mm kleiner dan de romp van de hovercraft, dus in combinatie met de plastic zak past hij perfect in de romp. Om de rok aan de romp te bevestigen, heb ik eenvoudig de M3-bouten rond de hele omtrek vastgemaakt.

Er moet nog één ding aan de rok worden gedaan en dat is het centrale gedeelte van de plastic zak uitsnijden.

Dus met deze helft zal de lucht de rok direct opblazen en dan zal het door deze opening naar buiten bloeden, waardoor een extra luchtbel in het midden ontstaat.

Ten slotte moeten de propellers aan de borstelloze motoren worden bevestigd. Voor dat doel gebruik ik de spantang die bij de borstelloze motor wordt geleverd. Het is een heel eenvoudige en effectieve manier om de propeller aan de motoras te bevestigen.

Ik verloor echter de spantang voor mijn andere motor, dus ik moest een andere versie van de propeller afdrukken om direct op de motoras te passen, die 3,15 mm is. De afdruk kwam eigenlijk best goed uit, hij paste perfect en bevestigde perfect aan de motor zonder zelfs maar een lijm te gebruiken.

En dat is alles, onze radiografisch bestuurbare hovercraft is eindelijk klaar.

Wat er echter overblijft in deze video is om de Arduino-code te bekijken en hoe het programma werkt.

Arduino RC Hovercraft-code

Hier is de code voor dit DIY Arduino-gebaseerde RC Hovercraft-project:

/*
         Arduino based RC Hovercraft
   == Receiver Code - ESC and Servo Control =
  by Dejan, www.HowToMechatronics.com
  Library: TMRh20/RF24, https://github.com/tmrh20/RF24/
*/
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#include <Servo.h>

#define led 10

RF24 radio(8, 9);   // nRF24L01 (CE, CSN)
const byte address[6] = "00001";
unsigned long lastReceiveTime = 0;
unsigned long currentTime = 0;

Servo esc1;  // create servo object to control the ESC
Servo esc2;
Servo servo1;

int esc1Value, esc2Value, servo1Value;
// Max size of this struct is 32 bytes - NRF24L01 buffer limit
struct Data_Package {
  byte j1PotX;
  byte j1PotY;
  byte j1Button;
  byte j2PotX;
  byte j2PotY;
  byte j2Button;
  byte pot1;
  byte pot2;
  byte tSwitch1;
  byte tSwitch2;
  byte button1;
  byte button2;
  byte button3;
  byte button4;
};
Data_Package data; //Create a variable with the above structure
void setup() {
  Serial.begin(9600);
  radio.begin();
  radio.openReadingPipe(0, address);
  radio.setAutoAck(false);
  radio.setDataRate(RF24_250KBPS);
  radio.setPALevel(RF24_PA_LOW);
  radio.startListening(); //  Set the module as receiver
  resetData();
  esc1.attach(7);
  esc2.attach(6);
  servo1.attach(5);
  pinMode(led, OUTPUT);
}
void loop() {
  // Check whether we keep receving data, or we have a connection between the two modules
  currentTime = millis();
  if ( currentTime - lastReceiveTime > 1000 ) { // If current time is more then 1 second since we have recived the last data, that means we have lost connection
    resetData(); // If connection is lost, reset the data. It prevents unwanted behavior, for example if a drone jas a throttle up, if we lose connection it can keep flying away if we dont reset the function
  }
  // Check whether there is data to be received
  if (radio.available()) {
    radio.read(&data, sizeof(Data_Package)); // Read the whole data and store it into the 'data' structure
    lastReceiveTime = millis(); // At this moment we have received the data
  }
  // Controlling servos
  servo1Value = map(data.j2PotX, 0, 255, 0, 50);
  servo1.write(servo1Value);

  // Controlling brushless motor with ESC
  // Lift propeller
  esc1Value = map(data.pot1, 0, 255, 1000, 2000); // Map the receiving value form 0 to 255 to 0 1000 to 2000, values used for controlling ESCs
  esc1.writeMicroseconds(esc1Value); // Send the PWM control singal to the ESC
  
  // Thrust propeller
  esc2Value = constrain(data.j1PotY, 130, 255); // Joysticks stays in middle. So we only need values the upper values from 130 to 255
  esc2Value = map(esc2Value, 130, 255, 1000, 2000);
  esc2.writeMicroseconds(esc2Value);

  // Monitor the battery voltage
  int sensorValue = analogRead(A0);
  float voltage = sensorValue * (5.00 / 1023.00) * 3; // Convert the reading values from 5v to suitable 12V i
  Serial.println(voltage);
  // If voltage is below 11V turn on the LED
  if (voltage < 11) {
    digitalWrite(led, HIGH);
  }
  else {
    digitalWrite(led, LOW);
  }
}
void resetData() {
  // Reset the values when there is no radio connection - Set initial default values
  data.j1PotX = 127;
  data.j1PotY = 127;
  data.j2PotX = 127;
  data.j2PotY = 127;
  data.j1Button = 1;
  data.j2Button = 1;
  data.pot1 = 1;
  data.pot2 = 1;
  data.tSwitch1 = 1;
  data.tSwitch2 = 1;
  data.button1 = 1;
  data.button2 = 1;
  data.button3 = 1;
  data.button4 = 1;
}Code language: Arduino (arduino)

Beschrijving: Dus eerst moeten we de RF24-bibliotheek voor de radiocommunicatie opnemen, evenals de servo-bibliotheek voor het aansturen van zowel de servo- als de borstelloze motoren. Dan moeten we de radio en de servo-objecten definiëren, enkele variabelen die nodig zijn voor het onderstaande programma, evenals de structuur van variabelen die worden gebruikt voor het opslaan van de binnenkomende gegevens van mijn DIY RC-zender. Voor meer details over hoe deze communicatie werkt, raad ik aan om mijn specifieke tutorial ervoor te raadplegen.

In het setup-gedeelte moeten we de radiocommunicatie initialiseren en de pinnen definiëren waarop de servo en ESC's zijn aangesloten.

In het lusgedeelte lezen we de binnenkomende gegevens van de zender en gebruiken die waarden voor het aansturen van de servo en de borstelloze motoren. Dus binnenkomende joystickgegevens die variëren van 0 tot 255 worden omgezet in waarden van 0 tot 50 en we gebruiken deze waarden om de positie van de servo te regelen.

Met dezelfde methode besturen we de borstelloze motoren met behulp van de ESC's. De binnenkomende gegevens die van 0 tot 255 zijn, worden geconverteerd naar waarden van 1000 tot 2000 en met behulp van de functie wirteMicroseconds() sturen we deze gegevens naar de ESC als een stuursignaal.

Voor het bewaken van de accuspanning lezen we de analoge ingang die van de spanningsdeler komt en met wat simpele wiskunde zetten we de ingangswaarden om in de werkelijke waarde van de accuspanning. Als de batterijspanning onder de 11V daalt, lichten we gewoon de indicatie-LED op.

En dat is het. Als je meer details nodig hebt, kun je de andere voorgestelde tutorials bekijken, zodat je volledig kunt begrijpen hoe alles werkt.

Ik hoop dat je deze tutorial leuk vond en iets nieuws hebt geleerd. Stel gerust een vraag in de opmerkingen hieronder en bekijk mijn Arduino Projects-collectie.


Productieproces

  1. DIY LUMAZOID Arduino Music Visualiser
  2. DIY voltmeter met Arduino en smartphone
  3. Pixie:een op Arduino gebaseerd NeoPixel-polshorloge
  4. DIY Virtual Reality Skateboard
  5. Arduino en OLED-gebaseerde mobiele automaten
  6. DIY Arduino RADIONICS-behandelingsmachine
  7. Aanwezigheidssysteem op basis van Arduino en Google Spreadsheet
  8. DIY 2D Motion Racing Simulator
  9. Slimme energiemonitor op basis van Arduino
  10. Arduino-gebaseerd beveiligingssysteem
  11. DIY-idee met RFID