Indholdsfortegnelse:

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

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

Video: Bluetooth RC bil med STM32F103C og L293D - billig: 5 trin
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, September
Anonim
Image
Image
Ødelæg batteriet!
Ødelæg batteriet!

Jeg lavede en Bluetooth Arduino bil som den, der er afbildet her, af Ardumotive_com. Det problem, jeg havde, var batterier og deres vægt samt deres udgift. Siden da er billige strømbanker til mobiltelefoner blevet meget overkommelige. Alt jeg skulle gøre var at reducere vægten. Da jeg er billig, skiftede jeg til STM32F103C Microcontroller. STM32F103C mikrokontroller kan købes for mindre end $ 2, og er meget mindre end en Arduino. Jeg ændrede også en smule kodning til at fungere med STM32F103C.

Forbrugsvarer

  • En billig fjernbetjeningsbil, der spiser batterier. Ja, ligesom den som Ardumotive_com bruger. Du slukker systemet og bruger i stedet en telefonbank. Hvis du har ressourcerne til at bygge dit eget chassis, skal du have det. Jeg gik til legetøjsbutikken nede på gaden og købte en billig bil til under $ 10. Bilen spiser batterier, og fjernbetjeningen spiser batterier-perfekt til forbedring.
  • En telefonbank- De er super billige nu. Væk fra strømbankerne, der har en tænd / sluk -knap på siden. Du kan ikke følge din bil og holde knappen nede. Det er fjollet.
  • En L293D-chip-Dette er den dobbelte H-bro, der styrer elmotorerne.
  • Et HC-06 Bluetooth-modul
  • A Switch-- Jeg brugte en simpel tænd/sluk-kontakt.
  • Nogle Wire -telefontråd ville være fint, men en lidt større strandet 20 gauge ville være bedre.
  • Et Proto Board eller et stykke plastik eller pap til montering af din Blue Pill og L293D. Jeg er billig, så jeg fandt på et lidt anderledes system med tyndt bølgepap- som f.eks. Fra en pæreæske.
  • To billige USB-opladningskabler-Disse kan købes fra et Dollar Tree. Brug ikke dit flotte programmeringskabel. Den ene skæres til tænd/sluk -kontakten, og den anden oplader batteriet.

Valgfri

  • 4 lysdioder -hvis du ønsker forlygter og baglygter.
  • 4 220 Ohm modstande- til LED'erne på et 3.3v system.
  • En piezo eller lille højttaler til et horn.

Værktøjer

  • Loddejern og lodning
  • Hot Lim Gun- Min datter er en Hot Glue Gun Ninja!
  • Wire strippere og snips
  • BEMÆRK: hvis du bruger den papteknik, jeg bruger i stedet for et proto -bræt, skal du bruge en Dremel eller en lille boremaskine

Trin 1: Ødelæg batteriet

Ødelæg batteriet!
Ødelæg batteriet!

Det er tid til at have det sjovt med at ødelægge batterispiseren! Ja, GUT DET! Føl dig stolt over, at du gør din del i at gøre verden grønnere- OK, det er en strækning, men alligevel … Kom til rammen.

Ovenfor er den samme enhed, som jeg lavede Arduino -versionen. Arduino -versionen brugte seriøs batteristrøm, der gjorde bilen tungere. Så jeg tog det tilbage til rammen. Jeg havde tilføjet nogle skærme fra en plastflaske og varm lim og tilpasset kroppen. Mere om kroppen senere.

Når du har rammen med motorerne og styretøjet nøgne, skal du finde ud af, hvilken side af motorterminalerne der er. Brug et batteri eller en 5v oplader til at teste motoren.

Når hjulene drejer til højre på styremotoren, skal du markere den positive batterikabel "3" og den negative ledning, "6".

På drivmotoren, når hjulene roterer fremad, mærkes den positive batteritråd "14" og den negative ledning "11".

Trin 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 bedst, hvis du prototype din bils elektronik først på et brødbræt.

OK, dette er en af de vanskelige dele. "Blue Pill" kan ikke programmeres via USB -porten. Jeg har ikke fundet en lettere programmeringsforklaring af "Blue Pill" end Joop Brokings Youtube Video. Det forklarer alt, hvad du behøver at vide, herunder Roger Clarkes STMduino -bibliotek. Der er en måde at installere en bootloader, så du KAN bruge USB'en til at programmere "Blue Pill", men du skal alligevel programmere bootloaderen via Serial Bus.

Desværre bruges Serial Bus også af Bluetooth -adapteren. Programmet skal installeres via Serial Bus, PA9 og PA10 benene, først via en FTDI, derefter kan du kontrollere alle dine indstillinger med Bluetooth -adapteren.

Brug et brødbræt og layout alt på brødbrættet ligesom fritzskitsen ovenfor. Afbryd Bluetooth -adapterens serielle TX- og RX -linjer på STM32F103C's PA9- og PA10 -ben. Tilslut din FTDI og dit program. Sørg for, at de serielle buslinjer krydses, RX til Tx og Tx til RX. Den ene modtager, og den anden giver.

Når programmet er indlæst, kan du åbne den serielle konsol og sende

for at se om lysene virker. Hvis lysene virker, kan du sende

igen for at slukke dem.

Sæt din bil på en blok for at hæve dækkene og sende

Hjulene skal gå fremad. Hvis de ikke gør det, skal du vende ledningerne. Husk, hvordan vi mærket ledningerne tidligere. De tilsvarende stifter på L293D skal matches.

Send for at stoppe

Lad os se på de væsentlige ændringer i koden.

I den kommenterede sektion, begyndende, skal du se filernes ophavsmand fra Ardumotive. De næste par kommentarer forklarer, hvor jeg har ændret mig lidt for at afspejle STM32F103C.

/ * * Oprettet af Vasilakis Michalis // 12-12-2014 ver.2

* Projekt: Styr RC -bil via Bluetooth med Android Smartphone * Flere oplysninger på https://www.ardumotive.com * * Ændret denne kode for at passe til STM32F103 af Jim Garbe, [email protected] * Flere oplysninger på https:// github.com/jgarbe/RCCAR_STM32F103C*Bemærk, at 8-bit værdier 0-255 er blevet ændret til*afspejler 16-bit værdier 0-65535*//****************** **********På STM32 fungerer den analoge skrivning stadig ved 8-bit 255,*Men du kan få den fulde funktion af PWM-området, 0-65535, ved at deklarere stiften som PWM*OG ved hjælp af pwmWrite () i stedet for analogWrite () *****************************/

Mest bemærkelsesværdigt er benene ikke navngivet på samme måde mellem Arduino og STM32F103C. Vi erklærer stifterne ved hjælp af det næste sæt linjer. Der er en stift tilbage, der er erklæret langt nede i løkken. På linje 197 bruges PA5 til at aflæse batteriniveauet.

//// L293 Forbindelse

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

Også ved hjælp af analogWrite (); vil stadig arbejde på "BluePill". Men det er bedre at erklære PWM -benene ved hjælp af, pinMode (, PWM);

Brug derefter

pwmWrite (,);

BEMÆRK: 8-bit = 0-255, 16-bit = 0-65535

Linje 32-44 er ændringer foretaget af batteriet. Hvis du vil bruge batteriniveaukontrol, skal du bruge en stemmeafdeler til det batteri, du har. Denne del afspejles ikke i Fritzing -skitsen. Der er masser af forklaringer på, hvordan man opretter en spændingsdeler på Youtube. Fordi STM32F103C er en 3.3v chip, rettede jeg koden her til fysisk at bruge en spændingsdeler. Arduino kan tåle nogle højere spændinger gennem de medfølgende ADC'er, men den "blå pille" kan ikke.

/* Batteriniveau kontrolleres på Pin PA5

* Ændrede den næste linje for STM32F103C, fordi ADC ikke kan håndtere * noget over 3,3v * Jeg har lige kommenteret det * En spændingsdeler, der bruger to modstande skal beregnes og bruges * til at måle ADC -input længere nede i koden * eksempel: * GND --- 2K modstand ----------------- 1K modstand ------ 5v * | * | * 3.3v */ // const float maxBattery = 3.3; // Skift værdi til dit maksimale batterispændingsniveau!

Trin 3: Sæt det hele sammen

Sæt det hele sammen
Sæt det hele sammen
Sæt det hele sammen
Sæt det hele sammen
Sæt det hele sammen
Sæt det hele sammen
Sæt det hele sammen
Sæt det hele sammen

Jeg bruger normalt et proto-board til at placere stykkerne og loddet mellem hullerne for at forbinde alt. Nogle gange "deadbug loddemetal" alt sammen for mere af en Frankenstein/3D wad af loddetin look.

Jeg valgte denne hybridmetode for at gøre enheden ren og let- og selvfølgelig BILLIG!

Denne metode giver også mulighed for mærkning. En af de værste dele af deadbug lodning er, når du ser på en IC -chip fra bunden og glemmer, hvilken pin der er hvad.

Billederne ovenfor er lidt selvforklarende. Jeg gætter på, at den svære del er at finde den tynde nok pap til at fordybe og være stiv på samme tid. Du kan også bruge plast, men det er lidt sværere at markere det. Når jeg trykker stifterne til brættet og markerer fordybningerne, bruger jeg en Dremel til at bore hvert hul gennem.

Hvis du ikke allerede har bemærket det, har jeg kun lysene som tilbehørsstik på tavlen. Jeg bruger ikke batteriindikatoren eller bipper. Det er fordi mit projekt er til et andet formål. Det vil være selvforklarende, når du ser det færdige resultat med bilkarosseri. … men dette bringer en anden idé, Der er mange ubrugte pins på dette projekt. Måske en bagagerumsåbner, bildøråbner, brand-krakker detonator, …… eller endda en mini-Galvani-Edison Luminiferous Aether Disturbance Generator!

Når hele lodningen er afsluttet, skal du teste, inden du varmlimer leddene for at aflaste spændingerne på ledningerne.

Jeg brugte den samme Android -app som Ardumotive. Den kan findes på

Når du har testet bilens funktioner, er det tid til at placere batteriet og skifte. Gå til næste trin.

Trin 4: Batteri og switch

OK, det er her du ikke kan følge min plan nøjagtigt.

På en eller anden måde bliver du nødt til at finde et godt sted at sætte batteriet på bilen med enten en måde at oplade batteribanken fra en dongle eller en måde at oplade batteristikket direkte på. I den indledende video tapede jeg bare batteriet og mikrokontrolleren til rammen og kørte den. Da jeg ville stoppe, tog jeg bare stikket ud af batteriet. Problemet med denne opsætning er forgængeligheden af stikkene på dit USB -kabel og/eller din powerbank. Det er bedre at have en switch.

Du bliver også nødt til at finde et godt sted til kontakten, hvor bilens karrosseri stadig giver adgang. Jeg brugte en almindelig trykknapkontakt (ikke en øjeblikkelig kontakt), og monterede den i bunden af rammen, hvor det originale batterirum er placeret.

Du bliver nødt til at skære et USB -kabel i halve og sætte kontakten mellem batteriet og STM32F103C USB -porten. Ja, du kan forsyne STM32F103C med USB -porten. Du kan bare ikke programmere det via USB -porten. Jeg brugte en Dremel igen til at bore nogle huller til switchlodestifterne. Efter lodning brugte jeg Hot Lim, igen til at forstærke forbindelserne.

Trin 5: Sæt din karosseri på karmen

OK, jeg sagde, at jeg havde en ny hensigt med den originale Arduino-version af denne bil. Det egentlige slutprodukt var altså en scenestøtte til "Nøddeknækkeren" ballet udført af vores lokale balletkompagni. I åbningsscenen løb en mus hen over scenen med Drosselmeyers utilsigtede magi. Jeg brugte en IKEA rotte og monterede den oven på rammen, Arduino og meget større batteripakke. Rekvisitten var tung og ikke genopladelig. Dette er meget bedre!

God fornøjelse med din bil. Husk, at der er mange flere ben på STM32F103C, der kan bruges. Måske en skunk lignende den i "Toy Story 4."

Anbefalede: