Innholdsfortegnelse:

Bluetooth RC -bil med STM32F103C og L293D - billig: 5 trinn
Bluetooth RC -bil med STM32F103C og L293D - billig: 5 trinn

Video: Bluetooth RC -bil med STM32F103C og L293D - billig: 5 trinn

Video: Bluetooth RC -bil med STM32F103C og L293D - billig: 5 trinn
Video: How to control stepper motor using Arduino and NodeMCU | control stepper motor using L293D blynk app 2024, Juni
Anonim
Image
Image
Ødelegg batterieteren!
Ødelegg batterieteren!

Jeg lagde en Bluetooth Arduino -bil som den som er avbildet her, av Ardumotive_com. Problemet jeg hadde var batterier og deres vekt, så vel som deres utgift. Siden den gang har billige kraftbanker for mobiltelefoner blitt veldig rimelige. Alt jeg trengte å gjøre var å redusere vekten. Siden jeg er billig, byttet jeg til STM32F103C mikrokontroller. STM32F103C mikrokontroller kan kjøpes for mindre enn $ 2, og er mye mindre enn en Arduino. Jeg endret litt på kodingen for å fungere med STM32F103C også.

Rekvisita

  • En billig fjernkontrollbil som spiser batterier. Ja, akkurat som den som Ardumotive_com bruker. Du slår av systemet og bruker en telefonbank i stedet. Hvis du har ressurser til å bygge ditt eget chassis, må du gjøre det. Jeg dro til lekebutikken nedover gaten og kjøpte en billig bil for under $ 10. Bilen spiser batterier, og fjernkontrollen spiser batterier-perfekt for forbedring.
  • En telefonbank- De er superbillige nå. Kom bort fra strømbankene som har en strømknapp på siden. Du vil ikke kunne følge bilen din og holde inne knappen. Det er dumt.
  • En L293D-brikke-Dette er den doble H-broen som skal kontrollere de elektriske motorene.
  • En HC-06 Bluetooth-modul
  • En bryter-- Jeg brukte en enkel av/på-bryter.
  • Noen Wire -telefontråd ville være greit, men litt større strandet 20 gauge ville være bedre.
  • Et Proto -brett eller et stykke plast eller papp for montering av Blue Pill og L293D. Jeg er billig, så jeg kom på et litt annet system med tynn bølgepapp- som fra en lyspæreboks.
  • To billige USB-ladekabler-Disse kan kjøpes fra et Dollar Tree. Ikke bruk den fine programmeringskabelen. Den ene kuttes for på/av -bryteren, og den andre vil lade batteriet.

Valgfri

  • 4 lysdioder -hvis du vil ha frontlykter og baklys.
  • 4 220 Ohm motstander- for lysdioder på et 3.3v system.
  • En piezo eller liten høyttaler for et horn.

Verktøy

  • Loddejern og loddetinn
  • Hot Lim Gun- Min datter er en Hot Glue Gun Ninja!
  • Wire strippere og snips
  • MERK: Hvis du bruker pappteknikken jeg bruker i stedet for et prototavle, trenger du en Dremel eller en liten drill

Trinn 1: Ødelegg batterieteren

Ødelegg batterieteren!
Ødelegg batterieteren!

Det er på tide å ha det gøy å ødelegge batterispiser! Ja, GUT DET! Føl deg stolt over at du gjør din del i å gjøre verden grønnere- OK, det er en strekk, men uansett … Kom deg til rammen.

Ovenfor er den samme enheten som jeg laget Arduino -versjonen. Arduino -versjonen brukte seriøs batteristrøm som gjorde bilen tyngre. Så jeg tok den tilbake til rammen. Jeg hadde lagt til noen skjerm fra en plastflaske og varmt lim, og tilpasset karosseriet. Mer om kroppen senere.

Når du har rammen med motorene og styringen bar, finn hvilken side av motorterminalene som er. Bruk et batteri eller en 5v lader for å teste motoren.

Når hjulene svinger til høyre på styremotoren, merker du den positive batteritråden "3" og den negative ledningen "6".

Når hjulene roterer fremover på drivmotoren, merker du den positive batteritråden "14" og den negative ledningen "11".

Trinn 2: Koden i Arduino IDE

Koden i Arduino IDE
Koden i Arduino IDE
Koden i Arduino IDE
Koden i Arduino IDE

Det kan være best hvis du prototyper bilens elektronikk først på et brødbrett.

OK, dette er en av de vanskelige delene. Den "blå pillen" kan ikke programmeres via USB -porten. Jeg har ikke funnet en enklere programmeringsforklaring av "Blue Pill" enn Joop Brokings Youtube -video. Den forklarer alt du trenger å vite, inkludert Roger Clarkes STMduino -bibliotek. Det er en måte å installere en bootloader på, slik at du KAN bruke USB til å programmere "Blue Pill", men du må uansett programmere bootloaderen gjennom seriebussen.

Dessverre brukes også seriebussen av Bluetooth -adapteren. Programmet må installeres via Serial Bus, PA9 og PA10 pins, via en FTDI først, så kan du sjekke alle innstillingene dine med Bluetooth -adapteren.

Bruk et brødbrett og layout alt på brødbrettet akkurat som fritzing -skissen ovenfor. Koble fra Bluetooth -adapterens serielle TX- og RX -linjer på STM32F103Cs PA9- og PA10 -pinner. Koble til FTDI og programmet. Sørg for at seriebusslinjene krysses, RX til Tx og Tx til RX. Den ene mottar og den andre gir.

Når programmet er lastet, kan du åpne den serielle konsollen og sende

for å se om lysene fungerer. Hvis lysene fungerer, kan du sende

igjen for å slå dem av.

Sett bilen på en blokk for å heve dekkene og sende

Hjulene skal gå fremover. Hvis de ikke gjør det, snu ledningene. Husk hvordan vi merket ledningene tidligere. De tilsvarende pinnene på L293D bør matches.

Send for å stoppe

La oss se på de betydelige endringene i koden.

I den kommenterte delen, begynnelsen, bør du se filene som oppsto, fra Ardumotive. De neste kommentarene forklarer hvor jeg har endret meg litt for å gjenspeile STM32F103C.

/ * * Laget av Vasilakis Michalis // 12-12-2014 ver.2

* Prosjekt: Kontroller RC -bil via Bluetooth med Android -smarttelefon * Mer informasjon på https://www.ardumotive.com * * Endret denne koden for å passe STM32F103 av Jim Garbe, [email protected] * Mer informasjon på https:// github.com/jgarbe/RCCAR_STM32F103C*Vær oppmerksom på at 8-biters verdier 0-255 er endret til*gjenspeiler 16-biters verdier 0-65535*//****************** **********På STM32 fungerer den analoge skrivingen fortsatt på 8-biters 255,*Men du kan få hele funksjonen til PWM-området, 0-65535, ved å deklarere pinnen som PWM*OG bruker pwmWrite () i stedet for analogWrite () ****************************/

Spesielt er pinnene ikke navngitt på samme måte mellom Arduino og STM32F103C. Vi erklærer pinnene ved å bruke det neste settet med linjer. Det er en pin igjen som er deklarert langt nede i løkken. På linje 197 brukes PA5 til å lese batterinivået.

//// L293 Tilkobling

const int motorA1 = PB6; // til Pin 15 av L293 const int motorA2 = PB7; // til Pin 10 av L293 const int motorB1 = PB8; // til Pin 7 av L293 const int motorB2 = PB9; // til Pin 2 av L293 // Lysdioder koblet til STM32F103C Pin A12 const int lights = PA12; // summer /høyttaler til Arduino UNO Pin A8 const int summer = PA8; // Bluetooth (HC-06 JY-MCU) Oppgi pin på pin A11 i STM32F103C const int BTState = PA11;

Bruk også analogWrite (); vil fortsatt fungere på "BluePill". Men det er bedre å erklære PWM -pinnene ved å bruke, pinMode (, PWM);

Deretter bruker du

pwmWrite (,);

MERK: 8-bit = 0-255, 16-bit = 0-65535

Linje 32-44 er endringer i batteriet. Hvis du skal bruke batterinivåkontrollen, må du bruke en stemmeavdeler for batteriet du har. Denne delen gjenspeiles ikke i Fritzing -skissen. Det er mange forklaringer på hvordan du lager en spenningsdeler på Youtube. Fordi STM32F103C er en 3.3v -brikke, fikset jeg koden her for å fysisk bruke en spenningsdeler. Arduino kan tolerere noen høyere spenninger gjennom de medfølgende ADC -ene, men den "blå pillen" kan ikke.

/* Batterinivået kontrolleres på Pin PA5

* Endret neste linje for STM32F103C fordi ADC ikke kan håndtere * noe over 3,3v * Jeg kommenterte det nettopp * En spenningsdeler som bruker to motstander må beregnes og brukes * for å måle ADC -inngangen lenger ned i koden * eksempel: * GND --- 2K motstand ----------------- 1K motstand ------ 5v * | * | * 3.3v */ // const float maxBattery = 3.3; // Endre verdien til ditt maksimale batterispenningsnivå!

Trinn 3: Sett alt sammen

Sett alt sammen
Sett alt sammen
Sett alt sammen
Sett alt sammen
Sett alt sammen
Sett alt sammen
Sett alt sammen
Sett alt sammen

Jeg bruker vanligvis et proto-brett for å plassere brikkene og loddetinn mellom hullene for å koble alt sammen. Noen ganger "deadbug loddetinn" alt sammen for mer av et Frankenstein/3D -lodd av loddeutseende.

Jeg valgte denne hybridmetoden for å gjøre enheten ren og lett- og selvfølgelig BILLIG!

Denne metoden tillater også merking. En av de verste delene av deadbug -lodding er når du ser på en IC -brikke fra bunnen og glemmer hvilken pinne som er hva.

Bildene ovenfor er ganske selvforklarende. Jeg antar at den vanskelige delen er å finne den tynne nok papp til å fordype og være stiv samtidig. Du kan også bruke plast, men det er litt vanskeligere å merke det. Når jeg trykker pinnene til brettet og markerer hulene, bruker jeg en Dremel til å bore hvert pinnehull gjennom.

Hvis du ikke allerede har lagt merke til det, har jeg kun lysene som tilbehørskontakt på brettet. Jeg bruker ikke batteriindikatoren, og heller ikke pipetonen. Det er fordi prosjektet mitt er til et annet formål. Det vil være selvforklarende når du ser det ferdige resultatet med bilkarosseri. … men dette gir en annen idé: Det er mange ubrukte pins på dette prosjektet. Kanskje en bagasjeromsåpner, bildøråpner, brannknekker, …… eller til og med en mini-Galvani-Edison Luminiferous Aether Disturbance Generator!

Når alt lodding er fullført, tester du før du limer leddene for å avlaste ledningene.

Jeg brukte den samme Android -appen som Ardumotive. Den finner du på

Når du har testet bilens funksjoner, er det på tide å plassere batteriet og bytte. Gå til neste trinn.

Trinn 4: Batteri og bryter

OK, det er her du ikke kan følge planen min nøyaktig.

På en eller annen måte må du finne et godt sted å sette batteriet på bilen med enten en måte å lade batteribanken fra en dongle eller en måte å lade batteripakken direkte på. I den innledende videoen teipet jeg bare batteriet og mikrokontrolleren til rammen og kjørte den. Da jeg ville stoppe, koblet jeg bare ut batteriet. Problemet med dette oppsettet er forgjengelighet for pluggene på USB -kabelen og/eller strømbanken din. Det er bedre å ha en bryter.

Du må også finne et godt sted for bryteren der bilhuset fremdeles vil tillate tilgang. Jeg brukte en vanlig trykknappbryter (ikke en øyeblikkelig bryter), og monterte den på bunnen av rammen der det originale batterirommet er plassert.

Du må kutte en USB -kabel i to og sette bryteren mellom batteriet og STM32F103C USB -porten. Ja, du kan drive STM32F103C med USB -porten. Du kan bare ikke programmere det via USB -porten. Jeg brukte en Dremel igjen for å bore noen hull til bryterloddetappene. Etter lodding brukte jeg Hot Lim, igjen for å forsterke forbindelsene.

Trinn 5: Sett karosseriet på rammen

OK, jeg sa at jeg planla den originale Arduino-versjonen av denne bilen på nytt. Selve sluttproduktet var altså en scenestøtte for "Nøtteknekkeren" -balletten fremført av vårt lokale ballettkompani. I åpningsscenen løp en mus over scenen med Drosselmeyers utilsiktede magi. Jeg brukte en IKEA -rotte og monterte den på toppen av rammen, Arduino og mye større batteripakke. Rekvisitten var tung og ikke oppladbar. Dette er mye bedre!

Ha det gøy med bilen din. Husk at det er mange flere pinner på STM32F103C som kan brukes. Kanskje en skunk som ligner den i "Toy Story 4."

Anbefalt: