RC svävare + Customized fjärrkontroll (6 / 8 steg)

Steg 6: Mottagaren



Mottagaren som jag har gjort är i grunden en anpassad * duino styrelse med bekvämligheten att ha en ON/OFF switch och ett huvud för nRF24L01 + radio-modulen.

Så jag råder att få en Arduino (eller kompatibel board) och en bara ansluta andra nRF24l01 + radio-modul för att det är respektive behövs stiften.

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

Dessutom måste du ansluta stift CE och CSN (från radio-modulen) till några gratis pins som du väljer på Arduino (eller kompatibel) styrelse. Standard i den kod som kommer att följa är stift 9 och 10 respektive.

Eftersom modulen radio behöver makt också måste du ansluta GND och 3,3 v volt stiften.

Varning: det är mycket viktigt att du makt RADIO modulen med 3.3V annars du ska Rosta det.

Du bör ladda upp en modifierad version av koden nedan till mottagaren styrelsen. Du behöver bara ändra pin tilldelningar om du använt olika stift, och framför allt kommer förmodligen måste du ändra ESK beväpna kod. Om du inte har arbete med Arduino + ESC innan jag starkt rekommenderar att du testar dem fristående, varierar beväpna från ESC till ESC. Koden nedan fungerar bra för två mysterium varumärke ekonomiska fått för 30A. Du kan behöva undersöka några längder om hur man korrekt arm dem för andra ekonomiska och sociala råden.

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

/ *---RESER DATA STRUCTS---* /

kommandon går inuti
TypeDef struct {
int X;
int Y;
booleska knappar [4].
}
Nyttolast;

feedback går inuti
TypeDef struct {
int rudderAng;
int Z;
int S;
}
Feedback;

/ *---DEBOUNCING VARIABLER---* /

lång previousMillis = 0; timer för servo
lång previousButtonMillis = 0; timer för knappar
lång previousTX = 0; timer för överföringar
lång TXinterval = 25; intervall för att överföra telemetri
CONST int intervall = 30. intervall för att uppdatera servo
CONST int binterval = 70. intervall för debouncing
CONST int TX_timeout = 100; Remote - craft länka timeout

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

Servo dragkraft;
Servo hiss.

Nyttolast paketet;
Feedback telemetrics;

Servo roder;

int oldAngle, newAngle = 0; servo positioner

int lift_ang; lyfta motor pseudo-"kantiga" velocity

int vel; dragkraft pseudo-"kantiga" velocity

Boolean kör = false;

RF24 radio (9, 10);

CONST uint64_t rör [2] = {
0xF0F0F0F0E1LL, 0xF0F0F0F0D2LL};

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

/ * KONFIGURERA NODEN MOTTAGARE * /

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

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

Rudder.attach(7);

Det är viktigt att beväpna
VARJE ESC sekventiellt
Lift.attach(5);
armESC(lift);
lift_ang = 50;

Delay(100);

Thrust.attach(6);
armESC(thrust);
Vel = 50;
}

void loop(void)
{

osignerade långa started_waiting_at = millis();
booleska timeout = false;
medan (! radio.available() & &! timeout)
om (millis() - started_waiting_at > TX_timeout)
timeout = sant;

om (timeout) {
Serial.println ("misslyckades, svar timeout.");
köra = false;
}
annat {
radio.Read (& paketet, sizeof(package));
köra = sant;
}

om TX-RX länk (alive) sedan...
IF(Run)
{

/ *---KÖRA MOTTAGNA KOMMANDON---* /

int X = paketet. X;
int Y = paketet. Y;

RODRET KONTROLL
// ------------------------------------------------------------
om (X > 480 & & X < 530) {
newAngle = 90. 90 = servo i mittläget
}
om (X < 480) {
newAngle = (karta (X, 480, 155, 91, 150));
}
om (X > 530) {
newAngle = (karta (X, 530, 815, 89, 30));
}

FRAMÅT FRAMSTÖTEN KONTROLL... VROOOOMMMMMMM
// ---------------------------------------------------------------------
om (Y > 550 & & Y < 635) {
Thrust.write(50); neutralläge--motor inte snurrar
telemetrics. S = 50;
}
om (Y > = 635) {
Vel = (karta (Y, 635, 925, 60, 90));
Thrust.write(Vel);
telemetrics. S = vel;
}

osignerade långa currentMillis = millis();

Utfärda roder ompositionering kommandot endast om så önskas
Utmatningspositionen ändras och (debouncing) intervall är över
om (oldAngle! = newAngle & & currentMillis - previousMillis > intervall) {
previousMillis = currentMillis;
oldAngle = newAngle;
Rudder.write(newAngle); berätta servo gå för att placera i variabel "pos"
} / / nära om millis-land (för roder servo)

HANTERA KNAPPTRYCKNINGAR
// ------------------------------------------------------------------
currentMillis = millis();

om (currentMillis - previousButtonMillis > binterval) {

Tryck på knapp för omedelbar MIN (ingen) lyft hastighet (ingen throtle)
om (package.buttons[0] == 1) {
lift_ang = 50;
}
Tryck på knapp för lift hastighet öka
om (package.buttons[1] == 1) {
om (lift_ang < 120) {lift_ang += 5.}
}
knapp pressa för omedelbar (typ av) "stationära safe" svävar
om (package.buttons[2] == 1) {
lift_ang = 90.
}
Tryck på knapp för lift hastighet DEKREMENT
om (package.buttons[3] == 1) {
om (lift_ang > 50 & & lift_ang < = 115) {lift_ang-= 5.}
}

previousButtonMillis = currentMillis;

Lift.write(lift_ang);

} / / nära om "millis-land" (sekundär test)--knappen millis Dämpningstid

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

Ställ in telemetridata att skicka
telemetrics. Z = lift_ang;
telemetrics.rudderAng = newAngle;

} / / nära "if(run)" uttalande
annat {
Serial.println ("ingen radio tillgängliga");
emergencyStop();
}

För att överföra använda TELEMETRICS detta:

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

ELLER den här: (måste avkommentera variabler previousTX & TXinterval
Om du använder detta alternativ)

osignerade långa currentMillis = millis();
//
om (currentMillis - previousTX > TXinterval) {
previousTX = currentMillis;
//
radio.stopListening();
bool ok = radio.write (& telemetrics, sizeof(telemetrics));
radio.startListening();
// }

} / / nära blocket "loop()"

Tillbehör funktioner

void emergencyStop()
{
Thrust.write(50);
Lift.write(50);
}

void armESC(Servo esc)
{
ESC.write(10);
Delay(2000);
ESC.write(50);
Delay(1000);
}

Se Steg
Relaterade Ämnen

Hur man gör en Customized fjärrkontroll bil

i denna tutorial kommer jag visa dig hur man gör en anpassningsbar fjärrkontroll bil ur ganska mycket vad du vill. Jag kommer att använda k-nex och vissa kartong men du kan också använda Legos, 3d tryckta delar eller en massa andra saker.Steg 1: Få i...

Tube Power Supply

en vad?! Är inte en "power supply" att diverse bit av ett projekt som du ignorerar tills du inte längre kan sedan patch det tillsammans så snabbt som möjligt så du kan få tillbaka till roligt delar? Och en strömförsörjning för rör? Detta motsvar...

Tricorder/konsolen!

Som jag är abscessed med Star Trek beslutat att göra en Star Trek baserade Arduino projekt. Jag gick ut först och började bygga en "Tricorder". En "Tricorder" är den små sensoriska handdatorn som Star Trek besättningen använder. Jag kö...

Kartong i telefon fall

allt du behöver är kort ombord (jag använde baksidan av en gammal bärbar dator) sax och en penna. spåra din i telefon spåra kanterna en gång och utöka en fri hand flik något. spåra de övre och nedre kanterna två gånger så det kan vika över fliken och...

Återvunna kartong i telefon fall

allt du behöver är kort ombord (jag använde en bit av en gammal bärbar dator) sax och en pennaSteg 1: spår din i telefon spåra kanterna en gång och utöka en fri hand flik något. spåra de övre och nedre kanterna två gånger så det kan vika över fliken...

SUPER-STARR, nästa generationens rymdfarkoster

detta är ett koncept för en nästa generation rymdfarkost. Dess namn härstammar från dess syfte, kommer det att kunna gå bortom stjärnorna, den andra "r" i ordet stjärnorna påbörjade från kometen Pan-Starrs. Rymdfarkosten körs på solenergi att dr...

En snabb Presentation fjärrkontroll

jag ibland ge presentationer från min laptop. När jag gör vill jag flytta när jag talar.Detta trick kan rädda dagen om du glömmer din fancy presentation fjärrkontroll. I stället använda en extern mus som fjärrkontroll.Steg 1: Anslut musen till Laptop...

Vara din egen grafisk formgivare

Denna tutorial undervisar dig hur man kan vara din egen grafisk formgivareEnkelt och professionelltAnvänd din kreativitet, din äga dopfunten, egna bilder, etcAllt du behöver är din dator (mac eller pc) och massor av ambition!Steg 1: programvaraDu beh...

CUSTOMIZED desktopen bakgrunden för strömlinjeformad dator

I denna tutorial ska vi att utforma en customized desktopen bakgrunden att effektivisera datoranvändning. Denna bakgrund lägger till etiketter för program på skrivbordet, så att användaren vet exakt vilka som ska klicka för att göra vad.Känn dig fri...

Verkliga Hoverboard svävare

Trött på fjärrkontroll modell svävare hur-till? Vill du ha en som du och dina vänner kan faktiskt glida över marken i stil utan att spendera en förmögenhet på ett kit? Väl här gå du!Detta är vår hemgjorda, fullt fungerande, rideable hoverboard! Vi ha...

Fjärrstyrda Racing svävare

• ÖversiktJätte, kraftfull svävare i filmen Red Bronx har glada oss länge. Vårt universitet höll nyligen, en svävare tävling. Vi gjorde en fjärrkontroll svävare och vann första plats i Time Trial. Vår svävare är stabil men flexibel, med låg kostnad o...

Custom etsade gåvor!

För vår semester i år, vi beslutat att ge personliga presenter. Använda vinyl stenciler och en sandblaster, kunde vi uppnå en fin, permanent anpassning till flera olika ytor. Låt oss ta en titt på hur det görs, och då ska jag visa dig några av de gåv...

Fotmanövrerad fjärrkontroll för minidisc spelare

göra en fotmanövrerad fjärrkontroll för din HHB Portadisc MDP500 minidisc spelare. Jag använder detta i min dockteater som jag vanligtvis använder två handske marionetter och har ännu inte prova växer en tredje hand.HHB Portadisc kommer med en "avläg...

Hur att aldrig förlora din TV-fjärrkontroll, även om du har barn.

Detta instructable förhoppningsvis visar dig hur du håller din fjärrkontroll exakt där du vill det;Jag har ingen kamera, och detta är min allra första instructable så förbarma.Jag hoppas du njuter denna lil' valp.Steg 1: först och främstförst av allt...

IR fjärrkontroll multidrop extender

Detta projekt kom på grund av mitt folks kabel företag byter över till alla digitala. Som de flesta folk de hade ersätta deras TV med digital redo LCD-skärmar med åren så inte räkna detta skulle vara en stor fråga. MEN... fast företagets digitala sys...

E-avfall återvinns fjärrkontroll bil

Vi gör dessa hemmafixare återvunnet material kit. De är somåtervunnet maker kit som är roliga projekt att människor gör som vanligt har teknik och Light Emitting Diods (LED) med satsen. Läs mer på www.gejcutie.wix.com/remakers.Det här är instruktione...

Korrekt flytande nivå Controller med låg kostnad sensor och TV: ns fjärrkontroll för inställningar

Detta är den min första personal Arduino projekt. Även genom planerar jag att automatisera våra över tank vattennivå jag inte gillar att investera mer pengar på instrument. Jag har några Arduino ombord och relay styrelser från mina vänner. Så använd...

Tippmann 98 Custom vänster Handed laddning handtag

för detta mod, bytte min Tippmann 98 Custom laddning handtag från vänster sida av markören till höger. Detta beror på att som en vänsterhänt spelare bör jag styra laddningen handtaget med min högra hand, inte min vänstra. Denna mod var extremt enkel...

Tippmann 98 Custom: Polering Internals

en sammanfattning om hur polska inre mekanismen av Tippmann 98 Custom paintball markör.Varning: Jag är inte att hållas ansvarig för eventuella skador på din markör eller någon annan markör denna metod eller någon liknande metod används på. (Även om j...