INHOUDSOPGAWE:

Bluetooth RC -motor met STM32F103C en L293D - goedkoop: 5 stappe
Bluetooth RC -motor met STM32F103C en L293D - goedkoop: 5 stappe

Video: Bluetooth RC -motor met STM32F103C en L293D - goedkoop: 5 stappe

Video: Bluetooth RC -motor met STM32F103C en L293D - goedkoop: 5 stappe
Video: STM32 - программирование для начинающих. Пошагово. CubeMX CubeIDE 2024, September
Anonim
Image
Image
Vernietig die battery -eter!
Vernietig die battery -eter!

Ek het 'n Bluetooth Arduino -motor gemaak soos die hier uitgebeeld deur Ardumotive_com. Die probleem wat ek ondervind het, was batterye en hul gewig sowel as hul koste. Sedertdien het goedkoop kragbanke vir selfone baie bekostigbaar geword. Al wat ek hoef te doen is om die gewig te verminder. Omdat ek goedkoop is, het ek oorgeskakel na die STM32F103C -mikrokontroleerder. Die STM32F103C -mikrokontroleerder kan vir minder as $ 2 gekoop word en is baie kleiner as 'n Arduino. Ek het 'n bietjie van die kodering verander om ook met die STM32F103C te werk.

Voorrade

  • 'N Goedkoop motor met afstandbeheer wat batterye vreet. Ja, net soos die een wat Ardumotive_com gebruik. U skakel die stelsel uit en gebruik eerder 'n telefoonbank. As u die hulpbronne het om u eie onderstel te bou, doen dit. Ek het na die speelgoedwinkel in die straat gegaan en 'n goedkoop motor vir minder as $ 10 gekoop. Die motor eet batterye, en die afstandsbediening eet batterye-perfek vir verbetering.
  • 'N Telefoonkragbank- hulle is nou baie goedkoop. Dwaal weg van die kragbanke met 'n aan / uit -knoppie aan die kant. U sal nie u motor kan volg en die knoppie kan hou nie. Dit is dom.
  • 'N L293D-chip-Dit is die dubbele H-brug wat die elektriese motors sal beheer.
  • 'N HC-06 Bluetooth-module
  • 'N Skakelaar- ek het 'n eenvoudige aan/uit-skakelaar gebruik.
  • Sommige Wire -telefoondraad sal goed wees, maar 'n bietjie groter gestrande 20 meter sou beter wees.
  • 'N Proto -bord of 'n stuk plastiek of karton om u Blue Pill en L293D te monteer. Ek is goedkoop, en ek het 'n bietjie ander stelsel gekry met dun golfkarton- soos uit 'n gloeilampkas.
  • Twee goedkoop USB-laaikabels-dit kan by 'n Dollar Tree gekoop word. Moenie u goeie programmeerkabel gebruik nie. Die een word gesny vir die aan/uit -skakelaar, en die ander laai die battery.

Opsioneel

  • 4 LED's -as u kop- en agterligte wil hê.
  • 4 220 Ohm weerstande- vir die LED's op 'n 3.3v-stelsel.
  • 'N Piëzo of klein luidspreker vir 'n horing.

Gereedskap

  • Soldeerbout en soldeer
  • Hot Glue Gun-- My dogter is 'n Hot Glue Gun Ninja!
  • Draadstroppers en -snipsels
  • OPMERKING: as u die kartontegniek gebruik wat ek gebruik eerder as 'n protobord, benodig u 'n Dremel of 'n klein boor

Stap 1: Vernietig die batteryeter

Vernietig die battery -eter!
Vernietig die battery -eter!

Dit is tyd om pret te hê om die batteryvreter te vernietig! Ja, DIT IS DIT! Wees trots daarop dat u u deel daarvan bydra om die wêreld groener te maak- OK, dit is 'n stuk, maar in elk geval … Kom by die raam.

Hierbo is dieselfde eenheid as wat ek die Arduino -weergawe gemaak het. Die Arduino -weergawe het ernstige batterykrag gebruik wat die motor swaarder gemaak het. Dus, ek het dit terug na die raam geneem. Ek het 'n paar spatborde van 'n plastiekbottel en warm gom bygevoeg en die liggaam aangepas. Later meer oor die liggaam.

Sodra u die raam met die motors en die stuur kaal het, vind u watter kant van die motorterminale is. Gebruik 'n battery of 'n 5V -laaier om die motor te toets.

As die wiele regs draai op die stuurmotor, merk die positiewe batterydraad "3" en die negatiewe draad, "6".

As die wiele vorentoe draai, merk die positiewe batterydraad "14" en die negatiewe draad "11" op die motor.

Stap 2: Die kode in Arduino IDE

Die kode in Arduino IDE
Die kode in Arduino IDE
Die kode in Arduino IDE
Die kode in Arduino IDE

Dit kan die beste wees as u die motor se elektronika eers op 'n broodbord prototipeer.

OK, dit is een van die moeilike dele. Die "Blue Pill" kan nie deur die USB -poort geprogrammeer word nie. Ek het nie 'n makliker verduideliking van die programmering van die 'Blue Pill' gekry as die Youtube -video van Joop Brokking nie. Dit verduidelik alles wat u moet weet, insluitend die STMduino -biblioteek van Roger Clarke. Daar is 'n manier om 'n selflaaiprogram te installeer, sodat u die USB kan gebruik om die 'Blue Pill' te programmeer, maar u moet die selflaaiprogram in elk geval deur die Serial Bus programmeer.

Ongelukkig word die Serial Bus ook deur die Bluetooth -adapter gebruik. Die program moet eers via die Serial Bus, PA9 en PA10 penne geïnstalleer word, via 'n FTDI, dan kan u al u instellings met die Bluetooth -adapter nagaan.

Gebruik 'n broodbord en lê alles op die broodbord neer, net soos die skets hierbo. Ontkoppel die seriële TX- en RX -lyne van die Bluetooth -adapter op die PA9- en PA10 -penne van die STM32F103C. Sluit u FTDI en program aan. Maak seker dat die Serial Bus -lyne gekruis word, RX na Tx en Tx na RX. Die een ontvang en die ander gee.

Sodra die program gelaai is, kan u die reekskonsole oopmaak en stuur

om te sien of die ligte werk. As die ligte werk, kan u stuur

weer om hulle weer af te skakel.

Sit u motor op 'n blok om die bande op te lig en te stuur

Die wiele moet vorentoe gaan. As dit nie die geval is nie, draai die drade om. Onthou hoe ons die drade vroeër gemerk het. Die ooreenstemmende penne van die L293D moet ooreenstem.

Om te stop, stuur

Kom ons kyk na die beduidende veranderinge in die kode.

In die gedeelte met kommentaar, aan die begin, moet u die oorspronklike lêers van Ardumotive sien. Die volgende paar opmerkings verduidelik waar ek 'n bietjie verander het om die STM32F103C weer te gee.

/ * * Geskep deur Vasilakis Michalis // 12-12-2014 ver.2

* Projek: Beheer RC -motor via Bluetooth met Android -slimfoon * Meer inligting op https://www.ardumotive.com * * Hierdie kode verander om te pas by STM32F103 deur Jim Garbe, [email protected] * Meer inligting by https:// github.com/jgarbe/RCCAR_STM32F103C*Let daarop dat 8-bis waardes 0-255 verander is tot*weerspieël 16-bis waardes 0-65535*//****************** **********Op die STM32 werk die analoog skryf nog steeds by 8-bis 255,*maar u kan die volle funksie van die PWM-reeks, 0-65535, kry deur die pen as PWM*EN te verklaar gebruik pwmWrite () in plaas van analogWrite () ****************************/

Die penne word veral nie op dieselfde manier genoem tussen die Arduino en die STM32F103C nie. Ons verklaar die penne met behulp van die volgende stel reëls. Daar is nog 'n pen oor wat in die lus uiteengesit word. Op reël 197 word PA5 gebruik om die batteryniveau te lees.

//// L293 -verbinding

const int motorA1 = PB6; // na pen 15 van L293 const int motorA2 = PB7; // na Pin 10 van L293 const int motorB1 = PB8; // na pen 7 van L293 const int motorB2 = PB9; // aan pen 2 van L293 // Leds gekoppel aan STM32F103C Pin A12 const int lights = PA12; // Gonser /luidspreker na Arduino UNO Pin A8 const int gonser = PA8; // Bluetooth (HC-06 JY-MCU) Speld op pen A11 van STM32F103C const int BTState = PA11;

Gebruik ook analogWrite (); sal steeds aan die "BluePill" werk. Maar dit is beter om die PWM -penne te verklaar met:

pinMode (, PWM);

Gebruik dan

pwmWrite (,);

LET WEL: 8-bis = 0-255, 16-bis = 0-65535

Lyne 32-44 is veranderinge aan die battery. As u die batteryniveau -kontrole gaan gebruik, moet u 'n stemverdeler gebruik vir die battery wat u het. Hierdie deel word nie weerspieël in die Fritzing -skets nie. Daar is baie verduidelikings oor hoe om 'n spanningsverdeler op Youtube te skep. Omdat die STM32F103C 'n 3.3v -chip is, het ek die kode hier reggemaak om fisies 'n spanningsverdeler te gebruik. Die Arduino kan 'n paar hoër spannings duld deur die ADC's wat verskaf word, maar die 'Blue Pill' kan dit nie.

/* Die batteryniveau word op Pin PA5 nagegaan

* Die volgende reël vir die STM32F103C verander omdat die ADC niks meer as 3,3v kan hanteer nie. * voorbeeld: * GND --- 2K weerstand ----------------- 1K weerstand ------ 5v * | * | * 3.3v */ // const float maxBattery = 3.3; // Verander die waarde na u maksimum batterispanning!

Stap 3: Sit dit alles saam

Sit dit alles saam
Sit dit alles saam
Sit dit alles saam
Sit dit alles saam
Sit dit alles saam
Sit dit alles saam
Sit dit alles saam
Sit dit alles saam

Ek gebruik gewoonlik 'n protobord om die stukke en soldeersel tussen die gate te plaas om alles te verbind. Soms "deadbug soldeer" ek alles saam vir meer van 'n Frankenstein/3D -stuk soldeervoorkoms.

Ek het hierdie hibriede metode gekies om die toestel skoon en lig te maak- en natuurlik goedkoop!

Hierdie metode maak ook voorsiening vir etikettering. Een van die ergste dele van 'n dooibok -soldering is as u van onder na 'n IC -chip kyk en vergeet watter pen dit is.

Die foto's hierbo verduidelik 'n bietjie selfverduideliking. Ek dink die moeilike deel is om die dun karton te vind om terselfdertyd te duik en styf te wees. U kan ook plastiek gebruik, maar dit is 'n bietjie moeiliker om dit te merk. Sodra ek die penne teen die bord druk en die kuiltjies merk, gebruik ek 'n Dremel om elke pengat deur te boor.

As u dit nog nie opgemerk het nie, het ek slegs die ligte as 'n bykomstige prop op die bord. Ek gebruik nie die battery -aanwyser nie, en ook nie die pieper nie. Dit is omdat my projek vir 'n ander doel is. Dit sal vanselfsprekend wees as u die voltooide resultaat met die karrosserie sien. … maar dit bring 'n ander idee: daar is baie ongebruikte penne op hierdie projek. Miskien 'n kattebakopener, motordeuropener, vuurwaaier, … … of selfs 'n mini-Galvani-Edison Luminiferous Aether Disturbance Generator!

Sodra al die soldeerwerk voltooi is, toets voordat u die gewrigte warm plak om die spanning op die drade te verlig.

Ek het dieselfde Android -app as Ardumotive gebruik; dit kan gevind word op

Sodra u die motor se funksies getoets het, is dit tyd om die battery te plaas en te skakel. Gaan na die volgende stap.

Stap 4: Battery en skakelaar

OK, dit is waar u my plan nie presies kan volg nie.

Op een of ander manier moet u 'n goeie plek vind om u battery in die motor te plaas, 'n manier om die batterybank van 'n dongle af te laai, of 'n manier om die batteryprop direk te laai. In die inleidingsvideo het ek net die battery en die mikrobeheerder op die raam vasgeplak en uitgevoer. Toe ek wou stop, het ek die battery net ontkoppel. Die probleem met hierdie opstelling is die verganklikheid van die proppe op u USB -kabel en/of u kragbank. Dit is beter om 'n skakelaar te hê.

U sal ook 'n goeie plek vir die skakelaar moet vind, waar die karrosserie nog steeds toegang bied. Ek gebruik 'n gewone drukknopskakelaar (nie 'n kort skakelaar nie) en plaas dit onderaan die raam waar die oorspronklike batterykompartement geleë is.

U moet 'n USB -kabel middeldeur sny en die skakelaar tussen die battery en die STM32F103C USB -poort plaas. Ja, u kan die STM32F103C met die USB -poort voed. U kan dit eenvoudig nie deur die USB -poort programmeer nie. Ek het weer 'n Dremel gebruik om 'n paar gate vir die skakelaar soldeerstukke te boor. Nadat ek gesoldeer was, het ek Hot Glue gebruik, weer om die verbindings te versterk.

Stap 5: Sit u motorliggaam op die raam

OK, ek het gesê dat ek die oorspronklike Arduino-weergawe van hierdie motor herbedoel het. Die eintlike produk was dus 'n verhoogstut vir die "The Nutcracker" -ballet uitgevoer deur ons plaaslike balletgeselskap. In die openingstoneel hardloop 'n muis oor die verhoog met Drosselmeyer se toevallige magie. Ek gebruik 'n IKEA -rat en plaas dit bo -op die raam, Arduino, en 'n veel groter battery. Die stut was swaar en nie herlaaibaar nie. Dit is baie beter!

Om pret te hê met u motor. Onthou dat daar baie meer penne op die STM32F103C is wat gebruik kan word. Miskien 'n skunk soortgelyk aan die in "Toy Story 4."

Aanbeveel: