Съдържание:

Bluetooth RC автомобил със STM32F103C и L293D - Евтин: 5 стъпки
Bluetooth RC автомобил със STM32F103C и L293D - Евтин: 5 стъпки

Видео: Bluetooth RC автомобил със STM32F103C и L293D - Евтин: 5 стъпки

Видео: Bluetooth RC автомобил със STM32F103C и L293D - Евтин: 5 стъпки
Видео: Control Position and Speed of Stepper motor with L298N module using Arduino 2024, Юни
Anonim
Image
Image
Унищожете акумулатора!
Унищожете акумулатора!

Направих Bluetooth Arduino Car като този, изобразен тук, от Ardumotive_com. Проблемът, който имах, бяха батериите и тяхното тегло, както и разходите им. Оттогава евтините банки за захранване за мобилни телефони станаха много достъпни. Всичко, което трябваше да направя, беше да намаля теглото. Тъй като съм евтин, преминах към микроконтролера STM32F103C. Микроконтролерът STM32F103C може да бъде закупен за по -малко от 2 долара и е много по -малък от Arduino. Промених малко кодирането, за да работя и със STM32F103C.

Консумативи

  • Евтина кола с дистанционно управление, която яде батерии. Да, точно като този, който използва Ardumotive_com. Ще изключите системата и вместо това ще използвате банка за захранване на телефона. Ако имате ресурси за изграждане на собствено шаси, имайте го. Отидох в магазина за играчки по улицата и си купих евтина кола за под 10 долара. Колата яде батерии, а дистанционното-батерии-идеално за подобрение.
  • Телефонна банка- сега са супер евтини. Отклонете се от банките за захранване, които имат бутон за захранване отстрани. Няма да можете да следвате колата си и да задържите бутона. Това е глупаво.
  • Чип L293D-Това е двойният H-мост, който ще управлява електрическите двигатели.
  • Bluetooth модул HC-06
  • A Switch- Използвах прост превключвател за включване/изключване.
  • Някои проводници -телефонни проводници биха били добре, но малко по -големи наклонени 20 габарити биха били по -добри.
  • Proto Board или парче пластмаса или картон за монтиране на вашето Blue Pill и L293D. Евтин съм, затова измислих малко по-различна система с тънък велпапе- като от кутия с крушка.
  • Два евтини USB кабела за зареждане-Те могат да бъдат закупени от доларово дърво. Не използвайте хубавия си кабел за програмиране. Единият ще бъде отрязан за превключвателя за включване/изключване, а другият ще зареди батерията.

По избор

  • 4 светодиода -ако искате фарове и задни светлини.
  • 4 220 ома резистора- за светодиодите на 3.3v система.
  • Пиезо или малък високоговорител за клаксон.

Инструменти

  • Поялник и спойка
  • Hot Glue Gun- Дъщеря ми е Hot Glue Gun Ninja!
  • Машини за рязане и изрязване
  • ЗАБЕЛЕЖКА: ако използвате картонена техника, която използвам, а не прото дъска, ще ви трябва Dremel или малка бормашина

Стъпка 1: Унищожете акумулатора

Унищожете акумулатора!
Унищожете акумулатора!

Време е да се забавлявате, унищожавайки акумулатора! Да, ГАТ ТОВА! Чувствайте се горди, че правите своята част в това да направите света по-зелен- ОК, това е разтягане, но така или иначе … Стигнете до кадъра.

По -горе е същата единица, която направих версията на Arduino. Версията на Arduino използва сериозна мощност на батерията, което прави колата по -тежка. И така, върнах го обратно в рамката. Бях добавил няколко калници от пластмасова бутилка и горещо лепило и персонализирах тялото. Повече за тялото по -късно.

След като поставите рамката с двигателите и кормилното управление, открийте коя страна на терминалите на двигателя са кои. Използвайте батерия или 5v зарядно устройство, за да тествате двигателя.

На кормилния двигател, когато колелата завият надясно, маркирайте положителния проводник на акумулатора "3" и отрицателния проводник "6".

На задвижващия двигател, когато колелата се въртят напред, маркирайте положителния проводник на акумулатора "14" и отрицателния проводник "11".

Стъпка 2: Кодът в Arduino IDE

Кодът в Arduino IDE
Кодът в Arduino IDE
Кодът в Arduino IDE
Кодът в Arduino IDE

Може би е най -добре, ако първо прототипирате електрониката на колата си на макет.

Добре, това е една от сложните части. „Синьото хапче“не може да се програмира през USB порта. Не съм намерил по -лесно програмно обяснение за "Blue Pill" от Youtube Video на Joop Brokking. Той обяснява всичко, което трябва да знаете, включително библиотеката STMduino на Роджър Кларк. Има начин да инсталирате буутлоудър, така че МОЖЕТЕ да използвате USB, за да програмирате "Blue Pill", но все пак трябва да програмирате буутлоудъра през серийната шина.

За съжаление, серийната шина се използва и от Bluetooth адаптера. Програмата трябва да бъде инсталирана чрез пиновете Serial Bus, PA9 и PA10, първо чрез FTDI, след което можете да проверите всичките си настройки с Bluetooth адаптера.

Използвайте макет и подредете всичко върху чертежа, точно като скицата за пържене по -горе. Изключете серийните TX и RX линии на Bluetooth адаптера на щифтовете PA9 и PA10 на STM32F103C. Включете вашата FTDI и програма. Уверете се, че линиите на серийната шина са пресечени, RX към Tx и Tx към RX. Единият получава, а другият дава.

След като програмата се зареди, можете да отворите серийната конзола и да изпратите

за да се види дали светлините работят. Ако светлините работят, можете да изпратите

отново, за да ги изключите отново.

Поставете колата си на блок, за да повдигнете гумите и изпратете

Колелата трябва да вървят напред. Ако не го направят, обърнете проводниците. Спомнете си как маркирахме проводниците по -рано. Съответните щифтове на L293D трябва да бъдат съпоставени.

За да спрете, изпратете

Нека да разгледаме значителните промени в кода.

В коментирания раздел, в началото, трябва да видите инициатора на файлове от Ardumotive. Следващите няколко коментара обясняват къде съм се променил малко, за да отразя STM32F103C.

/ * * Създадено от Vasilakis Michalis // 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,*Но можете да получите пълната функцияm на обхвата на PWM, 0-65535, като обявите ПИН за ШИМ*И използвайки pwmWrite () вместо analogWrite () ****************************/

Най -вече пиновете не са кръстени по същия начин между Arduino и STM32F103C. Декларираме щифтовете, използвайки следващия набор от редове. Остава един щифт, който е деклариран надолу в цикъла. В ред 197, PA5 се използва за отчитане на нивото на батерията.

//// L293 Връзка

const int motorA1 = PB6; // към Pin 15 на L293 const int motorA2 = PB7; // към Pin 10 на L293 const int motorB1 = PB8; // към щифт 7 на L293 const int motorB2 = PB9; // към Pin 2 на L293 // Светодиоди, свързани към STM32F103C Pin A12 const int light = PA12; // Звуков сигнал /високоговорител към Arduino UNO Pin A8 const int зумер = PA8; // Bluetooth (HC-06 JY-MCU) ПИН за състояние на щифт A11 на STM32F103C const int BTState = PA11;

Също така, използвайки analogWrite (); все още ще работи по "BluePill". Но е по -добре да декларирате PWM щифтовете, използвайки, pinMode (, PWM);

След това използвайте

pwmWrite (,);

ЗАБЕЛЕЖКА: 8-битов = 0-255, 16-битов = 0-65535

Редове 32-44 са промени, направени в батерията. Ако ще използвате проверка на нивото на батерията, трябва да използвате разделител на гласовете за батерията, която имате. Тази част не е отразена в скицата на Fritzing. Има много обяснения как да създадете делител на напрежение в Youtube. Тъй като STM32F103C е 3.3V чип, поправих кода тук, за да използвам физически делител на напрежение. Arduino може да понася някои по -високи напрежения чрез предоставените АЦП, но "Синьото хапче" не може.

/* Нивото на батерията ще бъде проверено на Pin PA5

* Променен следващият ред за STM32F103C, тъй като ADC не може да обработва * нищо над 3.3v * Току -що го коментирах * Делител на напрежение, използващ два резистора, трябва да бъде изчислен и използван * за измерване на ADC входа по -надолу в кода * пример: * GND --- 2K резистор ----------------- 1K резистор ------ 5v * | * | * 3.3v */ // const float maxBattery = 3.3; // Променете стойността на максималното си напрежение на батерията!

Стъпка 3: Сложете всичко заедно

Сложете всичко заедно
Сложете всичко заедно
Сложете всичко заедно
Сложете всичко заедно
Сложете всичко заедно
Сложете всичко заедно
Сложете всичко заедно
Сложете всичко заедно

Обикновено използвам прото-платка за поставяне на парчетата и запояване между отворите, за да свържа всичко. Понякога "споявам" всичко заедно, за да изглеждам повече като Frankenstein/3D пачка спойка.

Избрах този хибриден метод, за да направя устройството чисто и леко- и разбира се, ЕВТИНО!

Този метод позволява и етикетиране. Една от най -лошите части на запояването на deadbug е, когато погледнете IC чип отдолу и забравите кой щифт е какво.

Снимките по -горе са малко обясними. Предполагам, че най -трудната част е намирането на достатъчно тънък картон, който да се вдлъбна и да бъде твърд в същото време. Можете да използвате и пластмаса, но маркирането й е малко по -трудно. След като притисна щифтовете към дъската и маркирам трапчинките, използвам Dremel, за да пробия всеки отвор за щифтове.

Ако все още не сте забелязали, имам само лампите като щепсел за аксесоари на дъската. Не използвам индикатора за батерията, нито звуковия сигнал. Това е така, защото моят проект е с друга цел. Това ще стане ясно, след като видите крайния резултат с каросерията на автомобила. … но това носи друга идея. В този проект има много неизползвани щифтове. Може би отварачка за багажник, отварачка за автомобилни врати, взривател за пожарогасене, … … или дори мини-генератор за смущения на етер на Gulvani-Edison!

След като цялото запояване приключи, тествайте преди да залепите горещо фугите за облекчаване на напрежението върху проводниците.

Използвах същото приложение за Android като Ardumotive. Може да се намери на адрес

След като сте тествали функциите на автомобила, е време да поставите батерията и да превключите. Преминете към следващата стъпка.

Стъпка 4: Батерия и превключвател

Добре, тук не можете да следвате точно плана ми.

По някакъв начин ще трябва да намерите добро място, където да поставите батерията си в колата, с начин за зареждане на батерията от ключ или начин за директно зареждане на щепсела на батерията. Във въвеждащото видео просто залепих батерията и микроконтролера към рамката и я пуснах. Когато исках да спра, просто изключих батерията. Проблемът с тази настройка е нетрайността на щепселите на вашия USB кабел и/или вашата банка за захранване. По -добре е да имате превключвател.

Ще трябва да намерите и добро място за превключвателя, където каросерията на колата все още ще позволява достъп. Използвах обикновен превключвател с бутон (не моментен превключвател) и го монтирах в долната част на рамката, където се намира оригиналното отделение за батерии.

Ще трябва да разрежете наполовина USB кабел и да поставите превключвателя между батерията и USB порта STM32F103C. Да, можете да захранвате STM32F103C с USB порта. Просто не можете да го програмирате през USB порта. Използвах отново Dremel за пробиване на някои отвори за запояващите щифтове на превключвателя. Веднъж запоен, използвах Hot Glue, отново за укрепване на връзките.

Стъпка 5: Поставете купето на колата си върху рамката

Добре, казах, че преназначих оригиналната версия на Arduino на тази кола. Действителният краен продукт тогава беше сценичен реквизит за балет "Лешникотрошачката", изпълнен от нашата местна балетна компания. В началната сцена мишката претича сцената с случайната магия на Дроселмайер. Използвах плъх IKEA и го поставих върху рамката, Arduino и много по -голям пакет батерии. Подпората беше тежка и не се зареждаше. Това е много по -добре!

Забавлявайте се с колата си. Не забравяйте, че има много повече щифтове на STM32F103C, които могат да се използват. Може би скункс, подобен на този в „История на играчките 4“.

Препоръчано: