RC Hovercraft + aangepaste afstandsbediening (6 / 8 stap)

Stap 6: De ontvanger


De ontvanger die ik heb gedaan is in feite een aangepaste * duino bord met het gemak van het hebben van een ON/OFF schakelaar en een kop voor de radio module nRF24L01 +.

Dus, ik adviseren om een Arduino (of compatibel bestuur) en een gewoon verbinding maken met de andere nRF24l01 + radio module voor het respectieve nodig pinnen.

MOSI - Digital pin 11
MISO - Digital pin 12
SCK - Digital pin 13

Daarnaast moet u pinnen CE en CSN (van de radio module) aansluiten op sommige gratis pinnen van uw keuze op de Arduino (of compatibele) bestuur. De standaard in de code die zullen volgen zijn pin 9 en 10 respectievelijk.

Aangezien de radio module macht moet moet u ook aansluiten op de GND en 3,3 v volt pinnen.

Waarschuwing: het is zeer belangrijk dat u de RADIO MODULE met 3,3 v stroom anders zult u het ROOSTEREN.

U dient een gewijzigde versie van de onderstaande code uploaden naar het bestuur van de ontvanger. U moet alleen pin-toewijzingen wijzigen als u verschillende pinnen gebruikt, en wat nog belangrijker is waarschijnlijk zal moet u het ESC bewapenen van code wijzigen. Als u niet werken met Arduino + ESC voordat ik sterk adviseren dat u hen standalone testen, verschillen bedienen procedures van ESC op ESC. De onderstaande code werkt goed voor twee mysterie merk SER's gewaardeerd voor 30A. Voor andere SER's is het wellicht te onderzoeken op sommige lengte over hoe goed ze arm.

#include < Servo.h >
#include < SPI.h >
#include "nRF24L01.h"
#include "RF24.h"

/ *---REIZEN GEGEVENS STRUCTS---* /

opdrachten gaat binnen
typedef struct {}
int X;
int Y;
Booleaanse knoppen [4];
}
Lading;

feedback gaat binnen
typedef struct {}
int rudderAng;
int Z;
int S;
}
Feedback;

/ *---DEBOUNCING VARIABELEN---* /

lange previousMillis = 0;        timer voor servo
lange previousButtonMillis = 0;  timer voor knoppen
lange previousTX = 0;            timer voor overbrengingen
lange TXinterval = 25;           interval voor het verzenden van telemetrie
Const int interval = 30;        Interval bijwerken servo
Const int binterval = 70;       interval voor debouncing
Const int TX_timeout = 100;     externe - ambachtelijke koppelen timeout

/* ------------------------------------------------------------- */

Servo stuwkracht;
Servo lift;

Pakket van de lading;
Feedback telemetrie;

Servo roer;

int oldAngle, newAngle = 0;     Servo posities

int lift_ang;                   Til motor pseudo-'hoekig' snelheid

int vel;                        stuwkracht pseudo-'hoekig' snelheid

Boolean lopen = false;

RF24 radio (9, 10);

Const uint64_t pijpen [2] = {}
0xF0F0F0F0E1LL, 0xF0F0F0F0D2LL};

/* ----------------------------------------------------- */

/ * INGESTELD VAN HET KNOOPPUNT VAN DE ONTVANGER * /

void setup(void)
{
Serial.begin(57600);

Radio.begin();
radio.openWritingPipe(pipes[1]);
radio.openReadingPipe(1,pipes[0]);
radio.startListening();

Rudder.attach(7);

Het is belangrijk om de arm
ELKE ESC sequentieel
Lift.attach(5);
armESC(lift);
lift_ang = 50;

delay(100);

thrust.attach(6);
armESC(thrust);
vel = 50;
}

void loop(void)
{

unsigned long started_waiting_at = millis();
time-out van Boole = vals;
terwijl (! radio.available() & &! timeout)
Als (millis() - started_waiting_at > TX_timeout)
timeout = true;

Als (time-out) {}
Serial.println ("Failed, reactie timed out.");
lopen = false;
}
else {}
Radio.Read (& pakket, sizeof(package));
lopen = true;
}

Als de verwijzing van de TX-RX leven () dan...
if(run)
{

/ *---ONTVANGEN OPDRACHTEN UITVOEREN---* /

int X = pakket. X;
int Y = pakket. Y;

ROERBESTURING
// ------------------------------------------------------------
Als (X > 480 & & X < 530) {}
newAngle = 90;             90 = servo in middenpositie
}
Als (X < 480) {}
newAngle = (kaart (X, 480, 155, 91, 150));
}
Als (X > 530) {}
newAngle = (kaart (X, 530, 815, 89, 30));
}

VOORWAARTSE KRACHT CONTROL... VROOOOMMMMMMM
// ---------------------------------------------------------------------
Als (Y > 550 & & Y < 635) {}
thrust.write(50);           neutrale positie--motor niet spinnen
telemetrie. S = 50;
}
Als (Y > = 635) {}
vel = (kaart (Y, 635, 925, 60, 90));
thrust.write(vel);
telemetrie. S = vel;
}

unsigned long currentMillis = millis();

Afgifte van roer herpositionering opdracht alleen indien gewenst
wijzigingen van de positie en (debouncing) interval is voorbij
Als (oldAngle! = newAngle & & currentMillis - previousMillis > interval) {}
previousMillis = currentMillis;
oldAngle = newAngle;
Rudder.write(newAngle);     servo naar positie in de variabele 'pos' vertellen
} / / sluit als millis-land (voor servo roer)


HANDVAT KNOOPPERSEN
// ------------------------------------------------------------------
currentMillis = millis();

Als (currentMillis - previousButtonMillis > binterval) {}

Druk op de knop voor instant MIN (geen) lift snelheid (geen throtle)
Als (package.buttons[0] == 1) {}
lift_ang = 50;
}
Druk op de knop voor de lift snelheid INCREMENT
Als (package.buttons[1] == 1) {}
Als (lift_ang < 120) {lift_ang += 5;}
}
pers voor instant (soort van) knop "stationaire safe" zweven
Als (package.buttons[2] == 1) {}
lift_ang = 90;
}
Druk op de knop voor de lift snelheid verlagen
Als (package.buttons[3] == 1) {}
Als (lift_ang > 50 & & lift_ang < = 115) {lift_ang-= 5;}
}

previousButtonMillis = currentMillis;

Lift.write(lift_ang);

} / / nauwe als "millis-land" (secundair test)--knoop millis debounce

/* ---------------------------------------------------------------------- */

Set telemetrie gegevens moeten worden verzonden
telemetrie. Z = lift_ang;
telemetrics.rudderAng = newAngle;

} / / sluiten van de verklaring van de "if(run)"
else {}
Serial.println ("geen radio beschikbaar");
emergencyStop();
}

VOOR het verzenden van telemetrie gebruik dit:

radio.stopListening();
BOOL ok = radio.write (& telemetrie, sizeof(telemetrics));
radio.startListening();

OF dit: (moet uncommenten variabelen previousTX & TXinterval
Als u deze optie gebruikt)

unsigned long currentMillis = millis();
//
Als (currentMillis - previousTX > TXinterval) {}
previousTX = currentMillis;
//
radio.stopListening();
BOOL ok = radio.write (& telemetrie, sizeof(telemetrics));
radio.startListening();
//  }

} / / Sluit het "loop"-blok

Bijkomende functies

VOID emergencyStop()
{
thrust.write(50);
Lift.write(50);
}

VOID armESC(Servo esc)
{
ESC.write(10);
delay(2000);
ESC.write(50);
delay(1000);
}

Gerelateerde Artikelen

Hoe maak je een aangepaste afstandsbediening auto

Hoe maak je een aangepaste afstandsbediening auto

In deze tutorial zal ik u tonen hoe te maken van een aanpasbare afstandsbediening auto uit vrij veel wat je wilt. Mij zal zitten using k-nex en sommige karton, maar u kunt ook Legos, 3d gedrukte onderdelen of een heleboel andere dingen.Stap 1: De ele
Maak je eigen aangepaste afstandsbediening voor uw project

Maak je eigen aangepaste afstandsbediening voor uw project

Ik heb een project dat een arduino gebruikt en een IR verwijderen bibliotheek om te controleren van een paar dingen.Dus in dit instructable ik laten zien hoe u een afstandsbediening aan uw op doel kunt hergebruiken.En u hoeft niets bijzonders te make
UFO-achtige Hovercraft met afstandsbediening

UFO-achtige Hovercraft met afstandsbediening

Als u besteden aan een mooi weekend staren naar het TV-scherm of surfen op het net, voelt u zich vervelen. Waarom niet Volg ons om te maken een geweldig UFO-achtige hovercraft!Korte introductie:De hovercraft introduceert luchtstroom onder het schip.
Een TV-afstandsbediening volledig hergebruiken!

Een TV-afstandsbediening volledig hergebruiken!

Er zijn vele manieren om "hack" een afstandsbediening.In dit Instructable zal ik u tonen hoe om een stapje verder een volledig kappen, redesign en hergebruiken van een afstandsbediening in enkele eenvoudige stappen.Voordat u probeert dit project
Arduino afstandsbediening minder $10

Arduino afstandsbediening minder $10

Gids voor je arduino gebruiken als een afstandsbediening met Easy Remote app.MaterialenArduino nano of een Arduino. op ebay staren $2,58Infrarood led 940nm ebay 10 x.99 centBluettoth module JY-MCU HC06 ebay $1.99Infrarood Reciver 2 x $1.99Gratis = ge
DIY iPhone controller voor Raspberry-Pi (OSC)

DIY iPhone controller voor Raspberry-Pi (OSC)

Om te beginnen met dit project wil ik uitleggen hoe dit alles zal werken. We zullen worden met behulp van een vorm van communicatie genoemd OSC (Open Sound Control) en een app genaamd "TouchOSC", die beschikbaar op de Google Play is en de Apple
Externe volumeregeling voor oude stereo versterker

Externe volumeregeling voor oude stereo versterker

Ik heb een oude Stereo versterker die ik heb op mijn woonkamer. Het werkt vrij goed, maar het is zo oud dat het niet over een afstandsbediening, waardoor het erg vervelend beschikken te gebruiken terwijl zittend op de Bank.Dus ik dit, een apparaat ma
Met behulp van uw Bluetooth ingeschakeld Sony Ericsson telefoon naar Control Your Computer

Met behulp van uw Bluetooth ingeschakeld Sony Ericsson telefoon naar Control Your Computer

ik heb gelezen op instructables voor een tijdje nu, en ik heb altijd al wilde doen sommige van de dingen dat de mensen hebben geschreven over, maar heb mezelf kijken naar dingen die moeilijk te doen omdat ze zijn echt moeilijk om te doen, of de dinge
Afstandsbediening Hovercraft Racing

Afstandsbediening Hovercraft Racing

• OverzichtDe reus, krachtige hovercraft in de film rood Bronx hebben ons enthousiast voor een lange tijd. Onlangs, onze universiteit gehouden een hovercraft competitie. Wij hebben een afstandsbediening hovercraft en won de eerste plaats in de tijdri
Afstandsbediening Hovercraft

Afstandsbediening Hovercraft

Ons product is een kleine afstandsbediening hovercraft die op het land functioneert. De hovercraft is snel, stabiel en makkelijk te controleren. De rok is het belangrijkste kenmerk. De rok kan verminderen de wrijving, waarmee de hovercraft een hoge s
Mijn aangepaste auto audiosysteem w / playstation 2 draadloze afstandsbediening, 7" inch LCD w / draadloze koptelefoon, LEDS, 5 Farad condensator

Mijn aangepaste auto audiosysteem w / playstation 2 draadloze afstandsbediening, 7" inch LCD w / draadloze koptelefoon, LEDS, 5 Farad condensator

dit is mijn aangepaste gemaakte car audio systeem ontworpen en gebouwd door mij.  Dit is een glasvezel Luidsprekerbox die ik met behulp van een houten frame en fleece materiaal, fiberglas risin gemaakt, lichaam vuller and alot of hard schuren. Ook we
Hovercraft - Bluetooth RC

Hovercraft - Bluetooth RC

Hovercraft zijn ook bekend als luchtkussen voertuigen. Drijvend op een kussen van lucht voorziet in de buurt van wrijving-minder verkeer, met name en vlakke, gladde oppervlakken. Besturingselement (of het gebrek daaraan) is niet zo verschillend van r
Zomer 2014 Hovercraft competitie Shane Group19

Zomer 2014 Hovercraft competitie Shane Group19

(1) Introductie van de UniversiteitShanghaiJiaoTong University(SJTU) is een top Universiteit in China. Engineering is een van de beste expertise in SJTU. Het Joint Institute is een beroemde Instituut SJTU, ook het Instituut heeft het winnen van een h
DIY LED Light - moderne Desktop Mood Lamp met afstandsbediening

DIY LED Light - moderne Desktop Mood Lamp met afstandsbediening

In dit artikel die zal ik gaan over het proces dat ik gebruikt om te bouwen vormige dit geweldige piramide LED Mood Lamp.Ik gebruikte esdoorn voor de hoofdstructuur en sommige mahonie body voor extra sterkte. Ik gebruikte voor de lichten RGB LED-lamp