- Komponenter som kreves for Arduino RC-båt
- 433MHz RF-sender og mottaker moduler
- 433MHZ RF-sender
- Blokkdiagram over Arduino RC båtsender
- Kretsdiagram over Arduino RC Remote (sender)
- Bygge RC BOAT Transmitter Circuit
- Bygg Arduino RC båtsenderkabinett
- 433Mhz mottakermodul
- Blokkdiagram over Arduino RC Boat Receiver
- Kretsdiagram over Arduino RC båtmottaker
- Bygg mottakerkretsen til Arduino RC Boat
- Bygg RC-BÅT
- Motorer og propeller for Arduino Air Boat
- Arbeid av Arduino RC Boat
- Arduino-programmering av RC-båten
I dette prosjektet vil vi bygge en fjernstyrt Arduino Air-Boat som kan styres trådløst ved hjelp av 433 MHz RF-radiomodulene. Vi vil kontrollere denne båten ved hjelp av en hjemmelaget fjernkontroll ved å bygge vår egen 433 MHz-sender og en mottakermodul. Når det gjelder fjernstyrte enheter eller kommunikasjon mellom to enheter, har vi mange alternativer som IR, Bluetooth, internett, RF, etc. Sammenlignet med IR-kommunikasjon har radiokommunikasjon noen fordeler som mer rekkevidde, og det gjør det ikke krever en siktelinje mellom sender og mottaker. Disse modulene kan også gjøre to måter å kommunisere på, noe som betyr at de kan overføre og motta samtidig. Så ved hjelp av denne 433MHz RF-modulen, la oss bygge en Arduino RC-båt i denne opplæringen.
Vi har tidligere bygget mange fjernstyrte prosjekter ved hjelp av disse 433Mhz RF-modulene for enten å kontrollere en robot som denne RF-kontrollerte roboten eller for hjemmeautomatiseringsapplikasjoner til å kontrollere hjemmeapparater ved hjelp av RF. Bortsett fra å bruke RF-moduler, har vi også tidligere bygget en Bluetooth-kontrollert Raspberry Pi-bil og en DTMF-mobilstyrt Arduino-robot. Du kan også sjekke ut disse prosjektene hvis du er interessert.
Komponenter som kreves for Arduino RC-båt
- 433MHz sender og mottaker
- Arduino (hvilken som helst Arduino, for å redusere størrelsen jeg bruker promini)
- HT12E og HT12D
- Trykknapper - 4Nr
- Motstander - 1mega ohm, 47k ohm
- L293d motor driver
- 9V batteri (jeg bruker et 7,4-volts batteri) - 2Nos
- 7805 regulator- 2Nr
- DC-motorer - 2Nr
- Motorblad eller propeller (jeg bruker hjemmelagde propeller) - 2Nr
- .1uf kondensator- 2Nr
- Vanlig PCB
433MHz RF-sender og mottaker moduler
Disse typer RF-moduler er veldig populære blant produsenter. På grunn av deres lave kostnader og enkelhet i tilkoblinger. Disse modulene er best for alle former for kortvarige kommunikasjonsprosjekter. Disse modulene er ASK (Amplitude Shift Keying) RF-moduler, Amplitude-shift keying (ASK) er en form for amplitudemodulasjon som representerer digitale data som variasjoner i amplituden til en bærebølge. I et ASK-system blir det binære symbolet 1 representert ved å overføre en bærebølge med fast amplitude og fast frekvens i en bitvarighet på T sekunder. Hvis signalverdien er 1, vil bæresignalet bli overført; ellers vil en signalverdi på 0 overføres. Det betyr at de vanligvis ikke drar strøm når de overfører Logic "null". Dette lave strømforbruket gjør dem veldig nyttige i batteridrevne prosjekter.
433MHZ RF-sender
Denne typen modul er super liten og kommer med 3 pins VCC, bakken og data. Noen andre moduler leveres med en ekstra antennepinne. Sendemodulens arbeidsspenning er 3V-12V, og denne modulen har ingen justerbare komponenter. En av de største fordelene med denne modulen er det lave strømforbruket, det krever nesten null strøm for å sende bit null.
Blokkdiagram over Arduino RC båtsender
I blokkdiagrammet ovenfor er det fire trykknapper (kontrollknapper), disse trykknappene er for å kontrollere retningen til båten. Vi har fire av dem for fremover, bakover, venstre og høyre. Fra trykknappene får vi logikk for å kontrollere båten, men kan ikke koble direkte til koderen, det er derfor vi brukte Arduino. Du tenker kanskje hvorfor jeg brukte Arduino her, det er ganske enkelt fordi vi trenger å trekke ned to parallelle datainnganger til koderen samtidig for en bevegelse bakover og fremover som ikke kan oppnås med bare trykknapper. Deretter koder koderen de kommende parallelle dataene til serieutgangene. Så kan vi overføre serielle data ved hjelp av en RF-sender.
Kretsdiagram over Arduino RC Remote (sender)
I kretsen ovenfor kan du se den ene siden av alle fire trykknappene som er koblet til fire digitale pinner på Arduino (D6-D9) og alle de fire andre sidene som er koblet til bakken. Det er når vi trykker på knappen, de tilsvarende digitale pinnene får en logikk lav. De fire parallelle inngangene til HT12E- koderen er koblet til ytterligere fire digitale pinner på Arduino (D2-D5). Så ved hjelp av Arduino kan vi bestemme inngangen til koderen.
Og det å snakke om koderen HT12E er en 12- bitskoder og en parallell inngangsseriell utgangskoder. Ut av 12 bits er 8-bits adressebiter som kan brukes til å kontrollere flere mottakere. Pinnene A0-A7 er adresseinngangspinnene. I dette prosjektet kontrollerer vi bare en mottaker, så vi vil ikke endre adressen, så jeg koblet alle adressepinnene til bakken. Hvis du vil kontrollere forskjellige mottakere med en sender, kan du bruke dip-brytere her. AD8-AD11 er kontrollbitinngangene. Disse inngangene vil kontrollere D0-D3-utgangene til HT12D-dekoderen. Vi må koble en oscillator for kommunikasjonen, og oscillatorfrekvensen skal være 3KHzfor 5V-drift. Da vil motstandsverdien være 1,1MΩ for 5V. Så koblet jeg utgangen fra HT12E til sendermodulen. Vi har allerede nevnt, Arduino og RF-sendermodulen, begge disse enhetene fungerer på 5V høyspenning vil drepe den, så for å unngå dette, la jeg til 7805, spenningsregulator. Nå kan vi koble (Vcc) 6-12 volt batterier av hvilken som helst type til inngang.
Bygge RC BOAT Transmitter Circuit
Jeg loddet hver komponent på et vanlig PCB. Husk at vi jobber med et RF-prosjekt, så det er mange sjanser for forskjellige typer forstyrrelser, så koble alle komponentene så tett som mulig. Det er bedre å bruke kvinnelige pinneoverskrifter for Arduino og sendermodulen. Prøv også å lodde alt på kobberputene i stedet for å bruke ekstra ledninger. Til slutt kobler du en liten ledning til sendermodulen som vil bidra til å øke totalområdet. Før du kobler til Arduino og sendermodulen, må du dobbeltsjekke spenningen til lm7805-utgangen.
Ovenstående bilde viser ovenfra av den fullførte RC-båtsenderkretsen og undersiden av den fullførte RC-båtsenderkretsen vises nedenfor.
Bygg Arduino RC båtsenderkabinett
En anstendig kropp er nødvendig for fjernkontrollen. Dette trinnet handler om ideene dine, du kan opprette en ekstern kropp med ideene dine. Jeg forklarer hvordan jeg laget dette. For å lage en ekstern kropp velger jeg 4 mm MDF-ark, du kan også velge kryssfiner, skumplate eller papp, så kutter jeg to stykker fra den med en lengde på 10 cm og en bredde på 5 cm. Så markerte jeg posisjonene for knappene. Jeg plasserte retningsknappene på venstre side og fremover, bakover på høyre side. På den andre siden av arket koblet jeg trykknappene til hovedoverføringskretsen. Husk at en vanlig trykknapp har 4 pinner som er to pinner for hver side. Koble den ene pinnen til Arduino og den andre pinnen til bakken. Hvis du er forvirret med det, kan du sjekke det med et multimeter eller sjekke databladet.
Etter å ha koblet alle disse tingene, plasserte jeg kontrollkretsen mellom de to MDF-kortene og strammet til med noen lange bolter (se bilder nedenfor hvis du vil). Nok en gang handler det om ideene dine å skape en god kropp.
433Mhz mottakermodul
Denne mottakeren er også veldig liten og kommer med 4 pinner VCC, bakken, og de to midterste pinnene er data ut. Arbeidsspenningen til denne modulen er 5v. I likhet med sendermodulen er dette også en laveffektsmodul. Noen moduler leveres med en ekstra antennepinne, men i mitt tilfelle er den ikke til stede.
Blokkdiagram over Arduino RC Boat Receiver
Ovennevnte blokkdiagram beskriver funksjonen til RF-mottakerkretsen. Først kan vi motta de overførte signalene ved hjelp av RF-mottaker-modulen. Utgangen fra denne mottakeren er seriell data. Men vi kan ikke kontrollere noe med disse serielle dataene, det er derfor vi koblet utgangen til dekoderen. Dekoderen dekoder seriell data til våre opprinnelige parallelle data. I denne delen trenger vi ingen mikrokontrollere, vi kan koble utgangene direkte til motordriveren.
Kretsdiagram over Arduino RC båtmottaker
Den HT12D er en 12-bits dekoder som er en seriell inngang-parallelle utgang dekoder. Inngangspinnen til HT12D vil bli koblet til en mottaker som har en seriell utgang. Blant 12-bits er 8 bits (A0-A7) adressebiter, og HT12D vil dekode inngangen hvis den bare samsvarer med den nåværende adressen. D8-D11 er utgangsbitene. For å matche denne kretsen til senderkretsen, koblet jeg alle adressepinnene til bakken. Data ut av modulen er den serielle typen, og dekoderen dekoder disse serielle dataene til originale parallelle data, og vi kommer ut gjennom D8-D11. For å matche oscillasjonsfrekvensen, bør du koble 33-56k motstanden til oscillatorpinnene. Ledet på 17. pin indikerer gyldig overføring, den lyser bare etter at mottakeren koblet til en sender. Spenningsinngangen til mottakeren er også 6-12 volt.
For å kontrollere motorer brukte jeg L293D IC, jeg valgte denne IC fordi jeg reduserte størrelsen og vekten, og denne IC er best for å kontrollere to motorer i to retninger. L293D har 16 pinner, diagrammet nedenfor viser pinoutene.
1, 9 pinner er aktiveringspinnen, vi kobler den til 5 v for å aktivere motorene 1A, 2A, 3A og 4A er kontrollpinnene. Motoren vil svinge mot høyre hvis pinnen 1A blir lav og 2A går høy, og motoren vil svinge mot venstre hvis 1A blir lav og 2A høy. Så vi koblet disse pinnene til utgangen ps til dekoderen. 1Y, 2Y, 3Y og 4Y er motorens tilkoblingsstifter. Vcc2 er motorens drivspenningsstift, hvis du bruker en høyspenningsmotor, kobler du denne pinnen til den tilsvarende spenningskilden.
Bygg mottakerkretsen til Arduino RC Boat
Før du bygger mottakerkretsen, bør du huske noen viktige ting. Den viktige er størrelsen og vekten, for etter at vi har bygget kretsen, må vi fikse den på båten. Så hvis vekten øker, vil det påvirke oppdriften og bevegelsen.
På samme måte som i senderkretsen, lodd hver komponent i et lite vanlig PCB og prøv å bruke minimum ledninger. Jeg koblet pin 8 til motordriveren til 5v fordi jeg bruker 5V-motorer.
Bygg RC-BÅT
Jeg prøvde forskjellige materialer for å bygge båtkarosseriet. Og jeg fikk et bedre resultat med termokollark. Så jeg bestemte meg for å bygge kroppen med thermocol. Først tok jeg et 3 cm tykt termokollstykke og plasserte mottakerkretsen på toppen, så markerte jeg formen på båten i termokokoll og kuttet. Så dette er min måte å bygge båten på, du kan bygge i henhold til dine ideer.
Motorer og propeller for Arduino Air Boat
Nok en gang betyr vekt. Så det er viktig å velge riktig motor, jeg velger 5volt, vanlige DC-motorer av typen n20, som er liten og vektløs. For å unngå RF-forstyrrelser, bør du koble 0.1uf kondensator parallelt med motorinnganger.
Når det gjelder propeller, laget jeg propeller ved hjelp av plastplater. Du kan kjøpe propeller fra butikken, eller du kan bygge dine egne begge fungerer bra. For å bygge propellene tok jeg først et lite plastark og kuttet to små biter av det, og jeg bøyde bitene ved hjelp av stearinlys. Til slutt satte jeg et lite hull i midten for motoren og festet til motoren.
Arbeid av Arduino RC Boat
Denne båten har to motorer, og kaller den venstre og høyre. Hvis motoren beveger seg mot urviseren også (propellens posisjon avhenger også) suger propellen luft fra fronten og eksos til baksiden. Det genererer fremover drag.
Fremoverbevegelse: Hvis både venstre og høyre motor dreier mot klokken, vil det bevegelse fremover
Bakoverbevegelse: Hvis både venstre og høyre motor for å rotere mot klokken (det vil si propell suger luft fra baksiden og eksos til forsiden) som vil gjøre bevegelse bakover
Venstre bevegelse: Hvis bare høyre motor roterer som er båt, kan du bare dra fra høyre side for at båten skal bevege seg til venstre side
Høyre bevegelse: Hvis bare den venstre motoren roterer, det vil si bare dra fra venstre side som får båten til å bevege seg til høyre.
Vi koblet motordriverinngangen til fire utgangsbiter av dekoderen (D8-D11). Vi kan kontrollere disse 4 utgangene ved å koble AD8-AD11 til bakken som er knappene i fjernkontrollen. For eksempel hvis vi kobler AD8 til bakken som vil aktivere D8. Så på en slik måte kan vi kontrollere de to motorene i to retninger ved hjelp av disse 4 utgangene. Men vi kan ikke kontrollere to motorer med bare en knapp (vi trenger det for bevegelse forover og bakover) det er derfor vi brukte Arduino. Ved hjelp av Arduino kan vi velge inngangsdatapinnene som vi ønsker.
Arduino-programmering av RC-båten
Programmeringen av denne båten er veldig enkel fordi vi bare vil ha logisk bytte. Og vi kan oppnå alt med grunnleggende Arduino-funksjoner. Hele programmet for dette prosjektet finner du nederst på denne siden. Forklaringen på programmet ditt er som følger
Vi starter programmet med å definere heltallene for fire inngangsknapper og dekoderinngangspinner.
int f_button = 9; int b_button = 8; int l_knapp = 7; int r_knapp = 6; int m1 = 2; int m2 = 3; int m3 = 4; int m4 = 5;
I oppsettdelen definerte jeg pin-modusene. Det vil si at knappene er koblet til digitale pinner, så disse pinnene skal definere som inngang, og vi må få utgang for inngangen til dekoderen, så vi skal definere disse pinnene som utgang.
pinMode (f_button, INPUT_PULLUP); pinMode (b_button, INPUT_PULLUP); pinMode (l_knapp, INPUT_PULLUP); pinMode (r_button, INPUT_PULLUP); pinMode (m1, OUTPUT); pinMode (m2, OUTPUT); pinMode (m3, OUTPUT); pinMode (m4, OUTPUT);
Neste i hovedsløyfefunksjonen vil vi lese knappestatus ved hjelp av digitallesefunksjonen til Arduino. Hvis pinnestatusen blir lav, betyr det at den tilsvarende pinnen trykkes, vil vi utføre forholdene som følger:
hvis (digitalRead (f_button) == LOW)
Det betyr at fremover-knappen trykkes
{ digitalWrite (m1, LOW); digitalWrite (m3, LAV); digitalWrite (m2, HIGH); digitalWrite (m4, HIGH); }
Dette vil trekke ned m1 og m2 av koderen, dette vil aktivere begge motorene på mottakersiden. Tilsvarende for bevegelse bakover
{ digitalWrite (m1, HIGH); digitalWrite (m3, HIGH); digitalWrite (m2, LAV); digitalWrite (m4, LAV); }
For venstrebevegelse
{ digitalWrite (m1, LOW); digitalWrite (m3, HIGH); digitalWrite (m2, HIGH); digitalWrite (m4, HIGH); }
For riktig bevegelse
{ digitalWrite (m1, HIGH); digitalWrite (m3, LAV); digitalWrite (m2, HIGH); digitalWrite (m4, HIGH); }
Etter å ha samlet koden, last den opp til Arduino-kortet.
Feilsøking: Plasser båten på vannoverflaten og sjekk om den beveger seg riktig hvis ikke, prøv å endre polariteten til motorer og propeller. Prøv også å balansere vekten.
Fullstendig bearbeiding av prosjektet finner du i videoen som er lenket nederst på denne siden. Hvis du har spørsmål, la dem være i kommentarfeltet.