Innehållsförteckning:

Bluetooth RC -bil med STM32F103C och L293D - Billigt: 5 steg
Bluetooth RC -bil med STM32F103C och L293D - Billigt: 5 steg

Video: Bluetooth RC -bil med STM32F103C och L293D - Billigt: 5 steg

Video: Bluetooth RC -bil med STM32F103C och L293D - Billigt: 5 steg
Video: Stm32f103 temperature meter 2024, September
Anonim
Image
Image
Förstör batteriätaren!
Förstör batteriätaren!

Jag gjorde en Bluetooth Arduino -bil som den som visas här, av Ardumotive_com. Problemet jag hade var batterier och deras vikt samt deras kostnad. Sedan dess har billiga kraftbanker för mobiltelefoner blivit mycket prisvärda. Allt jag behövde göra var att minska vikten. Eftersom jag är billig gick jag över till STM32F103C Microcontroller. STM32F103C mikrokontroller kan köpas för mindre än $ 2, och är mycket mindre än en Arduino. Jag ändrade lite av kodningen för att fungera med STM32F103C också.

Tillbehör

  • En billig fjärrkontrollbil som äter batterier. Ja, precis som den som Ardumotive_com använder. Du stänger av systemet och använder en telefonens powerbank istället. Om du har resurser för att bygga ditt eget chassi, gör det. Jag gick till leksaksaffären på gatan och köpte en billig bil för under 10 dollar. Bilen äter batterier och fjärrkontrollen äter batterier-perfekt för förbättring.
  • En telefonbank- De är superbilliga nu. Undvik från kraftbankerna som har en strömbrytare på sidan. Du kommer inte att kunna följa din bil och hålla knappen. Det är dumt.
  • Ett L293D-chip-Detta är den dubbla H-bron som styr elmotorerna.
  • En HC-06 Bluetooth-modul
  • En switch-- Jag använde en enkel på/av-omkopplare.
  • En del Wire -telefonkabel skulle vara bra, men lite större strängad 20 gauge skulle vara bättre.
  • En Proto Board eller en bit plast eller kartong för att montera din Blue Pill och L293D. Jag är billig så jag kom på ett lite annorlunda system med tunn wellpapp- som från en glödlampa.
  • Två billiga USB-laddningskablar-Dessa kan köpas från ett Dollar Tree. Använd inte din fina programmeringskabel. Den ena skärs av för på/av -knappen och den andra laddar batteriet.

Frivillig

  • 4 lysdioder -om du vill ha strålkastare och bakljus.
  • 4 220 Ohm motstånd- för lysdioderna på ett 3.3v system.
  • En piezo eller liten högtalare för ett horn.

Verktyg

  • Lödkolv och löd
  • Hot Lim Gun- Min dotter är en Hot Glue Gun Ninja!
  • Wire strippers och snips
  • OBS! Om du använder karttekniken som jag använder snarare än en proto -bräda behöver du en Dremel eller en liten borrmaskin

Steg 1: Förstör batteriätaren

Förstör batteriätaren!
Förstör batteriätaren!

Det är dags att ha kul att förstöra batteriet! Ja, GOT DET! Känn dig stolt över att du gör din del i att göra världen grönare-- OK, det är en sträcka, men ändå … Ta dig till ramen.

Ovan är samma enhet som jag gjorde Arduino -versionen. Arduino -versionen använde seriös batterikraft som gjorde bilen tyngre. Så jag tog tillbaka den till ramen. Jag hade lagt till några stänkskärmar från en plastflaska och varmt lim och anpassat karossen. Mer om kroppen senare.

När du har ramen med motorerna och styrningen nakna, hitta vilken sida av motorterminalerna som är vilka. Använd ett batteri eller en 5V laddare för att testa motorn.

På styrmotorn, när hjulen svänger åt höger, märk den positiva batteritråden "3" och den negativa tråden "6".

På drivmotorn, när hjulen roterar framåt, märk den positiva batteritråden "14" och den negativa tråden "11".

Steg 2: Koden i Arduino IDE

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

Det kan vara bäst om du prototyper din bils elektronik först på en brödbräda.

OK, det här är en av de knepiga delarna. "Blue Pill" kan inte programmeras via USB -porten. Jag har inte hittat en enklare programmeringsförklaring av "Blue Pill" än Joop Brokings Youtube -video. Det förklarar allt du behöver veta inklusive Roger Clarkes STMduino -bibliotek. Det finns ett sätt att installera en bootloader så att du KAN använda USB för att programmera "Blue Pill", men du måste programmera bootloader via Serial Bus ändå.

Tyvärr används Serial Bus också av Bluetooth -adaptern. Programmet måste installeras via Serial Bus-, PA9- och PA10 -stiften, via en FTDI först, sedan kan du kontrollera alla dina inställningar med Bluetooth -adaptern.

Använd en brödbräda och lägg upp allt på brödbrädan precis som fritzskissen ovan. Koppla bort Bluetooth -adapterns seriella TX- och RX -linjer på STM32F103C: s PA9- och PA10 -stift. Anslut din FTDI och ditt program. Se till att Serial Bus -linjerna korsas, RX till Tx och Tx till RX. Den ena tar emot och den andra ger.

När programmet har laddats kan du öppna seriekonsolen och skicka

för att se om lamporna fungerar. Om lamporna fungerar kan du skicka

igen för att stänga av dem.

Sätt din bil på ett block för att höja däcken och skicka

Hjulen ska gå framåt. Om de inte gör det, vänd trådarna. Kom ihåg hur vi märkte trådarna tidigare. Motsvarande stift på L293D bör matchas.

För att stoppa, skicka

Låt oss titta på de betydande förändringarna i koden.

I det kommenterade avsnittet från början bör du se filernas upphovsman från Ardumotive. De kommande kommentarerna förklarar var jag har ändrat mig lite för att återspegla STM32F103C.

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

* Projekt: Styr RC -bil via Bluetooth med Android Smartphone * Mer information på https://www.ardumotive.com * * Ändrade denna kod för att passa STM32F103 av Jim Garbe, [email protected] * Mer information på https:// github.com/jgarbe/RCCAR_STM32F103C*Observera att 8-bitars värden 0-255 har ändrats till*återspeglar 16-bitars värden 0-65535*//****************** **********På STM32 fungerar den analoga skrivningen fortfarande på 8-bitars 255,*Men du kan få hela funktionen för PWM-intervallet, 0-65535, genom att deklarera stiftet som PWM*OCH använder pwmWrite () istället för analogWrite () *****************************/

Framför allt är stiften inte namngivna på samma sätt mellan Arduino och STM32F103C. Vi deklarerar stiften med nästa uppsättning rader. Det finns en stift kvar som deklareras långt ner i öglan. På rad 197 används PA5 för att läsa batterinivån.

//// L293 Anslutning

const int motorA1 = PB6; // till Pin 15 på L293 const int motorA2 = PB7; // till Pin 10 på L293 const int motorB1 = PB8; // till Pin 7 på L293 const int motorB2 = PB9; // till Pin 2 på L293 // Lysdioder anslutna till STM32F103C Pin A12 const int lights = PA12; // summer /högtalare till Arduino UNO Pin A8 const int summer = PA8; // Bluetooth (HC-06 JY-MCU) Ange stift på stift A11 i STM32F103C const int BTState = PA11;

Dessutom använder analogWrite (); kommer fortfarande att fungera på "BluePill". Men det är bättre att deklarera PWM -stiften med, pinMode (, PWM);

Använd sedan

pwmWrite (,);

OBS: 8-bitars = 0-255, 16-bitars = 0-65535

Linjerna 32-44 är ändringar av batteriet. Om du ska använda batterinivåkontrollen måste du använda en röstdelare för det batteri du har. Denna del återspeglas inte i Fritzing -skissen. Det finns gott om förklaringar om hur man skapar en spänningsdelare på Youtube. Eftersom STM32F103C är ett 3.3v -chip fixade jag koden här för att fysiskt använda en spänningsdelare. Arduino kan tolerera några högre spänningar genom de medföljande ADC: erna men "Blue Pill" kan inte.

/* Batterinivån kontrolleras på Pin PA5

* Ändrade nästa rad för STM32F103C eftersom ADC inte kan hantera * någonting över 3,3v * Jag kommenterade det just * En spänningsdelare, med två motstånd måste beräknas och användas * för att mäta ADC -ingången längre ner i koden * exempel: * GND --- 2K motstånd ----------------- 1K motstånd ------ 5v * | * | * 3.3v */ // const float maxBattery = 3.3; // Ändra värde till din max batterispänning!

Steg 3: Sätt ihop allt

Lägg samman allt
Lägg samman allt
Lägg samman allt
Lägg samman allt
Lägg samman allt
Lägg samman allt
Lägg samman allt
Lägg samman allt

Jag brukar använda en proto-board för att placera bitarna och lödet mellan hålen för att ansluta allt. Ibland "deadbug lödde" jag allt tillsammans för mer av en Frankenstein/3D -kula med lödutseende.

Jag valde denna hybridmetod för att göra enheten ren och lätt- och naturligtvis BILLIGT!

Denna metod möjliggör också märkning. En av de värsta delarna av deadbug -lödning är när du tittar på ett IC -chip från botten och glömmer vilken stift som är vad.

Bilderna ovan är lite självförklarande. Jag antar att den svåraste delen är att hitta den tunna kartongen som är tillräckligt stor för att grova och vara stel samtidigt. Du kan också använda plast men att markera det är lite svårare. När jag trycker på stiften mot brädet och markerar groparna använder jag en Dremel för att borra igenom varje stifthål.

Om du inte redan har märkt det har jag bara lamporna som tillbehörskontakt på kortet. Jag använder inte batteriindikatorn, inte heller pipet. Det är för att mitt projekt är för ett annat syfte. Det kommer att vara självförklarande när du ser det färdiga resultatet med bilkaross. … men detta ger en annan idé. Det finns många oanvända pins på detta projekt. Kanske en bagageöppnare, bildörröppnare, brandsprängare …… eller till och med en mini-Galvani-Edison Luminiferous Aether Disturbance Generator!

När all lödning är klar testar du innan du hettlimmar fogarna för spänningsavlastning på trådarna.

Jag använde samma Android -app som Ardumotive. Den finns på

När du har testat bilens funktioner är det dags att placera batteriet och byta. Gå till nästa steg.

Steg 4: Batteri och switch

OK, det är här du inte kan följa min plan exakt.

På något sätt måste du hitta ett bra ställe att sätta batteriet på bilen med antingen ett sätt att ladda batteribanken från en dongel eller ett sätt att ladda batterikontakten direkt. I den inledande videon tejpade jag bara batteriet och mikrokontrollern till ramen och körde den. När jag ville sluta kopplade jag bara ur batteriet. Problemet med den här inställningen är förgängligheten av kontakterna på din USB -kabel och/eller din powerbank. Det är bättre att ha en switch.

Du måste också hitta en bra plats för omkopplaren där bilkarossen fortfarande kommer att tillåta åtkomst. Jag använde en vanlig tryckknappsbrytare (inte en tillfällig omkopplare) och monterade den på botten av ramen där det ursprungliga batterifacket finns.

Du måste halvera en USB -kabel och sätta omkopplaren mellan batteriet och STM32F103C USB -porten. Ja, du kan driva STM32F103C med USB -porten. Du kan bara inte programmera det via USB -porten. Jag använde en Dremel igen för att borra några hål för switchlödstiften. Efter lödningen använde jag Hot Lim, igen för att förstärka anslutningarna.

Steg 5: Sätt din kaross på karmen

OK, jag sa att jag tänkte om den ursprungliga Arduino-versionen av den här bilen. Den faktiska slutprodukten var alltså en scenrekvisit för baletten "Nötknäpparen" framförd av vårt lokala balettföretag. I öppningsscenen sprang en mus över scenen med Drosselmeyers oavsiktliga magi. Jag använde en IKEA -råtta och monterade den ovanpå ramen, Arduino och mycket större batteripaket. Rekvisiten var tung och inte laddningsbar. Det här är mycket bättre!

Ha kul med din bil. Kom ihåg att det finns många fler stift på STM32F103C som kan användas. Kanske en skunk liknande den i "Toy Story 4."

Rekommenderad: