Innholdsfortegnelse:

Billig Arduino Combat Robot Control: 10 trinn (med bilder)
Billig Arduino Combat Robot Control: 10 trinn (med bilder)

Video: Billig Arduino Combat Robot Control: 10 trinn (med bilder)

Video: Billig Arduino Combat Robot Control: 10 trinn (med bilder)
Video: robot race. line follower robot with arduino program 2024, November
Anonim
Billig Arduino Combat Robot Control
Billig Arduino Combat Robot Control
Billig Arduino Combat Robot Control
Billig Arduino Combat Robot Control
Billig Arduino Combat Robot Control
Billig Arduino Combat Robot Control

Oppblomstring av Battlebots i USA og Robot Wars i Storbritannia gjorde at jeg elsket kamproboter igjen. Så jeg fant en lokal gruppe botbyggere og dykket rett inn.

Vi kjemper i den britiske maurvekten (150 gram vektgrense), og jeg skjønte raskt den tradisjonelle måten å bygge et bot involvert RC -utstyr på: en dyr RC -sender, en omfangsrik eller dyr mottaker og ESC (elektroniske hastighetskontrollere) som er magiske bokser som kan håndtere mye mer strøm enn det som er nødvendig for en bot av denne størrelsen.

Etter å ha brukt Arduino tidligere, ønsket jeg å prøve å gjøre ting annerledes og sette meg et mål om et Arduino -system som kan motta et lovlig kampsignal og kontrollere to drivmotorer for rundt USD $ 5 (halvparten av prisen på en billig ESC)

For å hjelpe til med å nå dette målet, remikset jeg denne RC-bilen, og reduserte vekten/kostnaden til mottakeren og genererte 4 PWM-signaler for å kjøre en billig h-bridge-chip

Denne instruksen vil fokusere på Arduino -kontrollsystemet, men jeg legger til tilleggsinformasjon for å hjelpe nye mennesker med å bygge sin første bot

Ansvarsfraskrivelse:

Selv i liten skala kan kampbygging/kamp være farlig, på egen risiko

Trinn 1: Det du trenger

Materialer:

For kontrollsystemet:

  • 1x Arduino pro mini 5v (USD 1,70)
  • 1x nRF24L01 -modul ($ 1,14)
  • 1x 3.3v regulatormodul ($ 0.32)
  • 1x dobbel h-bromodul* ($ 0,90)

For resten av en grunnleggende kilebot:

  • 2x mikrogirmotorer ** (billig versjon, pålitelig versjon)
  • 1x 2s litiumpolymerbatteri
  • 1x balanselader
  • 1x lipo ladesekk
  • 1x bryter
  • 1x batterikontakt
  • diverse ledninger (jeg brukte noen Arduino -jumperledninger jeg hadde liggende)
  • små skruer
  • (valgfritt) epoksy
  • (valgfritt) Aluminium (fra en brusboks)
  • (valgfritt) ekstra lysdioder

For en grunnleggende kontroller:

  • 1x Arduino pro mini 5v
  • 1x nRF24L01 -modul
  • 1x 3.3v regulatormodul
  • 1x Arduino-joystick

Verktøy:

  • Skrutrekker
  • Loddejern
  • Tang
  • 3D -skriver (valgfritt, men det gjør livet lettere)

*Når du ser på h-bridge-moduler, se etter en modul med alle 4 signalinngangene ved siden av hverandre, dette vil gjøre det lettere å koble til Arduino senere

** sjekk det siste trinnet for noen tips om å velge motorhastigheter

Trinn 2: Skriv ut et chassis

Skriv ut et chassis
Skriv ut et chassis

Se på utformingen av boten som skal bygges før du begynner på kontrollsystemet. Det er alltid best å designe en bot fra våpenet ut. For en nybegynner foreslår jeg at du starter med en enkel kile, de er designet for å være robuste og skyve motstanderne ut av veien, noe som betyr at du er mindre sannsynlig å bli ødelagt i din første kamp, pluss at det er lettere å få en følelse av å kjøre bil når du don du trenger ikke bekymre deg for et aktivt våpen.

Jeg har designet en kilebot: "Litt rå" som har blitt testet både pansret og ubevæpnet. Det er en god første bot, lett å skrive ut og kan settes sammen med 8 skruer. Sjekk den ut på Thingiverse for en annen toppdesign

Hvis du ikke eier en 3d -skriver, kan du prøve et lokalt bibliotek, hackerspace eller makerplass

Å legge til ekstra rustning er enkelt å gjøre frisk av skriveren, sand både kilen og brusdunken aluminium med et sandpapir, børst av eventuelt slipestøv, påfør epoxy på både plast og aluminium, hold sammen med klemmer eller gummibånd i 12-24 timer

Jeg har for øyeblikket ikke en offentlig hjuldesign, ettersom jeg har brukt gummidekk fra et pedagogisk robotsett over 3D -trykte nav. I de kommende ukene skal jeg designe et nav som vil bruke O-ringer for grep. Når hjulene er ferdige, oppdaterer jeg denne siden og Thingiverse -siden

Trinn 3: Forbered H-broen

Forbered H-broen
Forbered H-broen

Ulike h-bridge motordrivere kommer i forskjellige oppsett, men modulen som er koblet til den første listen kommer med 2 rekkeklemmer som utgang. Disse rekkeklemmer er tunge og klumpete, så det er best å fjerne dem.

Den enkleste måten å gjøre dette på er å varme opp begge putene samtidig med et loddejern og vri blokkene forsiktig ut med en tang

Før du går videre, bestem deg for om du vil bytte ut motorene i oppsettet ditt. I så fall kan Arduino -jumperkabler loddes inn i modulens utgang, så kan den motsatte kabelen loddes til motoren, slik at de kan fjernes etter behov.

Trinn 4: Koble til modulene

Kabling av modulene
Kabling av modulene
Kabling av modulene
Kabling av modulene
Kabling av modulene
Kabling av modulene

Kabling av modulene kan gjøres på 3 forskjellige måter, og derfor er designtrinnet kritisk. Våpenvalg vil påvirke botens form og valg av ledninger.

de 3 valgene er:

  1. Løse ledninger (lett, men mer skjøre) (bilde 1)
  2. Perfboard (tyngre enn 1, men mer robust med større fotavtrykk) (bilde 2)
  3. Egendefinert kretskort (tyngre enn 1, men robust med et lite fotavtrykk) kortdesign vedlagt (bilde 3)

uavhengig av valget som er gjort, er de faktiske tilkoblingene de samme.

Gjør følgende tilkoblinger to ganger (én gang for kontrolleren og én gang for mottakeren)

nRF24L01 (pinnummereringsbilde 4 **):

  • Pin 1 -> GND
  • Pin 2 -> ut pin på 3.3v modul
  • Pin 3 -> Arduino pin 9
  • Pin 4 -> Arduino pin 10
  • Pin 5 -> Arduino pin 13
  • Pin 6 -> Arduino pin 11
  • Pin 7 -> Arduino pin 12

3.3v modul:

  • Vin pin -> Vcc*
  • Out pin -> pin 2 nRF (som ovenfor)
  • GND pin -> GND

Arduino:

  • Pins 9-13 -> koble til nRF som ovenfor
  • Rå -> Vcc*
  • GND -> GND

Gjør følgende tilkoblinger én gang for å skille mellom kontroller og mottaker

For kontrolleren:

Styrespak:

  • +5v -> Arduino 5v
  • vrx -> Arduino pin A2
  • vry -> Arduino pin A3
  • GND -> GND

For mottakeren:

h-bridge modul:

  • Vcc -> Vcc*
  • B -IB -> Arduino pin 2
  • B -IA -> Arduino pin 3
  • A -IB -> Arduino pin 4
  • A -IA -> Arduino pin 5
  • GND -> GND

Dette gjøres enklest ved å bytte ut pinnene til Vcc og GND med wire, deretter snu brettet opp ned og lodde pinnene direkte inn i Arduino, dette forenkler loddetinnet og skaper et sikkert feste for motorføreren

*For at en kamprobot skal være lovlig, må det legges til et isolasjonspunkt (bryter eller flyttbar lenke) mellom batteriet og kretsen. Dette betyr at batteriets positive må være koblet til en bryter, deretter må bryteren kobles til Vcc

** bilde fra https://arduino-info.wikispaces.com/Nrf24L01-2.4GHz-HowTo som er en flott ressurs for nRF24L01-modulen

Trinn 5: Sette opp kontrolleren

Sette opp kontrolleren
Sette opp kontrolleren

Når alt er koblet til, er det tid for litt kode.

Fra og med kontrolleren er det nødvendig med noen potensiometerverdier for å sikre at den nøyaktige joysticken som er tilkoblet fungerer med sendekoden.

Last inn "joystickTestVals2" -koden. Denne koden brukes til å lese potensiometerverdiene og vise dem i serie

Med koden i gang og et serielt vindu åpent start ved å se på "OPP" -verdien, skyv styrespaken til posisjonen helt fremover, "OPP" -verdien vil sannsynligvis hoppe mellom noen få store tall, velg den minste av verdiene du ser, trekker du 10 fra den (dette vil sikre at du trykker helt på pinnen for å gi full effekt) og skriver den ned som "Up Max" slik at styrespaken kan springe tilbake i midten. Velg nå den største verdien du ser, legg til 20 til den og skriv den ned som "UpRestMax". Gjenta prosessen ved å skyve pinnen nedover og reversere addisjonen/subtraheringen av verdiene som "UpMin" og "UpRestMin"

Gjenta hele prosessen igjen for venstre og høyre, start med å skyve pinnen til høyre, ta opp "SideMax" og deretter "SideRestMax" mens den springer tilbake og skyv til venstre for å spille inn "SideMin" og "SideRestMin"

Disse verdiene er super viktige, spesielt alle verdiene som inneholder ordet "Rest". disse verdiene skaper "død sone" i midten av pinnen slik at boten ikke beveger seg når pinnen hviler i midten, sørg for at når pinnen er sentrert faller verdiene mellom "restMin" og "restMax" for begge akser

Trinn 6: Kode

Kode
Kode
Kode
Kode

Den oppgitte koden gjør alt for en grunnleggende kilebot med en struktur på plass for at en pwm-verdi for våpen også skal kunne sendes.

Nødvendige biblioteker:

  • nRF24L01 Bibliotek herfra: GitHub
  • Programvare PWM herfra: Google Code

Sett opp kontrolleren din:

åpne txMix -koden og endre pinnegrenseverdiene til verdiene du skrev ned i det siste trinnet. Dette vil sikre at koden reagerer riktig på joysticken (Bilde 1)

Tilpass rør:

For å sikre at du ikke forstyrrer noen andre på arrangementet ditt, må du bytte radiorør. Dette er faktisk en identifikator, og mottakeren vil bare handle på signaler fra det riktige røret, så sørg for å endre røret i begge koder til det samme.

På bildet er 2 sekskant i røret uthevet. Dette er de to sifrene som må endres for å tilpasse røret. Endre "E1" til en annen tosifret hex -verdi og skriv den ned, slik at du enkelt kan kontrollere den mot motstanders rør på et arrangement

Laste opp:

  • txMix til kontrolleren
  • motta til mottakermodulen

Slipp av koden:

txMix:

Koden leser i joystick -posisjonen som en "UP" -verdi og en "side" -verdi. disse verdiene blir begrenset basert på maksimalverdien som er gitt for å sikre at full effekt vil bli gitt ved den maksimale pinnestillingen.

Disse verdiene kontrolleres deretter for å sikre at pinnen har beveget seg ut av nøytral posisjon, hvis den ikke har nuller, blir sendt.

Verdiene blandes deretter individuelt i to variabler, en for venstre motorhastighet og en for høyre motorhastighet. I disse variablene brukes en negativ verdi for å indikere at motoren kjører bakover da det forenkler blandingen.

Verdiene for venstre og høyre hastighet skilles deretter inn i fire verdier pwm -verdier, en for hver: motor høyre fremover, motor venstre fremover, motor høyre bakover, motor venstre bakover.

De fire pwm -verdiene sendes deretter til mottakeren.

motta:

Mottar ganske enkelt signaler fra kontrolleren, sjekker at signalet ikke inneholder pwm -verdier for forover og bakover på en enkelt motor, og bruker deretter pwm.

Mottakeren feiler også safer for å slå av motoren når det ikke mottas et signal fra kontrolleren

Trinn 7: Bolting It All Togheter

Bolting It All Togheter
Bolting It All Togheter
Bolting It All Togheter
Bolting It All Togheter
Bolting It All Togheter
Bolting It All Togheter

Loddekontakter til motorene eller lodd motorene direkte til h-broen. (Jeg foretrekker kontakter slik at jeg bare kan bytte plugger hvis jeg har koblet motorene feil)

Lodd den positive ledningen fra batterikontakten til den midtre pinnen på bryteren og en av de ytre pinnene på bryteren til Vcc på de tilkoblede modulene.

Lodd den negative ledningen fra batterikontakten til GND for de tilkoblede modulene.

(Valgfritt) legg til flere LED mellom Vcc og GND. Alle kamproboter krever et lys som er på mens systemet har strøm, avhengig av komponentene dette systemet har lysdioder på Arduino, 3.3v-modulen og h-broen, så lenge minst en av disse er synlig utenfra bot denne regelen er oppfylt. Ytterligere lysdioder kan brukes for å være sikker på at denne regelen er oppfylt og for å tilpasse utseendet

Litt råolje er enkel å skru sammen, bolt motorfester på plass først, legg til elektronikken, skru deretter lokket på plass, en liten mengde borrelås vil hjelpe til å holde bryteren mot lokket

Kontrolleren er din til å designe og skrive ut. For testing har jeg brukt den vedlagte kontrolleren som er endret fra James Brutons BB8 V3 -kontroller

Trinn 8: Et ord om robotbekjempelsesregler

Et ord om robotbekjempelsesregler
Et ord om robotbekjempelsesregler

Ulike land, stater og grupper driver robotkamparrangementer med forskjellige regler.

Jeg har laget dette systemet og skrevet dette for å være så generell som mulig mens jeg treffer de viktigste reglene som gjelder for RC -systemer (spesielt systemet bør være 2,4 GHz digitalt og ha et batteriisolasjonspunkt). For å kjøre dette systemet og eller designe din egen første bot er det best å komme i kontakt med din lokale gruppe og få en kopi av reglene deres.

Reglene din lokale gruppe kjører er absolutte, ikke ta mitt ord i denne instruksen over reglene for gruppen din.

Siden dette Arduino -systemet er nytt for samfunnet, vil du mest sannsynlig bli bedt om å få det testet før du bruker det på et arrangement. Jeg har kjempetestet dette systemet gjentatte ganger mot standard RC -utstyr og mot seg selv uten forstyrrelsesproblemer, så det bør bestå noen test, men arrangørene på ditt lokale arrangement har det siste ordet, respekter deres beslutning. Hvis de avviser bruken, spør om det er en lånebot du kan kjempe med, eller be om en avklaring på hvorfor den ble avvist, og prøv å fikse problemet for neste arrangement

Trinn 9: Tilleggsinformasjon om motorer

Tilleggsinformasjon om motorer
Tilleggsinformasjon om motorer

Mikrogirmotorene som brukes i maureklassen kommer i et stort utvalg hastigheter og er enten merket med RPM eller girforhold. Nedenfor er en grov konvertering.

De fleste roboter bruker motorer mellom 75: 1 og 30: 1 (med noen unntak ved bruk av 10: 1). Roboter med store spinnende våpen kan dra fordel av tregere 75: 1 -motorer ettersom den lavere hastigheten gir mer kontroll. Smidige kiler, løftere og svømmeføtter er best på 30: 1 i hendene på en dyktig sjåfør. Jeg anbefaler 50: 1 motorer i en kile for de første kampene bare for å bli vant til systemet og kjøringen

  • 12V 2000 o / min (eller 6V 1000 o / min) -> 30: 1
  • 6V 300RPM -> 50: 1

Trinn 10: Oppdateringer og forbedringer

Det har vært et par år siden jeg postet denne 'ible, og jeg har lært mye om dette systemet, så det er på tide å oppdatere dem her. Det viktigste er komponentvalget, de originale komponentene fungerte relativt bra, men noen ganger mislyktes under kamp. De to store gjerningsmennene er H-Bridge og nrf24l01-modulen, på grunn av at jeg valgte de absolutt billigste delene jeg kunne finne. Disse kan fikses ved å:

  • Oppgraderer 0,5A H-broen til en 1,5A H-bro, som denne: 1,5A H-broen
  • Oppgradering av nrf24l01 -modulen til et fullt SMD -design: Åpne smart NRF24l01

Sammen med de nye komponentoppgraderingene har jeg designet noen nye PCB -er som hjelper til med å komprimere RX og legge til flere funksjoner i TX

Jeg har også noen kodeendringer som kommer, så følg med for dem

Anbefalt: