Isi kandungan:

Kereta RC Bluetooth Dengan STM32F103C dan L293D - Murah: 5 Langkah
Kereta RC Bluetooth Dengan STM32F103C dan L293D - Murah: 5 Langkah

Video: Kereta RC Bluetooth Dengan STM32F103C dan L293D - Murah: 5 Langkah

Video: Kereta RC Bluetooth Dengan STM32F103C dan L293D - Murah: 5 Langkah
Video: Учебное пособие по сборке тестового передатчика STM32 Arduino 2,4 ГГц и ИК-излучения 2024, Jun
Anonim
Image
Image
Hancurkan Pemakan Bateri!
Hancurkan Pemakan Bateri!

Saya membuat Kereta Arduino Bluetooth seperti yang digambarkan di sini, oleh Ardumotive_com. Masalah yang saya hadapi ialah bateri dan beratnya serta perbelanjaannya. Sejak itu, bank kuasa murah untuk telefon bimbit menjadi sangat berpatutan. Yang perlu saya buat hanyalah mengurangkan berat badan. Oleh kerana saya murah, saya beralih ke Mikrokontroler STM32F103C. Mikrokontroler STM32F103C boleh dibeli dengan harga kurang dari $ 2, dan jauh lebih kecil daripada Arduino. Saya menukar sedikit pengekodan untuk berfungsi dengan STM32F103C juga.

Bekalan

  • Kereta kawalan jauh murah yang memakan bateri. Ya, sama seperti yang digunakan oleh Ardumotive_com. Anda akan mematikan sistem dan menggunakan bank kuasa telefon. Sekiranya anda mempunyai sumber untuk membina casis anda sendiri, dapatkannya. Saya pergi ke kedai mainan di jalan dan membeli sebuah kereta murah dengan harga di bawah $ 10. Kereta makan bateri, dan jarak jauh memakan bateri - sesuai untuk penambahbaikan.
  • Sebuah bank kuasa telefon - sekarang sangat murah. Menyimpang dari bank kuasa yang mempunyai butang kuasa di sebelah. Anda tidak dapat mengikuti kereta anda dan menahan butang. Itu bodoh.
  • Cip L293D - Ini adalah H-Bridge berganda yang akan mengawal motor elektrik.
  • Modul Bluetooth HC-06
  • Suis - Saya menggunakan suis hidup / mati sederhana.
  • Sebilangan wayar - wayar telefon akan baik-baik saja, tetapi 20 gauge terdampar sedikit lebih besar akan lebih baik.
  • Papan Proto atau sekeping plastik atau kadbod untuk memasang Pill Biru dan L293D anda. Saya murah jadi saya mempunyai sistem yang sedikit berbeza dengan kadbod bergelombang nipis - seperti dari kotak bola lampu.
  • Dua kabel pengecasan USB yang Murah - Ini boleh dibeli dari Dollar Tree. Jangan gunakan kabel pengaturcaraan anda yang bagus. Satu akan dipotong untuk suis hidup / mati, dan yang lain akan mengisi bateri.

Pilihan

  • 4 LED - jika anda mahukan lampu depan dan lampu belakang.
  • 4 220 Ohm Resistor-- untuk LED pada sistem 3.3v.
  • Piezo atau pembesar suara kecil untuk tanduk.

Alat

  • Pateri dan Pateri
  • Hot Glue Gun-- Anak perempuan saya adalah Hot Glue Gun Ninja!
  • Pelucut wayar dan potongan
  • CATATAN: jika anda menggunakan teknik kadbod yang saya gunakan dan bukannya papan proto, anda memerlukan Dremel atau gerudi kecil

Langkah 1: Hancurkan Pemakan Bateri

Hancurkan Pemakan Bateri!
Hancurkan Pemakan Bateri!

Sudah tiba masanya untuk bersenang-senang memusnahkan pemakan bateri! Ya, TETAPI ITU! Rasa bangga kerana anda melakukan peranan anda dalam menjadikan dunia lebih hijau-- OK, itu adalah peregangan, tapi tetap saja … Dapatkan kerangka.

Di atas, adalah unit yang sama dengan yang saya buat versi Arduino. Versi Arduino menggunakan tenaga bateri yang serius yang menjadikan kereta lebih berat. Jadi, saya membawanya kembali ke bingkai. Saya telah menambah beberapa fender dari botol plastik dan lem panas, dan menyesuaikan badan. Lebih banyak pada badan kemudian.

Setelah bingkai dengan motor dan kemudi kosong, cari sisi terminal motor yang mana. Gunakan bateri atau pengecas 5v untuk menguji motor.

Pada motor stereng, ketika roda berpusing ke kanan, labelkan wayar bateri positif "3" dan wayar negatif, "6".

Pada motor penggerak, ketika roda berputar ke depan, labelkan wayar bateri positif "14" dan wayar negatif "11".

Langkah 2: Kod dalam Arduino IDE

Kod dalam Arduino IDE
Kod dalam Arduino IDE
Kod dalam Arduino IDE
Kod dalam Arduino IDE

Mungkin terbaik jika anda membuat prototaip elektronik kereta anda terlebih dahulu di papan roti.

OK, ini adalah salah satu bahagian yang sukar. "Blue Pill" tidak dapat diprogramkan melalui port USB. Saya tidak menemui penjelasan pengaturcaraan yang lebih mudah mengenai "Blue Pill" daripada Video Youtube Joop Brokking. Ia menerangkan semua yang perlu anda ketahui termasuk perpustakaan STMduino Roger Clarke. Ada cara untuk memasang bootloader sehingga anda BOLEH menggunakan USB untuk memprogram "Blue Pill", tetapi anda harus memprogram bootloader melalui Serial Bus pula.

Malangnya, Bas Serial digunakan oleh penyesuai Bluetooth juga. Program mesti dipasang melalui pin Serial Bus, PA9 dan PA10, melalui FTDI terlebih dahulu, kemudian anda dapat memeriksa semua tetapan anda dengan penyesuai Bluetooth.

Gunakan papan roti dan susun segalanya di papan roti seperti lakaran fritzing di atas. Putuskan sambungan rangkaian Serial TX dan RX penyesuai Bluetooth pada pin PA9 dan PA10 STM32F103C. Sambungkan FTDI dan program anda. Pastikan garis Bas Bersiri dilintasi, RX ke Tx dan Tx ke RX. Satu menerima dan yang lain memberi.

Setelah program dimuat, anda boleh membuka konsol bersiri dan menghantar

untuk melihat sama ada lampu berfungsi. Sekiranya lampu berfungsi, anda boleh menghantar

sekali lagi untuk mematikan mereka.

Letakkan kereta anda di blok untuk menaikkan tayar dan hantar

Roda mesti bergerak ke hadapan. Sekiranya tidak, kembalikan wayar. Ingat bagaimana kita melabel wayar lebih awal. Pin L293D yang sesuai harus dipadankan.

Untuk berhenti, hantar

Mari lihat perubahan ketara dalam kod.

Di bahagian yang dikomentari, awalnya, anda akan melihat pemula failnya, dari Ardumotive. Beberapa komen seterusnya menjelaskan di mana saya sedikit berubah untuk mencerminkan STM32F103C.

/ * * Dicipta oleh Vasilakis Michalis // 12-12-2014 ver.2

* Projek: Kendalikan Kereta RC melalui Bluetooth dengan Telefon Pintar Android * Maklumat lebih lanjut di https://www.ardumotive.com * * Menukar kod ini agar sesuai dengan STM32F103 oleh Jim Garbe, [email protected] * Maklumat lebih lanjut di https:// github.com / jgarbe / RCCAR_STM32F103C * Perhatikan bahawa nilai 8-bit 0-255 telah diubah menjadi * mencerminkan nilai 16-bit 0-65535 * / / ****************** ********* * Pada STM32, penulisan analog masih berfungsi pada 8-bit 255, * Tetapi anda boleh mendapatkan fungsi penuh dari julat PWM, 0-65535, dengan menyatakan Pin sebagai PWM * DAN menggunakan pwmWrite () dan bukannya analogWrite () **************************** /

Paling ketara, pin tidak dinamakan dengan cara yang sama antara Arduino dan STM32F103C. Kami menyatakan pin menggunakan set baris seterusnya. Ada satu pin kiri yang dinyatakan turun dalam gelung. Pada baris 197, PA5 digunakan untuk membaca tahap bateri.

//// Sambungan L293

const int motorA1 = PB6; // ke Pin 15 dari L293 const int motorA2 = PB7; // ke Pin 10 dari L293 const int motorB1 = PB8; // ke Pin 7 dari L293 const int motorB2 = PB9; // ke Pin 2 dari L293 // Leds yang disambungkan ke STM32F103C Pin A12 const int lights = PA12; // Buzzer / Pembesar suara kepada Arduino UNO Pin A8 const int buzzer = PA8; // Bluetooth (HC-06 JY-MCU) Nyatakan pin pada pin A11 dari STM32F103C const int BTState = PA11;

Juga, menggunakan analogWrite (); masih akan berfungsi pada "BluePill". Tetapi lebih baik menyatakan pin PWM menggunakan, pinMode (, PWM);

Kemudian gunakan

pwmWrite (,);

CATATAN: 8-bit = 0-255, 16-bit = 0-65535

Garis 32-44 adalah perubahan pada bateri. Sekiranya anda akan menggunakan pemeriksaan tahap bateri, anda mesti menggunakan pembahagi voltan untuk bateri yang anda miliki. Bahagian ini tidak tercermin dalam lakaran Fritzing. Terdapat banyak penjelasan mengenai cara membuat pembahagi voltan di Youtube. Kerana STM32F103C adalah cip 3.3v, saya menetapkan kod di sini untuk menggunakan pembahagi voltan secara fizikal. Arduino boleh mentolerir beberapa voltan yang lebih tinggi melalui ADC yang disediakan tetapi "Blue Pill" tidak dapat.

/ * Paras bateri akan diperiksa pada Pin PA5

* Mengubah baris seterusnya untuk STM32F103C kerana ADC tidak dapat menangani * apa-apa lebih dari 3.3v * Saya baru sahaja mengulasnya * Pembahagi voltan, menggunakan dua perintang mesti dikira dan digunakan * untuk mengukur input ADC lebih jauh dalam kod * contoh: * GND --- Perintang 2K ----------------- Perintang 1K ------ 5v * | * | * 3.3v * / // const float maxBattery = 3.3; // Tukar nilai ke tahap voltan bateri maksimum anda!

Langkah 3: Gabungkan Semua

Gabungkan Semua
Gabungkan Semua
Gabungkan Semua
Gabungkan Semua
Gabungkan Semua
Gabungkan Semua
Gabungkan Semua
Gabungkan Semua

Saya biasanya menggunakan papan proto untuk meletakkan kepingan dan solder di antara lubang untuk menghubungkan semuanya. Kadang-kadang saya "mematikan pateri" semuanya bersama-sama untuk lebih banyak penampilan pateri Frankenstein / 3D.

Saya memilih kaedah hibrid ini untuk menjadikan peranti bersih dan ringan - dan tentu saja, MURAH!

Kaedah ini memungkinkan untuk pelabelan juga. Salah satu bahagian paling teruk dari pematerian bug adalah apabila anda melihat cip IC dari bawah dan lupa pin mana.

Gambar di atas agak jelas. Saya rasa bahagian yang sukar dijumpai adalah kadbod yang cukup nipis untuk lesap dan kaku pada masa yang sama. Anda juga boleh menggunakan plastik tetapi menandakannya lebih sukar. Setelah saya menekan pin ke papan dan menandakan lesung pipit, saya menggunakan Dremel untuk menggerudi setiap lubang pin.

Sekiranya anda belum perasan, saya hanya mempunyai lampu sebagai plag aksesori di papan. Saya tidak menggunakan penunjuk bateri, dan juga bip. Ini kerana projek saya adalah untuk tujuan yang berbeza. Ini akan menjadi jelas apabila anda melihat hasilnya yang sudah selesai dengan badan kereta. … tetapi ini membawa idea lain, Terdapat banyak pin yang tidak digunakan pada projek ini. Mungkin pembuka trunk, pembuka pintu kereta, detonator pemadam api, … … atau bahkan Generator Gangguan Aether Galvani-Edison Luminiferous mini!

Setelah semua pematerian selesai, uji sebelum anda merekatkan sendi untuk menghilangkan tekanan pada wayar.

Saya menggunakan Aplikasi Android yang sama dengan Ardumotive, Ia boleh didapati di

Setelah anda menguji fungsi kereta, sudah tiba masanya untuk meletakkan bateri dan menukarnya. Pergi ke langkah seterusnya.

Langkah 4: Bateri dan Tukar

OK, di sinilah anda tidak dapat mengikuti rancangan saya dengan tepat.

Entah bagaimana, anda harus mencari tempat yang baik untuk meletakkan bateri di dalam kereta dengan cara, sama ada cara mengecas bateri bateri dari dongle, atau cara mengecas plag bateri secara langsung. Dalam video pengenalan, saya hanya mengetuk bateri dan mikrokontroler ke bingkai dan menjalankannya. Semasa saya mahu berhenti, saya hanya mencabut bateri. Masalah dengan penyediaan ini ialah kerosakan palam pada kabel USB dan / atau bank kuasa anda. Lebih baik mempunyai suis.

Anda juga harus mencari tempat yang baik untuk suis di mana badan kereta masih membenarkan akses. Saya menggunakan suis butang tekan biasa (bukan suis sesaat), dan memasangnya di bahagian bawah bingkai tempat petak bateri asal berada.

Anda harus memotong kabel USB menjadi separuh dan meletakkan suis antara bateri dan port USB STM32F103C. Ya, anda boleh menghidupkan STM32F103C dengan port USB. Anda tidak boleh memprogramnya melalui port USB. Saya menggunakan Dremel sekali lagi untuk menggerudi beberapa lubang untuk pin pemateri suis. Setelah disolder, saya menggunakan Hot Glue, sekali lagi untuk mengukuhkan sambungan.

Langkah 5: Letakkan Badan Kereta Anda di Bingkai

OK, saya katakan bahawa saya telah memilih semula versi kereta Arduino yang asal. Oleh itu, produk akhir yang sebenarnya adalah alat pentas untuk balet "The Nutcracker" yang dilakukan oleh syarikat balet tempatan kami. Dalam babak pembukaan, seekor tikus berlari melintasi panggung dengan sihir tidak sengaja Drosselmeyer. Saya menggunakan tikus IKEA dan memasangkannya di atas bingkai, Arduino, dan pek bateri yang jauh lebih besar. Alat itu berat dan tidak boleh dicas semula. Ini jauh lebih baik!

Bersenang-senang dengan kereta anda. Ingat bahawa terdapat banyak lagi pin pada STM32F103C yang boleh digunakan. Mungkin skunk mirip dengan yang ada di "Toy Story 4."

Disyorkan: