Innehållsförteckning:

UChip - Enkel skiss till fjärrkontrollmotorer och/eller servon via 2,4 GHz radio Tx -Rx !: 3 steg
UChip - Enkel skiss till fjärrkontrollmotorer och/eller servon via 2,4 GHz radio Tx -Rx !: 3 steg

Video: UChip - Enkel skiss till fjärrkontrollmotorer och/eller servon via 2,4 GHz radio Tx -Rx !: 3 steg

Video: UChip - Enkel skiss till fjärrkontrollmotorer och/eller servon via 2,4 GHz radio Tx -Rx !: 3 steg
Video: 56-футовый тур на яхте за 385 000 долларов / НЕ можете позволить себе дом в МАЙАМИ? Вы можете жить 2024, November
Anonim
Image
Image
UChip - Enkel skiss till fjärrkontrollmotorer och/eller servon via 2,4 GHz radio Tx -Rx!
UChip - Enkel skiss till fjärrkontrollmotorer och/eller servon via 2,4 GHz radio Tx -Rx!
UChip - Enkel skiss till fjärrkontrollmotorer och/eller servon via 2,4 GHz radio Tx -Rx!
UChip - Enkel skiss till fjärrkontrollmotorer och/eller servon via 2,4 GHz radio Tx -Rx!

Jag gillar verkligen RC -världen. Att använda en RC -leksak ger dig en känsla av att du har kontroll över något extraordinärt, trots att det är en liten båt, bil eller drönare!

Det är dock inte lätt att anpassa dina leksaker och få dem att göra vad du vill att de ska göra. Vanligtvis är du tvungen att använda standardsändarinställningarna eller de speciellt utformade kombinationerna av omkopplare och rattar.

Att styra allt som du verkligen vill är ganska svårt, främst för att RC-världen kräver ganska djup kunskap om hårdvarunivåprogrammering för att få ut det bästa av det.

Jag försökte många plattformar och inställningar, men det kostade alltid en enorm ansträngning för att bli tillräckligt bekväm med koden innan jag gjorde någon riktig anpassning till min RC -leksak.

Vad jag saknade är en enkel skiss som jag kunde ladda med Arduino IDE och som lätt skulle göra det möjligt för mig att översätta värdena som kommer ut från Radio RX (mottagare) till önskad Motor/Servo -kontroll.

Därför är det här jag skapade efter att ha spelat lite med uChip och Arduino IDE: En enkel skiss till fjärrkontroll av motorer och/eller servon via 2,4 GHz radio Tx-Rx!

Materialförteckning

1 x uChip: Arduino IDE -kompatibelt kort

1 xTx-Rx radiosystem: alla radiosystem med cPPM-mottagare är bra (min kombination är en gammal Spectrum DX7 Tx + Orange R614XN cPPM Rx), se till att du följer rätt bindningsprocedur för att binda Tx och Rx.

1 x batteri: batterier med hög urladdning är nödvändiga när det gäller motorer och servon.

Motorer/servon: i enlighet med dina behov

Elektroniska komponenter för att driva motorer/servon: enkla motstånd, MOSFETs och dioder gör att du kan uppnå körsyftet.

Steg 1: Kabeldragning

Kabeldragning
Kabeldragning
Kabeldragning
Kabeldragning
Kabeldragning
Kabeldragning
Kabeldragning
Kabeldragning

Koppla ihop komponenterna enligt beskrivningen i schemat.

Rx är direkt ansluten till uChip och kräver inga externa komponenter. Om du använder en annan mottagare, kontrollera om du behöver en nivåväxel eller inte. Var noga med att ansluta cPPM -signalen till uChip PIN_9 (vilket är PORTA19 om du vill anpassa koden till ett annat SAMD21 -kort).

Resterande ledningar är nödvändiga för att driva motorn och/eller servon. Den bifogade schemat visar den grundläggande kretsen för att skydda uChip mot spikar/överskjutningar som vanligtvis uppstår vid körning av induktiva laster. Nyckelkomponenten för att bevara uChip -säkerheten är Zener -strömdioden på 5,1 V (D1 i schemat) som du måste placera parallellt med VEXT (uChip pin 16) och GND (uChip pin 8). Alternativt kan du istället för att använda Zener -dioden välja den valfria kretsen som representeras av D2, C1 och C2, vilket förhindrar omvända spikar för att skada uChip -komponenter.

Du kan köra så många motorer/servon du behöver genom att helt enkelt replikera schemat och ändra kontrollpinnarna (du kan använda valfri stift förutom strömstiften (PIN_8 och PIN_16) och cPPM -stiftet (PIN_9)). Tänk på att även om du bara behöver en skyddskrets som representeras av zener -dioden (eller komponenterna för den valfria kretsen), måste de elektriska komponenterna relaterade till motor-/servokörningen replikeras lika många gånger som antalet motorer/ servon du tänker köra.

Eftersom jag ville köra minst 2 motorer och 2 servon gjorde jag en liten kretskort som implementerade den beskrivna kretsen och som du kan se på bilden. Den första prototypen gjordes dock på ett proto-board med flygande trådar.

Därför behöver du ingen lödning/PCB -design för att genomföra detta enkla projekt:)

Steg 2: Programmering

Programmering
Programmering

Här är magin! Det är här saker blir intressanta.

Om du byggde kretsen som beskrivs i föregående schemat kan du helt enkelt ladda skissen "DriveMotorAndServo.ino" och allt ska fungera.

Ta en titt på koden och kolla hur den fungerar.

I början finns det få #define som används för att definiera:

- nummerkanalerna för Rx (6Ch med Orange 614XN)

- stiften där motorer/servon är anslutna

- Max och min används för servon och motorerna

- Max och min används för radiokanalernas räckvidd

Sedan finns det avsnittet om deklaration av variabler där motorer/servos variabler deklareras.

Om du kör mer än en motor och en servo ansluten enligt beskrivningen i föregående schema måste du ändra skissen och lägga till koden som hanterar de extra motorer/servon du bifogade. Du måste lägga till så många Servo, servo_value och motor_value som många servon/motorer du använder.

Inom variabeldeklarationssektionen finns det också några flyktiga variabler som används för Capture Compare av cPPM -signalen. ÄNDRA INTE DENNA VARIABLAR!

Vad du behöver göra sedan är i loop () -funktionen. Här kan du bestämma vad du vill använda värdet för inkommande kanaler.

I mitt fall kopplade jag det inkommande värdet direkt till motorn och servon, men du är mer än välkommen att ändra det efter dina behov! I videon och bilderna som är länkade i denna handledning anslöt jag 2 motorer och 2 servon, men det kan finnas 3, 4, 5, … upp till maximalt tillgängliga lediga stift (13 vid uChip).

Du kan hitta det fångade kanalvärdet i ch [index] -matrisen, vars "index" går från 0 till NUM_CH - 1. Varje kanal motsvarar en stick/switch/knopp på din radio. Det är upp till dig att förstå vad-är-vad:)

Slutligen implementerade jag några felsökningsfunktioner för att göra det lättare att förstå vad som händer. Kommentera/avmarkera #define DEBUG för att skriva ut på den inbyggda SerialUSB -kanalens värde.

TIPS: Det finns mer kod under loop () -funktionen. Denna del av koden är nödvändig för att ställa in uChip -strömstiften, hantera avbrotten som genereras av funktionen för att jämföra fångst, ställa in timers och felsökningsändamål. Om du känner dig modig nog att leka med register, kan du ändra det!

Edit: Uppdaterad skiss, fixat ett fel i kartfunktionen.

Steg 3: Spela, kör, tävla, flyga

Image
Image

Se till att du ansluter Tx- och Rx -systemet korrekt. Slå på den när du ansluter batteriet. Kontrollera att allt fungerar. Du kan utöka funktionerna eller ändra funktionen för varje kanal som du vill, för nu har du full kontroll över din framtida RC -modell.

Bygg nu din anpassade RC -modell!

PS: eftersom bindning kan vara ganska tråkigt att göra, planerar jag att snart släppa en skiss som gör det möjligt att binda ditt Tx-Rx-system utan att behöva göra det manuellt. Håll utkik efter uppdateringar!

Rekommenderad: