Агуулгын хүснэгт:

STM32F103C ба L293D бүхий Bluetooth RC машин - Хямд: 5 алхам
STM32F103C ба L293D бүхий Bluetooth RC машин - Хямд: 5 алхам

Видео: STM32F103C ба L293D бүхий Bluetooth RC машин - Хямд: 5 алхам

Видео: STM32F103C ба L293D бүхий Bluetooth RC машин - Хямд: 5 алхам
Видео: STM32. CMSIS #8. UART работа на прерываниях 2024, Есдүгээр
Anonim
Image
Image
Батерей залгуурыг устга!
Батерей залгуурыг устга!

Би Ardumotive_com -ийн дүрсэлсэн шиг Bluetooth Arduino машин хийсэн. Надад тулгарч байсан асуудал бол батерей, жин, зардлын асуудал байв. Түүнээс хойш гар утасны хямд цахилгаан банкууд маш боломжийн үнэтэй болсон. Миний хийх ёстой зүйл бол жингээ хасах явдал байв. Би хямдхан учраас STM32F103C микроконтроллер руу шилжсэн. STM32F103C микроконтроллерийг 2 доллараас бага үнээр худалдаж авах боломжтой бөгөөд Arduino -аас хамаагүй бага юм. Би STM32F103C -тэй ажиллахын тулд кодчиллыг бага зэрэг өөрчилсөн.

Хангамж

  • Зай иддэг алсын удирдлагатай хямд машин. Тийм ээ, яг Ardumotive_com ашигладаг шиг. Та системийг унтрааж, утасны цахилгаан банк ашиглах болно. Хэрэв танд өөрийн явах эд анги үйлдвэрлэх нөөц бололцоо байгаа бол үүнийг аваарай. Би гудамжинд байдаг тоглоомын дэлгүүрт ороод 10 доллараас доош үнэтэй машин худалдаж авлаа. Машин нь батарей иддэг, алсын зай нь батерей иддэг-сайжруулахад төгс төгөлдөр юм.
  • Утасны банк- Тэд одоо маш хямд байна. Хажуу талд нь цахилгаан товч байгаа цахилгаан банкуудаас холдсон. Та машинаа дагаж товчлуурыг дарж чадахгүй. Энэ бол тэнэг хэрэг.
  • L293D чип-Энэ бол цахилгаан хөдөлгүүрийг хянах хос H-Bridge юм.
  • HC-06 Bluetooth модуль
  • Шилжүүлэгч- Би асаах/унтраах энгийн унтраалгыг ашигласан.
  • Зарим утас -утасны утас сайн байх болно, гэхдээ арай том хэмжээтэй 20 хэмжигч нь илүү дээр байх болно.
  • Цэнхэр эм, L293D -ийг холбох зориулалттай прото самбар эсвэл хуванцар эсвэл картон. Би хямдхан тул гэрлийн чийдэнгийн хайрцаг шиг нимгэн Атираат картоноор хийсэн арай өөр системийг зохион бүтээсэн.
  • Хоёр хямд USB цэнэглэгч кабель-Үүнийг долларын модноос худалдаж авч болно. Сайхан програмчлалын кабелийг бүү ашиглаарай. Нэг нь асаах/унтраах унтраалгыг таслах бөгөөд нөгөө нь зайг цэнэглэх болно.

Нэмэлт

  • 4 LED -хэрэв та гэрэл, арын гэрэл хүсч байвал.
  • 4 220 Ом эсэргүүцэл- 3.3V систем дэх LED-ийн хувьд.
  • Пьезо эсвэл эвэрт зориулсан жижиг чанга яригч.

Багаж хэрэгсэл

  • Гагнуурын төмөр ба гагнуур
  • Халуун цавуу буу- Миний охин бол халуун цавуу буу Нинжа!
  • Утас хуулагч, таслагч
  • ТАЙЛБАР: Хэрэв та протон самбар гэхээсээ илүү миний ашиглаж буй картон техникийг ашиглаж байгаа бол танд Dremel эсвэл жижиг өрөм хэрэгтэй болно

Алхам 1: Батерей идэгчийг устга

Батерей залгуурыг устга!
Батерей залгуурыг устга!

Зай идэгчийг устгах хөгжилтэй цаг боллоо! Тийм ээ, үүнийг ойлгоорой! Дэлхийг ногоон болгоход өөрийн хувь нэмрийг оруулж байгаадаа бахархаж байна. За, энэ бол сунгаа, гэхдээ ямар ч байсан … Хүрээ рүү ор.

Дээрх нь миний Arduino хувилбарыг хийсэн нэгж юм. Arduino хувилбар нь батерейны ноцтой хүчийг ашигласан бөгөөд энэ нь машиныг улам хүнд болгов. Тиймээс, би үүнийг хүрээ рүү буцааж авав. Би хуванцар сав, халуун цавуунаас хэдэн хаалт нэмж, биеийг нь өөрчилж өгсөн. Бие махбодийн талаар дараа нь ярих болно.

Мотортой, жолоодлоготой хүрээтэй болсны дараа хөдөлгүүрийн терминалуудын аль тал нь болохыг олж мэдээрэй. Моторыг шалгахын тулд зай эсвэл 5V цэнэглэгч ашиглана уу.

Жолооны мотор дээр дугуй баруун тийш эргэхдээ зайны эерэг утсыг "3", сөрөг утсыг "6" гэж тэмдэглээрэй.

Жолоодлогын мотор дээр дугуй урагшаа эргэх үед батерейны эерэг утсыг "14", сөрөг утсыг "11" гэж тэмдэглээрэй.

Алхам 2: Arduino IDE дахь код

Arduino IDE дахь код
Arduino IDE дахь код
Arduino IDE дахь код
Arduino IDE дахь код

Хэрэв та машиныхаа электроникийн загварыг эхлээд талхны тавцан дээр хийвэл илүү дээр байх болно.

За, энэ бол хэцүү хэсгүүдийн нэг юм. "Цэнхэр эм" -ийг USB портоор програмчлах боломжгүй. "Цэнхэр эм" -ийн програмчлалын тайлбарыг Joop Brokking -ийн Youtube видеоноос илүү хялбар олж чадаагүй байна. Энэ нь Рожер Кларкийн STMduino номын сан зэрэг таны мэдэх ёстой бүх зүйлийг тайлбарласан болно. Ачаалагчийг суулгах арга бий, ингэснээр та USB -ийг ашиглан "Цэнхэр эм" програмчлах боломжтой боловч та ачаалагчийг Цуваа автобусаар програмчлах хэрэгтэй.

Харамсалтай нь Цуваа автобусыг Bluetooth адаптер ашигладаг. Хөтөлбөрийг эхлээд FTDI -ээр дамжуулан цуваа автобус, PA9 ба PA10 зүүгээр суулгасан байх ёстой бөгөөд дараа нь Bluetooth адаптер ашиглан бүх тохиргоогоо шалгаж болно.

Талхны хавтанг ашиглан талхны тавцан дээрх бүх зүйлийг дээр дурдсан ноорог шиг байрлуул. STM32F103C -ийн PA9 ба PA10 зүү дээрх Bluetooth адаптерийн Serial TX ба RX шугамыг салга. FTDI болон програмаа холбоно уу. Цуваа автобусны шугамыг RX -аас Tx, Tx -ээс RX хүртэл огтлолцсон эсэхийг шалгаарай. Нэг нь авдаг, нөгөө нь өгдөг.

Програмыг ачаалсны дараа та цуваа консолыг нээж илгээх боломжтой

гэрэл ажиллаж байгаа эсэхийг харах. Хэрэв гэрэл ажиллаж байгаа бол та илгээж болно

дахин унтраахын тулд.

Дугуйгаа өргөж, илгээхийн тулд машинаа блок дээр тавь

Дугуй урагшаа явах ёстой. Хэрэв тэгэхгүй бол утсыг буцааж хийнэ. Өмнө нь бид утсыг хэрхэн тэмдэглэсэнийг санаарай. L293D -ийн харгалзах тээглүүрүүд таарч байх ёстой.

Зогсоохын тулд илгээнэ үү

Кодын чухал өөрчлөлтүүдийг авч үзье.

Сэтгэгдэл бичсэн хэсэгт эхлээд та Ardumotive -ээс файл үүсгэгчийг харах ёстой. Дараагийн хэдэн сэтгэгдлүүд STM32F103C -ийг тусгахын тулд би хаана жаахан өөрчлөгдсөнийг тайлбарлаж байна.

/ * * Бүтээсэн Василакис Михалис // 12-12-2014 ver.2

* Төсөл: RC автомашиныг Bluetooth ашиглан Android ухаалаг гар утсаар удирдана уу * Дэлгэрэнгүй мэдээллийг https://www.ardumotive.com дээрээс авна уу * * Энэ кодыг STM32F103 -т нийцүүлэн өөрчилсөн, Жим Гарбе, [email protected] * Дэлгэрэнгүй мэдээллийг https:// github дээрээс авна уу..com/jgarbe/RCCAR_STM32F103C*8 битийн 0-255 утгыг*16 битийн утгыг тусгахаар өөрчилсөн болохыг анхаарна уу 0-65535*//****************** **********STM32 дээр аналог бичих нь 8-бит 255 дээр ажилладаг хэвээр байгаа боловч*Та Pin-ийг PWM*гэж зарласнаар 0-65535 PWM хүрээний бүрэн функцийг авах боломжтой. 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 Pin A12 const int гэрэлтэй холбогдсон LED = 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" дээр ажиллах болно. Гэсэн хэдий ч ХОУХШ -ийн тээглүүрийг зарлах нь дээр.

pinMode (, PWM);

Дараа нь ашиглана уу

pwmWrite (,);

ТАЙЛБАР: 8 бит = 0-255, 16 бит = 0-65535

32-44-р мөрүүд нь батерейнд хийсэн өөрчлөлтүүд юм. Хэрэв та батерейны түвшинг шалгах гэж байгаа бол өөрт байгаа батерейны хувьд санал хуваах төхөөрөмжийг ашиглах ёстой. Энэ хэсгийг Fritzing ноорог дээр тусгаагүй болно. Youtube дээр хүчдэл хуваагч үүсгэх талаар олон тайлбар бий. STM32F103C нь 3.3v чип учраас би хүчдэл хуваагчийг физикээр ашиглахын тулд энд кодоо зассан. Arduino нь өгсөн ADC -ээр дамжуулан зарим өндөр хүчдэлийг тэсвэрлэх чадвартай боловч "Цэнхэр эм" тэвчихгүй.

/* Батерейны цэнэгийг Pin PA5 дээр шалгана

* ADC нь 3.3v -ээс дээш хүчдэлтэй ажиллах боломжгүй тул STM32F103C -ийн дараагийн мөрийг өөрчилсөн * Би үүнийг тайлбарласан * Хүчдэл хуваагчийг хоёр резистор ашиглан тооцоолж, ADC -ийн оролтыг хэмжихийн тулд ашиглах ёстой * * жишээ: * GND --- 2K резистор ----------------- 1K резистор ------ 5v * | * | * 3.3v */ // const float maxBattery = 3.3; // Батерейны хамгийн их хүчдэлийн утгыг өөрчилнө үү!

Алхам 3: Бүгдийг нэг дор хий

Бүгдийг хамтад нь оруул
Бүгдийг хамтад нь оруул
Бүгдийг хамтад нь оруул
Бүгдийг хамтад нь оруул
Бүгдийг хамтад нь оруул
Бүгдийг хамтад нь оруул
Бүгдийг хамтад нь оруул
Бүгдийг хамтад нь оруул

Би ихэвчлэн прото самбар ашиглан бүх зүйлийг холбохын тулд нүхний хооронд хэсэг, гагнуур байрлуулдаг. Заримдаа би Frankenstein/3D хэлбэрийн гагнуурын дүр төрхийг олж авахын тулд бүгдийг хамтад нь "үхдэг".

Төхөөрөмжийг цэвэр, хөнгөн болгохын тулд би энэ эрлийз аргыг сонгосон бөгөөд мэдээж ХЯМД!

Энэ арга нь шошго хийх боломжийг олгодог. Deadbug гагнуурын хамгийн муу хэсгүүдийн нэг бол IC чипийг доороос нь хараад ямар зүү болохыг нь мартах явдал юм.

Дээрх зургуудыг арай өөрөөр тайлбарласан болно. Хэцүү хэсэг нь хонхойж, нэгэн зэрэг хатуу байх хангалттай нимгэн картоныг олох явдал гэж би бодож байна. Та хуванцарыг ашиглаж болно, гэхдээ тэмдэглэх нь арай хэцүү юм. Би тээглүүрийг самбар дээр дараад хонхорхойг тэмдэглэсний дараа зүү бүрийн нүхийг Dremel ашиглан өрөмддөг.

Хэрэв та хараахан анзаараагүй бол би зөвхөн гэрлийг самбар дээр дагалдах хэрэгсэл болгон ашигладаг. Би батерейны индикатор, дуут дохиог ашигладаггүй. Учир нь миний төсөл өөр зорилготой. Машины кузовтой хийсэн эцсийн үр дүнг хармагц энэ нь өөрөө тайлбарлах болно. … гэхдээ энэ нь өөр санаа авчирна, Энэ төсөл дээр ашиглагдаагүй олон зүү байна. Магадгүй их бие онгойлгогч, машины хаалга онгойлгогч, гал хамгаалагч тэсрэгч,…… эсвэл бүр Галвани-Эдисоны гэрэлтүүлэгч эфирийн эвдрэлийн генератор байж магадгүй.

Бүх гагнуурыг хийж дууссаны дараа утаснуудын ачааллыг бууруулахын тулд үеийг халуун цавуугаар хийхээс өмнө туршиж үзээрэй.

Би Ardumotive -тэй ижил Андройд програмыг ашигласан бөгөөд үүнийг 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" киноныхтой төстэй нэг өмхий юм.

Зөвлөмж болгож буй: