Мазмұны:

STM32F103C және L293D бар Bluetooth RC автокөлігі - Арзан: 5 қадам
STM32F103C және L293D бар Bluetooth RC автокөлігі - Арзан: 5 қадам

Бейне: STM32F103C және L293D бар Bluetooth RC автокөлігі - Арзан: 5 қадам

Бейне: STM32F103C және L293D бар Bluetooth RC автокөлігі - Арзан: 5 қадам
Бейне: Программирование STM32 Blue Pill с помощью релейной логики ПЛК LDmicro 2024, Маусым
Anonim
Image
Image
Батарея жегішті жойыңыз!
Батарея жегішті жойыңыз!

Мен Ardumotive_com ұсынған сияқты Bluetooth Arduino автокөлігін жасадым. Мендегі мәселе батареялар мен олардың салмағы мен шығындары болды. Содан бері ұялы телефондарға арналған арзан қуат банктері өте қолжетімді болды. Маған салмақты азайту керек болды. Мен арзан болғандықтан, мен STM32F103C микроконтроллеріне ауыстым. STM32F103C микроконтроллерін 2 доллардан арзанға сатып алуға болады және ол Arduino -ға қарағанда әлдеқайда аз. Мен STM32F103C -мен жұмыс істеу үшін кодты біраз өзгерттім.

Жабдықтар

  • Батареяларды тұтынатын қашықтан басқару пульті бар арзан көлік. Иә, дәл Ardumotive_com қолданатын сияқты. Сіз жүйені өшіріп, оның орнына телефон қуат банкісін қолданасыз. Егер сізде жеке шасси құрастыруға ресурстарыңыз болса, оған қол жеткізіңіз. Мен көшедегі ойыншықтар дүкеніне барып, 10 доллардан төмен көлік сатып алдым. Автокөлік батареяларды жейді, ал пульт батареяларды жейді-жақсартуға өте ыңғайлы.
  • Телефон қуаты банкі- олар қазір өте арзан. Бүйірінде қуат түймесі бар қуат банктерінен адасыңыз. Сіз көлікті қадағалай алмайсыз және түймені басып тұра алмайсыз. Бұл ақымақтық.
  • L293D чипі-бұл электр қозғалтқыштарын басқаратын қос H-көпірі.
  • HC-06 Bluetooth модулі
  • Коммутатор- Мен қарапайым қосу/өшіру қосқышын қолдандым.
  • Кейбір сымдық телефон сымы жақсы болар еді, бірақ сәл үлкенірек 20 калибрі жақсы болар еді.
  • Көк таблетка мен L293D қондыруға арналған протон тақтасы немесе пластиктен немесе картоннан. Мен арзанмын, сондықтан мен жіңішке гофр картоннан шамалы басқа жүйені ойлап таптым.
  • Екі арзан USB зарядтау кабелі-оларды доллар ағашынан сатып алуға болады. Жақсы бағдарламалау кабелін пайдаланбаңыз. Біреуі қосу/өшіру қосқышы үшін кесіледі, екіншісі батареяны зарядтайды.

Қосымша

  • 4 жарық диоды -егер сіз фаралар мен артқы шамдарды алғыңыз келсе.
  • 4 220 Ом резисторы- 3.3В жүйесіндегі жарықдиодты шамдар үшін.
  • Мүйізге арналған пьезо немесе шағын динамик.

Құралдар

  • Дәнекерлеуіш пен дәнекерлеуіш
  • Ыстық желім тапаншасы- Менің қызым- ыстық желім тапаншасы Ниндзя!
  • Сым тартқыштар мен сниптер
  • ЕСКЕРТПЕ: егер сіз протон тақтасынан гөрі мен қолданатын картон техникасын қолдансаңыз, сізге Dremel немесе кішкене бұрғы қажет болады

1 -қадам: Батарея жегішті жойыңыз

Батарея жегішті жойыңыз!
Батарея жегішті жойыңыз!

Батарея жегішті бұзатын көңілді уақыт келді! Иә, бұны түсінемін! Әлемді көгалдандыруға өз үлесіңізді қосып жатқаныңызды мақтан тұтыңыз. Жарайды, бұл созылу, бірақ бәрібір … Рамкаға өтіңіз.

Жоғарыда мен Arduino нұсқасын жасаған қондырғы. Arduino нұсқасы автокөлікті ауырлататын салмақты батарея қуатын пайдаланды. Сонымен, мен оны кадрға қайта түсірдім. Мен пластикалық бөтелке мен ыстық желімнен бірнеше қалақшалар қосып, корпусты баптадым. Дене туралы толығырақ кейінірек.

Қозғалтқышы мен рульі жалаңаш болғаннан кейін, мотор терминалдарының қай жағы екенін табыңыз. Қозғалтқышты тексеру үшін аккумуляторды немесе 5В зарядтағышты қолданыңыз.

Рульдік қозғалтқышта дөңгелектер оңға бұрылғанда оң аккумуляторлық сымды «3» және теріс сымды «6» деп белгілеңіз.

Қозғалтқыш қозғалтқышында дөңгелектер алға қарай айналған кезде аккумулятордың оң сымын «14» және теріс сымды «11» белгісін қойыңыз.

2 -қадам: Arduino IDE ішіндегі код

Arduino IDE ішіндегі код
Arduino IDE ішіндегі код
Arduino IDE ішіндегі код
Arduino IDE ішіндегі код

Егер сіз машинаның электроникасын алдымен тақтаға прототиптесеңіз жақсы болар еді.

Жарайды, бұл күрделі бөліктердің бірі. «Көк таблетканы» USB порты арқылы бағдарламалау мүмкін емес. Мен «Көк таблетканың» бағдарламалауға түсініктемесін Джуп Броккингтің Youtube бейнесінен оңай таба алмадым. Бұл сізге Роджер Кларктың STMduino кітапханасын қосқанда білу қажет барлық нәрсені түсіндіреді. Жүктеушіні орнатудың тәсілі бар, сондықтан сіз USB көгілдір таблеткасын бағдарламалау үшін пайдалана аласыз, бірақ бәрібір жүктеушіні сериялық шина арқылы бағдарламалау керек.

Өкінішке орай, сериялық шинаны Bluetooth адаптері де қолданады. Бағдарлама алдымен FTDI арқылы Serial Bus, PA9 және PA10 түйреуіштері арқылы орнатылуы керек, содан кейін Bluetooth адаптерімен барлық параметрлерді тексеруге болады.

Нан тақтасын қолданыңыз және тақтаның барлығын жоғарыдағы фризинг эскизі сияқты орналастырыңыз. STM32F103C PA9 және PA10 түйреуіштеріндегі Bluetooth адаптерінің Serial TX және RX желілерін ажыратыңыз. FTDI мен бағдарламаны қосыңыз. Сериялық автобус желілерінің қиылысқанына көз жеткізіңіз, RX - Tx және Tx - RX. Бірі алады, екіншісі береді.

Бағдарлама жүктелгеннен кейін сериялық консольді ашып жіберуге болады

шамдардың жұмыс істеп тұрғанын білу үшін. Егер шамдар жұмыс істесе, жібере аласыз

қайтадан оларды өшіру үшін.

Дөңгелектерді көтеріп, жіберу үшін көлікті блокқа қойыңыз

Дөңгелектер алға қарай жүруі керек. Егер олар болмаса, сымдарды кері айналдырыңыз. Есіңізде болсын, біз бұрын сымдарды қалай таңбаладық. L293D сәйкес түйреуіштері сәйкес келуі керек.

Тоқтату үшін жіберіңіз

Кодекстегі елеулі өзгерістерді қарастырайық.

Түсіндірілген бөлімде, басында сіз Ardumotive -ден файлдардың түпнұсқасын көресіз. Келесі бірнеше түсініктемелерде STM32F103C көрсету үшін қайда өзгергенімді түсіндіреді.

/ * * Авторы Василакис Михалис // 12-12-2014 вер.2

* Жоба: Android смартфонымен Bluetooth арқылы RC автокөлігін басқару * Қосымша ақпарат https://www.ardumotive.com сайтынан * * Бұл кодты STM32F103 сәйкес етіп өзгертті, Джим Гарбе, [email protected] * Қосымша ақпарат https:// github бойынша.com/jgarbe/RCCAR_STM32F103C*0-255 8-разрядты мәндер*16-биттік мәндерді көрсететінге өзгертілгенін ескеріңіз 0-65535*//****************** **********STM32-де аналогты жазу әлі де 8-разрядты 255-де жұмыс істейді,*бірақ түйреуішті PWM деп жариялау арқылы PWM диапазонының толық функциясын 0-65535 алуға болады*ЖӘНЕ analogWrite () орнына pwmWrite () көмегімен ****************************/

Ең бастысы, түйреуіштер Arduino мен STM32F103C арасында бірдей аталмайды. Біз түйреуіштерді келесі жолдар жиынтығының көмегімен жариялаймыз. Циклда төмен деп жарияланған бір түйреуіш қалды. 197 -жолда PA5 батарея деңгейін оқу үшін қолданылады.

//// L293 қосылымы

const int motorA1 = PB6; // L293 const int motorA2 = PB7 15 түйреуішіне; // L293 const int motorB1 = PB8 10 түйреуішіне; // L293 const int motorB2 = PB9 7 -ші түйреуішке; // L293 2 түйреуішіне // STM32F103C қосылатын светодиодтар A12 const int шамдары PA12; // Buzzer /Speaker to Arduino UNO Pin A8 const int buzzer = PA8; // Bluetooth (HC-06 JY-MCU) STM32F103C const int BTState = PA11 A11 түйреуішіндегі күй штыры;

Сонымен қатар analogWrite () көмегімен; ол әлі де «BluePill» жұмыс істейді. Бірақ PWM түйреуіштерін жариялау жақсы, pinMode (, PWM);

Содан кейін қолданыңыз

pwmWrite (,);

ЕСКЕРТУ: 8 биттік = 0-255, 16 биттік = 0-65535

32-44 жолдар-бұл батареяға енгізілген өзгерістер. Егер сіз батарея деңгейін тексеруді қолданатын болсаңыз, сізде бар батарея үшін дауыс бөлгішті пайдалану қажет. Бұл бөлік Fritzing эскизінде көрсетілмеген. Youtube -те кернеу бөлгішті құру туралы көптеген түсініктемелер бар. STM32F103C - 3,3 вольтты чип болғандықтан, мен кернеу бөлгішті физикалық қолдану үшін кодты осында бекіттім. Arduino қамтамасыз етілген ADC арқылы кейбір жоғары кернеулерге шыдай алады, бірақ «Көк таблетка» шыдай алмайды.

/* PA5 түйреуішінде батарея деңгейі тексеріледі

* STM32F103C келесі жолын өзгертті, себебі ADC * 3.3в -тан асатын нәрсені өңдей алмайды * Мен жай ғана түсіндірдім * Екі резисторды қолданып кернеу бөлгішті есептеп, ADC кірісін одан әрі төмен өлшеу үшін қолданыңыз * * мысал: * GND --- 2K резистор ----------------- 1K резистор ------ 5v * | * | * 3.3v */ // const float maxBattery = 3.3; // Батарея кернеуінің максималды деңгейіне мәнді өзгертіңіз!

3 -қадам: Барлығын біріктіріңіз

Барлығын бірге қойыңыз
Барлығын бірге қойыңыз
Барлығын бірге қойыңыз
Барлығын бірге қойыңыз
Барлығын бірге қойыңыз
Барлығын бірге қойыңыз
Барлығын бірге қойыңыз
Барлығын бірге қойыңыз

Мен, әдетте, бәрін біріктіру үшін тесіктердің арасына бөлшектер мен дәнекерлеуді қою үшін протонды тақтаны қолданамын. Кейде мен Франкенштейн/3D дәнекерлеудің қосымша көрінісі үшін бәрін біріктіріп «дәнекерлеймін».

Мен құрылғыны таза және жеңіл ету үшін осы гибридті әдісті таңдадым- және, әрине, АРЗАН!

Бұл әдіс таңбалауға мүмкіндік береді. Дәнекерлеудің ең нашар бөліктерінің бірі - IC чипін төменнен қарап, қандай түйреуіш екенін ұмытып кету.

Жоғарыдағы суреттер өзінше түсінікті. Менің ойымша, қиын бөлігі - бір уақытта қатып қалатын және жіңішке картонды табу. Сіз пластикті де қолдана аласыз, бірақ оны белгілеу сәл қиынырақ. Мен түйреуіштерді тақтаға басып, шұңқырларды белгілегеннен кейін, мен әрбір түйреуіш тесікті Dremel көмегімен бұрғылаймын.

Егер сіз әлі байқамаған болсаңыз, менде тақтада қосымша шанышқы ретінде шамдар бар. Мен батарея индикаторын да, дыбыстық сигналды да пайдаланбаймын. Себебі менің жобам басқа мақсатқа арналған. Автокөліктің корпусымен аяқталған нәтижені көргеннен кейін бұл өздігінен түсіндіріледі. … бірақ бұл тағы бір идея әкеледі, бұл жобада пайдаланылмаған түйреуіштер көп. Магистральдық ашқыш, автокөліктің есігін ашатын құрал, өрт сөндіргіш,…… тіпті мини-Галвани-Эдисонның жарқыраған эфирлік бұзылу генераторы!

Барлық дәнекерлеу аяқталғаннан кейін, сымдардың кернеуін төмендету үшін буындарды ыстық желімдеу алдында тексеріңіз.

Мен Ardumotive сияқты Android қосымшасын қолдандым, оны https://play.google.com/store/apps/details?id=braulio.calle.bluetoothRCcontroller сайтынан табуға болады.

Автокөліктің функцияларын тексергеннен кейін, аккумуляторды орналастыру және ауыстыру уақыты келді. Келесі қадамға өтіңіз.

4 -қадам: Батарея мен қосқыш

Жарайды, бұл жерде сіз менің жоспарымды дәл орындай алмайсыз.

Қалай болғанда да, сіз аккумуляторды автокөлікке қоюдың жақсы орнын табуыңыз керек: батареяны банктен ажырату немесе батарея ашасын тікелей зарядтау әдісі. Кіріспе видеода мен аккумулятор мен микроконтроллерді кадрға жапсырып, іске қостым. Мен тоқтағым келгенде, мен жай ғана батареяны тоқтан ажыраттым. Бұл баптаудағы мәселе - USB кабеліндегі және/немесе қуат банкіндегі штепсельдердің тез бұзылуы. Коммутатор болғаны жақсы.

Сондай -ақ, коммутатор үшін автокөліктің корпусы әлі де кіруге мүмкіндік беретін жақсы орын табу керек болады. Мен қарапайым түймені ауыстырғышты қолдандым (бір сәттік қосқыш емес) және оны батареяның түпнұсқалық бөлімі орналасқан жақтаудың түбіне орнаттым.

Сіз USB кабелін екіге бөліп, батарея мен STM32F103C USB порты арасындағы қосқышты қоюыңыз керек. Иә, сіз STM32F103C құрылғысын USB порты арқылы қуаттай аласыз. Сіз оны USB порты арқылы бағдарламалай алмайсыз. Мен тағы да Dremel -ді пайдаланып, қосқыштың дәнекерлеу түйреуіштеріне тесіктер бұрғыладым. Дәнекерленгеннен кейін мен ыстық желімді қайтадан байланыстарды нығайту үшін қолдандым.

5 -қадам: Көліктің корпусын жақтауға қойыңыз

Жарайды, мен бұл машинаның түпнұсқалық Arduino нұсқасын қайта ойластырғанымды айттым. Нағыз соңғы өнім, біздің жергілікті балет компаниясы орындаған «Щелкунчик» балетінің сахналық реквизиті болды. Алғашқы сахнада тышқан Дросселмейердің кездейсоқ сиқырымен сахнадан жүгіріп өтті. Мен IKEA егеуқұйрығын қолдандым және оны жақтаудың үстіне, Arduino және әлдеқайда үлкен аккумуляторлық батареяға қойдым. Тірек ауыр болды және қайта зарядталмайды. Бұл әлдеқайда жақсы!

Көлігіңізбен көңілді болыңыз. Есіңізде болсын, STM32F103C -те қолдануға болатын көптеген түйреуіштер бар. Мүмкін, «Ойыншықтар туралы әңгіме 4» -тегі ұқсас саңырауқұлақ.

Ұсынылған: