- Komponenter, der kræves til Arduino RC-båd
- 433MHz RF-sender- og modtagermoduler
- 433MHZ RF-sender
- Blokdiagram over Arduino RC bådtransmitter
- Kredsløbsdiagram over Arduino RC fjernbetjening (sender)
- Opbygning af RC BOAT Transmitter Circuit
- Opbygning af Arduino RC bådtransmitter kabinet
- 433Mhz modtagermodul
- Blokdiagram over Arduino RC Boat Receiver
- Kredsløbsdiagram over Arduino RC bådmodtager
- Opbygning af modtager kredsløb af Arduino RC Boat
- Opbygning af RC-BOAT
- Motorer og propeller til Arduino Air Boat
- Arbejde med Arduino RC Boat
- Arduino-programmering af RC-båden
I dette projekt bygger vi en fjernstyret Arduino Air-Boat, der kan styres trådløst ved hjælp af 433 MHz RF-radiomodulerne. Vi styrer denne båd ved hjælp af en hjemmelavet fjernbetjening ved at bygge vores egen 433 MHz-sender og et modtagermodul. I tilfælde af fjernstyrede enheder eller kommunikation mellem to enheder har vi mange muligheder som IR, Bluetooth, internet, RF osv. Sammenlignet med IR-kommunikation har radiokommunikation nogle fordele som mere rækkevidde, og det gør det ikke kræver en synslinjeforbindelse mellem senderen og modtageren. Disse moduler kan også udføre to måder at kommunikere på, hvilket betyder at de kan transmittere og modtage på samme tid. Så ved hjælp af dette 433MHz RF-modul, lad os bygge en Arduino RC-båd i denne vejledning.
Vi har tidligere bygget mange fjernstyrede projekter ved hjælp af disse 433Mhz RF-moduler til enten at styre en robot som denne RF-kontrollerede robot eller til hjemmeautomatiseringsapplikationer til at styre husholdningsapparater ved hjælp af RF. Bortset fra at bruge RF-moduler, har vi også tidligere bygget en Bluetooth-styret Raspberry Pi-bil og en DTMF-mobiltelefonstyret Arduino-robot. Du kan også tjekke disse projekter, hvis du er interesseret.
Komponenter, der kræves til Arduino RC-båd
- 433MHz sender og modtager
- Arduino (enhver Arduino, for at reducere den størrelse, jeg bruger promini)
- HT12E og HT12D
- Trykknapper - 4 nr
- Modstande - 1mega ohm, 47k ohm
- L293d motordriver
- 9V batteri (jeg bruger et 7,4-volt batteri) - 2Nos
- 7805 regulator- 2Nr
- DC-motorer - 2 nr
- Motorblad eller propeller (jeg bruger hjemmelavede propeller) - 2Nr
- .1uf kondensator- 2Nr
- Fælles printkort
433MHz RF-sender- og modtagermoduler
Disse typer RF-moduler er meget populære blandt producenter. På grund af deres lave omkostninger og enkelhed i forbindelser. Disse moduler er bedst til alle former for kortdistancekommunikationsprojekter. Disse moduler er ASK (Amplitude Shift Keying) type RF-moduler, Amplitude-shift keying (ASK) er en form for amplitudemodulation, der repræsenterer digitale data som variationer i amplituden af en bærebølge. I et ASK-system er det binære symbol 1 repræsenteret ved transmission af en bærebølge med fast amplitude og en fast frekvens i en bitvarighed på T sekunder. Hvis signalværdien er 1, sendes bæresignalet; ellers transmitteres en signalværdi på 0. Det betyder, at de normalt ikke trækker strøm, når de sender Logic "nul". Dette lave strømforbrug gør dem meget nyttige i batteridrevne projekter.
433MHZ RF-sender
Denne type modul er super lille og leveres med 3 ben VCC, jord og data. Nogle andre moduler leveres med en ekstra antennestift. Transmissionsmodulets arbejdsspænding er 3V-12V, og dette modul har ingen justerbare komponenter. En af de største fordele ved dette modul er det lave strømforbrug, det kræver næsten nul strøm for at sende bit nul.
Blokdiagram over Arduino RC bådtransmitter
I ovenstående blokdiagram er der fire trykknapper (kontrolknapper), disse trykknapper er til at kontrollere bådens retning. Vi har fire af dem fremad, bagud, venstre og højre. Fra trykknapperne får vi logik til at styre båden, men kan ikke oprette forbindelse direkte til koderen, det er derfor, vi brugte Arduino. Du tror måske, hvorfor jeg brugte Arduino her, det er simpelthen fordi vi er nødt til at trække to parallelle dataindgange fra koderen ned samtidig for en baglæns og fremadgående bevægelse, der ikke kan opnås med bare trykknapper. Derefter koder koderen de kommende parallelle data til serielle udgange. Derefter kan vi sende disse serielle data ved hjælp af en RF-sender.
Kredsløbsdiagram over Arduino RC fjernbetjening (sender)
I ovenstående kredsløb kan du se den ene side af alle fire trykknapper, der er tilsluttet fire digitale stifter på Arduino (D6-D9) og alle de fire andre sider, der er forbundet til jorden. Når vi trykker på knappen, får de tilsvarende digitale stifter en lav logik. De fire parallelle indgange på HT12E- koderen er forbundet med yderligere fire digitale stifter på Arduino (D2-D5). Så ved hjælp af Arduino kan vi bestemme input af koderen.
Og det at tale om encoder HT12E er en 12-bit encoder og en parallel input-seriel output-encoder. Ud af 12 bit er 8 bit adressebit, der kan bruges til at styre flere modtagere. Stifterne A0-A7 er adresseindgangsstifterne. I dette projekt styrer vi kun en modtager, så vi ønsker ikke at ændre dens adresse, så jeg forbandt alle adressestifter til jorden. Hvis du vil styre forskellige modtagere med en sender, kan du bruge dip-switche her. AD8-AD11 er kontrolbitindgangene. Disse indgange styrer D0-D3-udgangene fra HT12D-dekoderen. Vi er nødt til at forbinde en oscillator til kommunikationen, og oscillatorfrekvensen skal være 3KHztil 5V-drift. Derefter vil modstandsværdien være 1,1MΩ for 5V. Derefter tilsluttede jeg udgangen fra HT12E til sendermodulet. Vi nævnte allerede, Arduino- og rf-transmittermodulet, begge disse enheder fungerer på 5V højspænding vil dræbe det, så for at undgå dette tilføjede jeg 7805, spændingsregulator. Nu kan vi forbinde (Vcc) 6-12 volt hver type batterier til input.
Opbygning af RC BOAT Transmitter Circuit
Jeg loddet hver komponent på et fælles printkort. Husk, at vi arbejder på et RF-projekt, så der er mange chancer for forskellige typer interferenser, så forbind alle komponenter meget tæt så meget som muligt. Det er bedre at bruge kvindelige pin-headere til Arduino og sendermodulet. Prøv også at lodde alt på kobberpuderne i stedet for at bruge ekstra ledninger. Tilslut til sidst en lille ledning til sendermodulet, der hjælper med at øge det samlede interval. Før du tilslutter Arduino og sendermodulet, skal du kontrollere spændingen på lm7805-udgangen.
Ovenstående billede viser ovenfra af det færdige RC-bådesenderkredsløb, og bundbilledet af det afsluttede RC-bådesenderkredsløb er vist nedenfor.
Opbygning af Arduino RC bådtransmitter kabinet
En anstændig krop er nødvendig for fjernbetjeningen. Dette trin handler om dine ideer, du kan oprette en fjern krop med dine ideer. Jeg forklarer, hvordan jeg lavede dette. For at lave en fjern krop vælger jeg 4 mm MDF-ark, du kan også vælge krydsfiner, skumplade eller pap, så skærer jeg to stykker derfra med en længde på 10 cm og en bredde på 5 cm. Derefter markerede jeg knappernes positioner. Jeg placerede retningsknapperne på venstre side og fremad, bagudknapperne til højre. På den anden side af arket sluttede jeg trykknapperne til det vigtigste transmitterende kredsløb. Husk, at en normal trykknap har 4 ben, der er to ben til hver side. Tilslut den ene pin til Arduino og den anden pin til jorden. Hvis du er forvirret med det, skal du tjekke det med et multimeter eller kontrollere databladet.
Efter at have tilsluttet alle disse ting, placerede jeg kontrolkredsløbet mellem de to MDF-kort og strammes med en lang bolt (se nedenstående billeder, hvis du vil). Atter at skabe en god krop handler kun om dine ideer.
433Mhz modtagermodul
Denne modtager er også meget lille og leveres med 4 ben VCC, jord, og de to midterste ben er data ud. Arbejdsspændingen i dette modul er 5v. Ligesom sendermodulet er dette også et modul med lav effekt. Nogle moduler leveres med en ekstra antennestift, men i mit tilfælde er den ikke til stede.
Blokdiagram over Arduino RC Boat Receiver
Ovenstående blokdiagram beskriver funktionen af RF-modtager kredsløb. Først kan vi modtage de transmitterede signaler ved hjælp af RF-modtagermodulet. Outputtet på denne modtager er serielle data. Men vi kan ikke kontrollere noget med disse serielle data, det er derfor, vi tilsluttede output til dekoderen. Dekoderen afkoder serielle data til vores originale parallelle data. I dette afsnit kræver vi ingen mikrokontroller, vi kan forbinde udgangene direkte til motordriveren.
Kredsløbsdiagram over Arduino RC bådmodtager
Den HT12D er en 12-bit dekoder, som er en seriel input-parallel output dekoder. Indgangsstiften på HT12D forbindes til en modtager, der har en seriel udgang. Blandt 12-bits er 8 bit (A0-A7) adressebit, og HT12D afkoder indgangen, hvis den kun matcher den aktuelle adresse. D8-D11 er outputbitene. For at matche dette kredsløb med senderkredsløbet, tilsluttede jeg alle adressestifterne til jorden. Data ud af modulet er den serielle type, og dekoderen afkoder disse serielle data til originale parallelle data, og vi kommer ud gennem D8-D11. For at matche oscillationsfrekvensen skal 33-56k modstand tilsluttes oscillatorstifter. Ledet på det 17. ben angiver den gyldige transmission, den tændes kun, når modtageren er tilsluttet en sender. Modtagerens spændingsindgang er også 6-12 volt.
For at styre motorer brugte jeg L293D IC, jeg valgte denne IC, fordi jeg reducerede størrelsen og vægten, og denne IC er bedst til at styre to motorer i to retninger. L293D har 16 ben, nedenstående diagram viser pinouts.
1, 9 ben er aktiveringsstift, vi forbinder det til 5 v for at aktivere motorer 1A, 2A, 3A og 4A er kontrolbenene. Motoren vil dreje til højre, hvis stiften 1A går lavt og 2A går højt, og motoren drejer til venstre, hvis 1A går lavt og 2A højt. Så vi tilsluttede disse ben til dekoderens output ps. 1Y, 2Y, 3Y og 4Y er motorforbindelsesstifterne. Vcc2 er motorens drivspændingsstift, hvis du bruger en højspændingsmotor, skal du forbinde denne pin til den tilsvarende spændingskilde.
Opbygning af modtager kredsløb af Arduino RC Boat
Før du bygger modtagerkredsløbet, skal du huske nogle vigtige ting. Den vigtige er størrelsen og vægten, for efter at have bygget kredsløbet skal vi rette det på båden. Så hvis vægten stiger, vil det påvirke opdrift og bevægelse.
På samme måde som i senderkredsløbet lodder du hver komponent i et lille fælles printkort og prøver at bruge minimale ledninger. Jeg forbandt pin 8 på motordriveren til 5v, fordi jeg bruger 5V-motorer.
Opbygning af RC-BOAT
Jeg prøvede forskellige materialer til at bygge bådkroppen. Og jeg fik et bedre resultat med termokolark. Så jeg besluttede at bygge kroppen med termokolade. Først tog jeg et 3 cm tykt thermocol-stykke og placerede modtager-kredsløbet ovenpå, så markerede jeg bådens form i thermocol og skar. Så dette er min måde at bygge båden på, du kan bygge efter dine ideer.
Motorer og propeller til Arduino Air Boat
Igen betyder vægt. Så det er vigtigt at vælge den rigtige motor, jeg vælger 5 volt, normale DC-motorer af typen n20, som er lille og vægtløs. For at undgå RF-interferenser skal du slutte 0.1uf kondensator parallelt med motorindgange.
I tilfælde af propeller lavede jeg propeller ved hjælp af plastikplader. Du kan købe propeller fra butikken, eller du kan bygge dine egne, begge fungerer fint. For at bygge propellerne tog jeg først et lille plastark og skar to små stykker ud af det, og jeg bøjede stykkerne ved hjælp af stearinlys. Endelig satte jeg et lille hul i midten for motoren og fikserede til motoren, det er det.
Arbejde med Arduino RC Boat
Denne båd har to motorer lader kalde den til venstre og højre. Hvis motoren også bevæger sig med uret (propelens position afhænger også), suger propellen luft fra fronten og udstødningen til bagsiden. Det genererer fremadrettet træk.
Fremadgående bevægelse: Hvis både venstre og højre motor drejer mod uret, bevæger den sig fremad
Baglæns bevægelse: Hvis både venstre og højre motor til at rotere mod uret (dvs. propel suger luft fra bagsiden og udstødningen til forsiden), vil det gøre baglæns bevægelse
Venstre bevægelse: Hvis kun højre motor roterer, det er båd, skal du kun trække fra højre side, som vil båden bevæge sig til venstre side
Højre bevægelse: Hvis kun den venstre motor roterer, det er båden, får den kun træk fra venstre side, som får båden til at bevæge sig til højre.
Vi forbandt motordriverens input til fire outputbit fra dekoderen (D8-D11). Vi kan styre disse 4 udgange ved at forbinde AD8-AD11 til jorden, der er knapperne i fjernbetjeningen. For eksempel, hvis vi forbinder AD8 til jorden, der aktiverer D8. Så sådan kan vi styre de to motorer i to retninger ved hjælp af disse 4 udgange. Men vi kan ikke styre to motorer ved kun en knap (det har vi brug for til bevægelse fremad og bagud) det er derfor, vi brugte Arduino. Med hjælp fra Arduino kan vi vælge inputdatapindene som vores ønske.
Arduino-programmering af RC-båden
Programmeringen af denne båd er meget enkel, fordi vi kun ønsker logisk skift. Og vi kan opnå alt med grundlæggende Arduino-funktioner. Det komplette program for dette projekt kan findes nederst på denne side. Forklaringen på dit program er som følger
Vi starter programmet ved at definere heltalene for fire inputknapper og dekoderindgangsstifter.
int f_button = 9; int b_button = 8; int l_button = 7; int r_button = 6; int ml = 2; int m2 = 3; int m3 = 4; int m4 = 5;
I installationssektionen definerede jeg pin-tilstande. Det vil sige, knapperne er tilsluttet digitale stifter, så disse stifter skal definere som input, og vi skal få output til indgangen til dekoderen, så vi skal definere disse stifter som output.
pinMode (f_button, INPUT_PULLUP); pinMode (b_button, INPUT_PULLUP); pinMode (l_button, INPUT_PULLUP); pinMode (r_button, INPUT_PULLUP); pinMode (m1, OUTPUT); pinMode (m2, OUTPUT); pinMode (m3, OUTPUT); pinMode (m4, OUTPUT);
Dernæst i hovedsløjfefunktionen læser vi knapstatus ved hjælp af digitallæsningsfunktionen i Arduino. Hvis pin-status bliver lav betyder det, at den tilsvarende pin trykkes, så udfører vi betingelserne som følger -
hvis (digitalRead (f_button) == LOW)
Det betyder, at der trykkes på fremad-knappen
{ digitalWrite (m1, LOW); digitalWrite (m3, LAV); digitalWrite (m2, HIGH); digitalWrite (m4, HIGH); }
Dette vil nedlukke m1 og m2 for koderen, dette vil aktivere begge motorer på modtagersiden. Tilsvarende til bagudgående bevægelse
{ digitalWrite (m1, HIGH); digitalWrite (m3, HIGH); digitalWrite (m2, LAV); digitalWrite (m4, LAV); }
Til venstre bevægelse
{ digitalWrite (m1, LOW); digitalWrite (m3, HIGH); digitalWrite (m2, HIGH); digitalWrite (m4, HIGH); }
Til højre bevægelse
{ digitalWrite (m1, HIGH); digitalWrite (m3, LAV); digitalWrite (m2, HIGH); digitalWrite (m4, HIGH); }
Efter udarbejdelse af koden skal du uploade den til dit Arduino-kort.
Fejlfinding: Placer båden på vandoverfladen, og kontroller, om den bevæger sig korrekt, hvis ikke, prøv at ændre motorernes og propellernes polaritet. Prøv også at balancere vægten.
Den komplette bearbejdning af projektet kan findes i den linkede video nederst på denne side. Hvis du har spørgsmål, skal du lade dem være i kommentarfeltet.