Innehållsförteckning:
Video: UChip - Enkel skiss till fjärrkontrollmotorer och/eller servon via 2,4 GHz radio Tx -Rx !: 3 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:41
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
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
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
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:
Komma igång med STM32f767zi Cube IDE och ladda upp din anpassade skiss: 3 steg
Komma igång med STM32f767zi Cube IDE och ladda upp din anpassade skiss: KÖP (klicka på testet för att köpa/besöka webbsidan) STM32F767ZISUPPORTED SOFTWARE · STM32CUBE IDE · KEIL MDK ARM µVISION · EWARM IAR EMBEDDED WORKBENCH · ARDUIN finns tillgänglig används för att programmera STM -mikrokontroller
Hur man skapar och infogar en tabell och lägger till ytterligare kolumner och/eller rader till den tabellen i Microsoft Office Word 2007: 11 steg
Hur man skapar och infogar en tabell och lägger till ytterligare kolumner och/eller rader till den tabellen i Microsoft Office Word 2007: Har du någonsin haft mycket data du arbetar med och tänkt för dig själv … " hur kan jag göra allt av dessa data ser bättre ut och blir lättare att förstå? " Om så är fallet kan en tabell i Microsoft Office Word 2007 vara ditt svar
Lägga till WiFi AutoConnect -funktionen i en befintlig skiss: 3 steg
Lägga till WiFi AutoConnect -funktionen i en befintlig skiss: I ett nyligen inlägg lärde vi oss om AutoConnect -funktionen för ESP32/ESP8266 -korten och en av frågorna var om att lägga till den i befintliga skisser. I det här inlägget kommer vi att lära oss hur man gör just det och vi kommer att använda nätverkets tidsprojekt
Lägg till ljus och skrämmande musik till din Jack-O-Lantern-ingen lödning eller programmering (om du inte vill): 9 steg (med bilder)
Lägg till ljus och skrämmande musik till din Jack-O-Lantern-ingen lödning eller programmering (såvida du inte vill): Ha den läskigaste Jack-O-Lantern på din gata genom att lägga till glödande ljus och spöklik musik! Detta är också ett bra sätt att testa Arduino och programmerbar elektronik eftersom hela projektet kan slutföras utan att skriva kod eller lödning
Styr upp till 4 servon med en smartphone eller vilken enhet som helst med ljudutgång: 3 steg
Styr upp till 4 servo med en smartphone eller vilken enhet som helst med en ljudutgång: Här presenterar jag en enkel elektronisk montage för att styra upp till fyra servon med vilken enhet som helst som kan läsa en ljudfil