Indholdsfortegnelse:
- Forbrugsvarer
- Trin 1: 3D -model
- Trin 2: 3D -udskrivning
- Trin 3: Forberedelse til samling: Tråde
- Trin 4: Forberedelse til samling: OLED -display
- Trin 5: Forberedelse til samling: Joysticks
- Trin 6: Forberedelse til samling: NRF24L01
- Trin 7: Forberedelse til samling: Potentiometre
- Trin 8: Forberedelse til samling: Afbrydere
- Trin 9: Forberedelse til montering: Lodd batterikassen til tænd / sluk-kontakten
- Trin 10: Forberedelse til samling: AMS1117 spændingsregulator
- Trin 11: Forbered Perf Board: Arduino og Pin Headers
- Trin 12: Forbered Perf Board: Pin Extensions
- Trin 13: Montering: Fastgør joysticks til basen
- Trin 14: Montering: Sæt potentiometre og OLED -displayet på potentiometerstativet
- Trin 15: Montering: Fastgør potentiometerstativet til joystickbasen
- Trin 16: Montering: Sæt NRF24L01 -kabinettet på potentiometerstativet
- Trin 17: Montering: Fastgør håndtagene til basen
- Trin 18: Montering: Sæt batteriet på basen
- Trin 19: Montering: Fastgør kontakterne til håndtagene
- Trin 20: Montering: Fastgør Perf Board -samlingen til joystickbasen
- Trin 21: Montering: Fastgør Perf Board til Perf Board Mount
- Trin 22: Arduino -forbindelser
- Trin 23: Senderkode
- Trin 24: Modtagerkode
- Trin 25: Konklusion
Video: 3D -printet Arduino -baseret RC -sender: 25 trin (med billeder)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:26
Dette projekt viser dig, hvordan jeg gik til at designe og bygge en Arduino -baseret RC -sender.
Mit mål for dette projekt var at designe en 3D -printbar RC -sender, som jeg kunne bruge til at styre andre Arduino -projekter. Jeg ville have controlleren til at være så permanent som muligt, men jeg ville også have muligheden for at skille den ad og redesigne dele af den. Dette projekt er resultatet af et par ugers hårdt arbejde.
Forbrugsvarer
For at bygge denne controller skal du:
- Analog joystick x2
- Analog potentiometer x2
- 128x32 0,91 tommer OLED -skærm x1
- Arduino Nano x1
- NRF24L01 modul med antenne x1
- 3 cm x 7 cm perfboard x1
- BRC 18650 3,7 v Li-ion batteri x2
- 2 -cellet 18650 batterihus x1
- AMS1117 3.3 spændingsregualtor x1
- 3 -position vippekontakt x1
- 2 -position vippekontakt x2
Yderligere varer:
- Flerfarvet standard 22 gauge wire
- Flerfarvet massiv kerne 22 gauge wire
- Male + Female Pin headers
- m3 pandehovedskruer og møtrikker (assorteret længde)
- m2 pandehovedskruer og møtrikker (assorteret længde)
- m2 standoffs (assorteret længde)
-
Adgang til:
- 3D printer
- Loddekolbe
Trin 1: 3D -model
Jeg begyndte med at modellere controlleren i en 3D -modelleringssoftware. Der var et par ting, jeg tog i betragtning under designprocessen:
- Min 3D -printer er relativt lille, så mine dele skulle samles efter udskrivningsprocessen. For at løse dette tilføjede jeg huller i hele designet til at fastgøre dele ved hjælp af m2 skruer.
- Jeg ville nemt omarrangere dele på mit design uden at skulle genudskrive, så jeg tilføjede huller med ensartet afstand, hvor delene ville blive forbundet for at give mulighed for design efter udskrivning.
- Jeg undgik helt overhæng i dette design, hvilket resulterede i udskrifter i høj kvalitet.
Denne model indeholder ikke alle de dele, der udgør senderen, men alle de dele, der kræves til 3D -print, er inkluderet. Du kan downloade STEP -filen til denne model ved at klikke på download herunder.
*Jeg inkluderede.stl -filen til nrf24 -kabinettet for dem, der havde problemer med at opdele den i tre separate dele.
Trin 2: 3D -udskrivning
Dette er et ret ligetil trin. Når alle delene er udskrevet, kan du begynde at forberede montering af delene.
Trin 3: Forberedelse til samling: Tråde
For at muliggøre ændringer i designet af dette projekt lodde jeg hanstifter til han i den ene ende af alle ledninger.
Trin 4: Forberedelse til samling: OLED -display
Inden du begynder at montere, skal du forberede et par af de elektroniske komponenter. Den første ting at gøre er loddekabler til hver af komponentens ben. (Det er lettere at bruge standardwiren i denne situation, fordi den er mere fleksibel og derfor lettere at samle.) Min OLED-skærm var uden pin-headers, så jeg lodde ledningerne direkte til breakout-kortet. Det gør dog ingen forskel vejr eller ikke lodder du til stifthovederne.
Trin 5: Forberedelse til samling: Joysticks
Det næste trin er at lodde ledninger til joysticks. I dette tilfælde lodde jeg ledningerne til stiftoverskrifterne af et par grunde:
- Hvis jeg havde fjernet stifthovederne og loddet til hullerne, havde jeg været nødt til at føre ledningerne gennem hullernes toppe, fordi det 3D -trykte beslag er direkte under joystickets udbrudskort.
- Siden jeg lodde til stifthovederne, falder ledningerne lige ned og gør transmitterens overside mere organiseret.
Jeg brugte de samme farver til de samme stifter på begge joysticks:
- Rød til VCC
- Sort til GND
- Blå til VRX
- Gul til VRY
- Grøn til SW
Dette gjorde det lettere, når ledningerne sluttes til de rigtige porte på Arduino.
Trin 6: Forberedelse til samling: NRF24L01
For NRF24L01 -modulet fjernede jeg stifthovederne og loddes direkte til hullerne for at få plads til perfboardet. Endnu en gang noterede jeg mig de farver, jeg brugte til hver pin til fremtidig reference.
Trin 7: Forberedelse til samling: Potentiometre
For potentiometre, loddetråd til hver af de tre ledninger. De to ydre ledninger er enten jordede eller vcc -stifter (det er ligegyldigt i hvilken rækkefølge), og den midterste ledning sendes. Jeg loddet en rød ledning og sort ledning til de to ydre ledninger og en hvid ledning til midterledningen for begge potentiometre.
Trin 8: Forberedelse til samling: Afbrydere
Tag kontakten med tre positioner og lod en ledning til hver af stifterne. Jeg brugte sort til midten og to andre farver til ydersiden, som jeg tog til efterretning til fremtidig reference.
På de to positionsafbrydere er der tre benhoveder. Du vil kun bruge to af disse. En sort ledning går i midten, og en anden ledning går på en af de to udvendige stiftoverskrifter. Vigtigt: Gør dette kun for en switch.
Den næste kontakt bruges som en tænd / sluk-kontakt. For nu skal du kun lodde en ledning til den centrale stift i denne tænd / sluk-kontakt.
Trin 9: Forberedelse til montering: Lodd batterikassen til tænd / sluk-kontakten
Lod den røde ledning på batterikassen til en af de udvendige ben på tænd / sluk-kontakten. Hvis du ikke allerede har gjort det, skal du lodde et stifthoved på den sorte ledning i batterikassen.
Trin 10: Forberedelse til samling: AMS1117 spændingsregulator
Til dette trin skal du bruge AMS1117 3,3 volt regulatoren. Her har jeg en fastgjort til et breakout -bord designet til NRF24L01, så jeg vil vise, hvordan du gennemfører dette trin ved hjælp af denne del. Hvis du bare har AMS1117 IC, er der masser af selvstudier derude, der kan hjælpe dig med ledningerne.
Det første, jeg gjorde, var at aflodde alle stifterne fra brættet. Jeg lod derefter en rød og sort ledning til de tilsvarende stifter.
I forlængelse af det ikke-permanente design tog jeg en række med to kvindelige pinhoveder og fastgjorde dem til VCC- og GND-portene, hvor NRF24L01-modulet ville sidde.
Når du har gjort dette, kan du gå videre til næste trin.
Trin 11: Forbered Perf Board: Arduino og Pin Headers
Den sidste ting at gøre før montering er at forberede perfboardet. For at gøre dette skal du bruge Arduino Nano, de solide kernetråde og hunstifterne.
Sørg for, at din Arduino Nano har pinhoveder, og fortsæt med at lodde den til perfboardet. Du vil gerne lægge det så langt til den ene side af brættet som muligt for at efterlade plads til tilslutningsudvidelser, men du vil også forlade en række på hver side af Arduino til lodning af de kvindelige stiftoverskrifter. Sørg for, at USB -stikket er så tæt på kanten af kortet som muligt. Mit 3 cm x 7 cm bord er 10 huller med 24 huller. Dette efterlod mig med to rækker til venstre side af Arduino, en række til højre side og omkring ni huller bag Arduino.
Tag derefter to rækker med femten kvindelige pinhoveder og lod dem ved siden af Arduino. Jeg brugte standard kvindelige pinhoveder, men jeg ville ønske, at jeg havde brugt stablingshoveder af denne grund:
Du bliver nødt til at forbinde ledningerne på stiftoverskrifterne til ledningerne på Arduino. Hvis du brugte standardstifthovederne, skal en loddebro oprette forbindelsen, hvilket er lidt kedeligt og tidskrævende. Hvis du brugte stakhovederne, kan du bøje ledningerne for at røre Arduino -ledningerne for at gøre loddeopgaven meget lettere
Uanset hvilken måde du vælger at gøre dette på, skal stifthovederne være tilsluttet Arduino stiftoverskrifterne.
Trin 12: Forbered Perf Board: Pin Extensions
Når du har Arduino og pinhoveder loddet til brættet, er det næste trin at forlænge 5v og jordstiftene til at rumme alle de elektriske komponenter.
Lod to rækker med 10 benhoveder på perfbrættet i den modsatte ende som Arduino med en række mellemrum mellem dem.
Tag et stykke solid kernetråd, og kør det fra 5V -stiften på Arduino til en række stifter. Afisoler isoleringen, så tråden er udsat, hvor den rører ledningerne på stiftoverskrifterne. Lod lodtråden på plads.
Gør det samme undtagen med GND -stiften på Arduino og den anden række af pinhoveder.
Når du har gjort dette, er senderen klar til at blive samlet.
Trin 13: Montering: Fastgør joysticks til basen
Til denne opgave skal du bruge otte m4 skruer og de tilhørende møtrikker sammen med et par skiver.
Placer møtrikkerne i de sekskantede huller i bunden af den 3D -trykte del vist ovenfor.
Skub en skive på hver skrue.
Skub fire m4 skruer ind i de fire huller på joystickets breakout board.
Skub joystick -offset 3D -printet del for at fungere som en standoff mellem breakout -kortet og joystick -holderen.
Skub joysticket med skruer på plads på bunden, og hold møtrikkerne i deres åbninger, mens du skruer skruerne fast.
Gentag dette trin for det andet joystick.
Trin 14: Montering: Sæt potentiometre og OLED -displayet på potentiometerstativet
Skub potentiometrene ind på deres steder på potentiometerstativet. Potentiometrene jeg er kommet med møtrikker til at stramme dem ned, og jeg brugte disse her til at holde potentiometrene på plads. For at stramme møtrikkerne inde i indsatsen brugte jeg en flad skruetrækker.
Før derefter OLED-skærmledningerne gennem åbningen på venstre side af potentiometerstativet. Spænd dækslet over skærmen med et par m2 skruer. Du skal muligvis tilføje et par skiver for at rumme skærmens fremspring.
Trin 15: Montering: Fastgør potentiometerstativet til joystickbasen
Tag potentiometerstativet, og fastgør det til joystickbasen ved hjælp af m2-skruer, så joystickets pin-headers vender væk fra stativet.
Trin 16: Montering: Sæt NRF24L01 -kabinettet på potentiometerstativet
NRF24L01 -kabinettet består af tre dele. Tag den første del, og før ledningerne på selve modulet gennem åbningen på bagsiden. Den forreste ende skal sidde i åbningen, og loddeledene, der stikker ud fra bagsiden af brættet, skal også sidde i deres respektive slot.
Tag hætten på kabinettet og sæt hullerne på linje, så den flade side af dækslet er fladt mod kabinettet. Skub to m2 skruer gennem hullerne, og monter denne samling gennem hullerne på potentiometerstativet. For at fuldføre dette trin stiller du hullerne på den anden hætte op med m2 -skruerne, så det lille parabolske fremspring på forsiden af delen sidder omkring cylinderen på NRF24L01 -modulet. Stram det med to møtrikker.
Trin 17: Montering: Fastgør håndtagene til basen
Tag begge håndtag og fastgør dem til basen ved hjælp af m2 skruer som vist på billederne ovenfor.
Trin 18: Montering: Sæt batteriet på basen
Fastgør batterikassen til batteriholderen med m3 skruer.
Fastgør batterifæstningen til basen med m2 skruer, så batterikassen åbner nedad.
Trin 19: Montering: Fastgør kontakterne til håndtagene
Til dette trin skal du bruge alle vippekontakterne. Begynd med vippekontakten med tre positioner.
Fjern låsen fra kontakten, og skub kontakten gennem det sekskantede hul på det højre håndtag. Det er ikke afgørende, hvor denne switch er placeret.
Tag vippekontakten med to positioner med to ledninger og skub den gennem et hul på venstre side af håndtaget og fastgør den på samme måde som den forrige kontakt.
Vælg et andet hul på venstre håndtag for at fastgøre den sidste to-position vippekontakt, som skal være tænd / sluk-kontakten.
Trin 20: Montering: Fastgør Perf Board -samlingen til joystickbasen
Brug m2 -skruer og m2 -afstandsstykker til at fastgøre perfboard -holderen til joystickbasen. Sørg for, at slidsen på perf board mount passer omkring NRF24L01 modulet. Endnu en gang skal du muligvis tilføje et par skiver mellem beslaget og basen for at tage højde for skruehovedets fremspring (du kan også bruge 3D -printet forskydning til dette). Du vil sikre dig, at du først glider de længere m2 -skruer gennem rørene på holderen, fordi du ikke kan gøre dette, når holderen er fastgjort.
Trin 21: Montering: Fastgør Perf Board til Perf Board Mount
Brug m2 -skruer til at fastgøre perfboard -holderen til perfboardet, så Arduino- og pinhovederne vender væk fra holderen. Længden af dine ledninger kan køre i den retning, USB -porten på Arduino peger.
Trin 22: Arduino -forbindelser
At vælge dette design af sender resulterer i en tilsyneladende uorganiseret underside. For at få dette til at virke som en mindre overvældende opgave, fokuserede jeg på en type forbindelse ad gangen. For eksempel begyndte jeg med at forbinde alle GND -ledningerne til den udvidede række til GND på perf -kortet. Her er forbindelserne:
Digitale pins:
D4 - Joystick1 Sw
D5 - Joystick2 Sw
D6 - Ydre pin af 2 position vippekontakt
D7 - Udvendig pin af 3 -position vippekontakt
D8 - Anden udvendig pin med 3 -position vippekontakt
D9 - CE Pin af NRF24L01
D10 - CSN Pin af NRF24L01
D11 - MOSI Pin af NRF24L01
D12 - MISC Pin af NRF24L01
D13 - SCK Pin af NRF24L01
*Bemærk: Det er her farvekodning af dine ledninger vil være praktisk. NRF24L01 -kabinettet begrænser dit syn på pin -navnene. Når du farvekoder ledningerne, kan du fortælle, hvilken pin der er, uden større indsats, hvilket gør det meget lettere at forbinde ledningerne til Arduino.
Analoge stifter:
A0 - Potentiometerets midterstift 1
A1 - Potentiometerets midterstift 2
A2 - Joystick2 VRX Pin
A3 - Joystick2 VRY Pin
A4 - OLED SDA (DATA) Pin
A5 - OLED SCL (CLOCK) Pin
A6 - Joystick1 VRY Pin
A7 - Joystick1 VRX Pin
Spændingsregulator (AMS1117):
Tilslut jordstiftet på NRF24L01 -modulet til jordstiftet på spændingsregulatoren. Tilslut 3,3 volt stiften på NRF24L01 til spændingsregulatoren.
Stifter til jordforlængere (Tilslut alle disse ben til jordstifterne):
- Center Pin på 2 Position vippekontakt
- Center Pin på 3 Position vippekontakt
- Joystick1 GND Pin
- Joystick2 GND Pin
- Potentiometer 1 højre ben
- Potentiometer 2 højre ben
- OLED GND Pin
- GND for batterikasse
- GND Pin på spændingsregulator
5v Pin Extension Pin Headers (Tilslut alle disse pins til VCC pin headers):
- Joystick1 5v pin
- Joystick2 5v pin
- Potentiometer 1 venstre nål
- Potentiometer 2 venstre ben
- OLED VCC pin
- VCC Pin på spændingsregulator
Andre forbindelser:
Den sidste komponent, der skal tilsluttes, er tænd / sluk-kontakten. En afledning på kontakten skal tilsluttes den positive terminal på batterikassen. Midterstiften forbindes til VIN -stiften på Arduino.
Trin 23: Senderkode
Det sidste trin til denne controller er koden. Jeg vil give en lille forklaring på denne kode, men hvis du gerne vil have en mere dybdegående forklaring på, hvordan NRF24l01-modulet fungerer og bruges, kan du besøge dette websted:
Arduino trådløs kommunikation - NRF24L01 Tutorial
#omfatte
#include #include #include #include #include #include #include #include #include #define SCREEN_WIDTH 128 // OLED display width, in pixels #define SCREEN_HEIGHT 32 // OLED display height, in pixels Adafruit_SSD1306 display (SCREEN_WIDTH, SCREEN_HEIGHT, & Wire, -1); RF24 radio (9, 10); const byte adresse [6] = "00001"; int data [11]; const int onevrx = 7; // variabel til VRX på joystick 1 const int onevry = 6; // variabel til VRY på joystick 1 const int twovrx = 2; // variabel til VRX på joystick 2 const int twovry = 3; // variabel til VRY på joystick 2 const int pot0Pin = 0; // variabel for pot 1 const int pot1Pin = 1; // variabel for pot 2 const int ASwitch = 6; // variabel til to -position vippekontakt const int BSwitch1 = 8; // variabel for position en af tre positions vippekontakter const int BSwitch2 = 7; // variabel for position tre af tre positions vippekontakter const int CButton = 2; // variabel til valgfri trykknap 1 const int DButton = 3; // variabel til valgfri trykknap 2 int oneX; int oneY; int twoX; int toY; int pot0; int pot1; ugyldig opsætning () {Serial.begin (9600); radio.begin (); radio.openWritingPipe (adresse); radio.setPALevel (RF24_PA_MIN); radio.stopListening (); pinMode (ASwitch, INPUT_PULLUP); // indstil APin til output mode pinMode (BSwitch1, INPUT_PULLUP); // indstil BPin til output mode pinMode (BSwitch2, INPUT_PULLUP); // indstil CPin til output mode pinMode (CButton, INPUT_PULLUP); // indstil DPin til output mode pinMode (DButton, INPUT_PULLUP); display.begynder (SSD1306_SWITCHCAPVCC, 0x3C); forsinkelse (1000); display.clearDisplay (); display.setTextSize (.25); display.setTextColor (HVID); display.setCursor (0, 0); display.print ("Tænd"); display.display (); forsinkelse (10); } void loop () {oneX = analogRead (onevrx); oneY = analogRead (onevry); twoX = analogRead (twovrx); twoY = analogRead (to); pot0 = analogRead (pot0Pin); pot1 = analogRead (pot1Pin); data [0] = oneX; data [1] = oneY; data [2] = toX; data [3] = toY; data [4] = pot0; data [5] = pot1; data [6] = digitalRead (ASwitch); data [7] = digitalRead (BSwitch1); data [8] = digitalRead (BSwitch2); data [9] = digitalRead (CButton); data [10] = digitalRead (DButton); radio.write (& data, sizeof (data)); // sende data til modtagerforsinkelsen (100); display.clearDisplay (); display.setTextSize (.25); display.setTextColor (HVID); display.setCursor (5, 5); display.println (data [4]); display.print ("Modtagelse af strøm"); // tilføj yderligere oplysninger, du gerne vil have vist på OLED -displayet her. display (); }
Trin 24: Modtagerkode
#omfatte
#include #include RF24 radio (9, 10); // cns, ce // definer objektet til kontrol af NRF24L01 const byte adresse [6] = "00001"; // definere kommunikationsadressen, der skal svare til senderens int -data [11] = {512, 512, 512, 512, 512, 512, 0, 0, 0, 0, 0}; // definere array, der bruges til at gemme kommunikationsdataens hulrumsopsætning () {radio.begin (); radio.openReadingPipe (0, adresse); radio.setPALevel (RF24_PA_MIN); radio.startListening (); // indstillet som modtager Serial.begin (9600); } void loop () {if (radio.available ()) {radio.read (& data, sizeof (data)); // udskrivning af et par datapunkter fra controlleren til den serielle skærm Serial.print (data [0]); Serial.print ("\ t / t"); Serial.print (data [1]); Serial.print ("\ t / t"); Serial.print (data [2]); Serial.print ("\ t / t"); Serial.print (data [3]); Serial.println (""); } // Igen er dette kun basiskodeksemplet for modtagermodulet.
Trin 25: Konklusion
Du kan styre stort set ethvert Arduino -projekt med denne controller, og dens design giver mulighed for endnu mere ændring. Du kan beslutte, at du vil have to ekstra potentiometre i stedet for et OLED -display (Hvis du gerne vil have STEP -filen på et 4 potentiometerstativ, kan jeg sende det til dig. Bare kom med en kommentar med anmodningen). Eller måske ønsker du at tilføje et par trykknapper til designet. Det er helt op til dig.
Hvis du har spørgsmål, kommentarer eller bekymringer, tøv ikke med at spørge.
Tak fordi du tog dig tid til at læse disse 24 trin igennem. Jeg håber, at du var i stand til at lære noget eller få et par nye ideer om, hvad der kan opnås med en 3D -printer og en Arduino.
Runner Up i Arduino Contest 2020
Anbefalede:
Sådan gør du: Installation af Raspberry PI 4 Headless (VNC) med Rpi-imager og billeder: 7 trin (med billeder)
Sådan gør du: Installation af Raspberry PI 4 Headless (VNC) med Rpi-imager og billeder: Jeg planlægger at bruge denne Rapsberry PI i en masse sjove projekter tilbage i min blog. Tjek det gerne ud. Jeg ville tilbage til at bruge min Raspberry PI, men jeg havde ikke et tastatur eller en mus på min nye placering. Det var et stykke tid siden jeg konfigurerede en hindbær
Arduino Halloween Edition - Pop -out -skærm med zombier (trin med billeder): 6 trin
Arduino Halloween Edition - Zombies Pop -out -skærm (trin med billeder): Vil du skræmme dine venner og lave skrigende støj i Halloween? Eller vil du bare lave en god sjov? Denne pop-out-skærm fra Zombies kan gøre det! I denne Instructable vil jeg lære dig, hvordan du nemt laver jump-out zombier ved hjælp af Arduino. HC-SR0
Shadow Light Box - Styring med IR -fjernbetjening med Arduino: 8 trin (med billeder)
Shadow Light Box - Styring med IR -fjernbetjening med Arduino: Denne instruktion vil guide dig til, hvordan du laver skygge -lysboks til næste jul. Du kan lave det selv til at dekorere dit værelse eller gøre det til din ven som en gave. Denne skyggeæske kan lave forskellige slags farver ved at blande farve med rød, blå, grøn farve
Sådan adskilles en computer med nemme trin og billeder: 13 trin (med billeder)
Sådan adskilles en computer med nemme trin og billeder: Dette er en instruktion om, hvordan du adskiller en pc. De fleste af de grundlæggende komponenter er modulopbyggede og nemme at fjerne. Det er dog vigtigt, at du er organiseret omkring det. Dette hjælper med at forhindre dig i at miste dele og også ved at lave genmonteringen til
Sådan styrer du husholdningsapparater med fjernsyn med fjernbetjening med timerfunktion: 7 trin (med billeder)
Sådan styrer du husholdningsapparater med fjernsyn med fjernbetjening med timerfunktion: Selv efter 25 års introduktion til forbrugermarkedet er infrarød kommunikation stadig meget relevant i de seneste dage. Uanset om det er dit 55 tommer 4K -fjernsyn eller dit billydsystem, har alt brug for en IR -fjernbetjening for at reagere på vores