Daftar Isi:

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

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

Video: Bluetooth RC Car Dengan STM32F103C dan L293D -- Murah: 5 Langkah
Video: smartphone remote control car #DIYProject #ArduinoProject #BluetoothCar #diydot3d #rccar 2024, Juni
Anonim
Image
Image
Hancurkan Pemakan Baterai!
Hancurkan Pemakan Baterai!

Saya membuat Bluetooth Arduino Car seperti yang digambarkan di sini, oleh Ardumotive_com. Masalah yang saya alami adalah baterai dan beratnya serta biayanya. Sejak itu, bank daya murah untuk ponsel menjadi sangat terjangkau. Yang perlu saya lakukan adalah mengurangi berat badan. Karena saya murah, saya beralih ke Mikrokontroler STM32F103C. Mikrokontroler STM32F103C dapat dibeli dengan harga kurang dari $2, dan jauh lebih kecil dari Arduino. Saya mengubah sedikit pengkodean untuk bekerja dengan STM32F103C juga.

Perlengkapan

  • Sebuah mobil remote control murah yang memakan baterai. Ya, seperti yang digunakan Ardumotive_com. Anda akan mematikan sistem dan menggunakan bank daya telepon sebagai gantinya. Jika Anda memiliki sumber daya untuk membangun sasis Anda sendiri, lakukanlah. Saya pergi ke toko mainan di jalan dan membeli mobil murah dengan harga di bawah $10. Mobil memakan baterai, dan remote memakan baterai--sempurna untuk perbaikan.
  • Sebuah bank daya telepon-- Mereka sangat murah, sekarang. Tersesat dari bank daya yang memiliki tombol daya di samping. Anda tidak akan bisa mengikuti mobil Anda dan menahan tombolnya. Itu konyol.
  • Chip L293D-- Ini adalah H-Bridge ganda yang akan mengontrol motor listrik.
  • Modul Bluetooth HC-06
  • Sakelar-- Saya menggunakan sakelar hidup/mati sederhana.
  • Beberapa Kawat --kawat telepon akan baik-baik saja, tetapi pengukur 20 terdampar yang sedikit lebih besar akan lebih baik.
  • Papan Proto atau sepotong plastik atau karton untuk memasang Pill Biru dan L293D Anda. Saya murah jadi saya datang dengan sistem yang sedikit berbeda dengan karton bergelombang tipis-- seperti dari kotak bola lampu.
  • Dua kabel pengisian USB Murah--Ini dapat dibeli dari Pohon Dolar. Jangan gunakan kabel pemrograman bagus Anda. Satu akan dipotong untuk sakelar hidup/mati, dan yang lainnya akan mengisi daya baterai.

Opsional

  • 4 LED --jika Anda menginginkan lampu depan dan lampu belakang.
  • 4 Resistor 220 Ohm-- untuk LED pada sistem 3.3v.
  • Sebuah piezo atau speaker kecil untuk klakson.

Peralatan

  • Besi Solder dan Solder
  • Hot Glue Gun-- Putriku adalah Ninja Hot Glue Gun!
  • Penari telanjang kawat dan snips
  • CATATAN: jika Anda menggunakan teknik karton yang saya gunakan daripada papan proto, Anda memerlukan Dremel atau bor kecil

Langkah 1: Hancurkan Pemakan Baterai

Hancurkan Pemakan Baterai!
Hancurkan Pemakan Baterai!

Saatnya bersenang-senang menghancurkan pemakan baterai! Ya, GUT HAL ITU! Merasa bangga bahwa Anda melakukan bagian Anda dalam membuat dunia lebih hijau-- OK, itu peregangan, tapi bagaimanapun … Dapatkan ke bingkai.

Di atas, adalah unit yang sama yang saya buat versi Arduino. Versi Arduino menggunakan daya baterai yang serius yang membuat mobil lebih berat. Jadi, saya membawanya kembali ke bingkai. Saya telah menambahkan beberapa spatbor dari botol plastik dan lem panas, dan menyesuaikan bodinya. Lebih lanjut tentang tubuh nanti.

Setelah Anda memiliki rangka dengan motor dan kemudi kosong, temukan sisi terminal motor yang mana. Gunakan baterai atau pengisi daya 5v untuk menguji motor.

Pada motor kemudi, ketika roda berbelok ke kanan, beri label kabel positif baterai "3" dan kabel negatif "6".

Pada motor penggerak, ketika roda berputar ke depan, beri label kabel positif baterai "14" dan kabel negatif "11".

Langkah 2: Kode di Arduino IDE

Kode di Arduino IDE
Kode di Arduino IDE
Kode di Arduino IDE
Kode di Arduino IDE

Mungkin lebih baik jika Anda membuat prototipe elektronik mobil Anda terlebih dahulu di papan tempat memotong roti.

Oke, ini salah satu bagian yang sulit. "Pill Biru" tidak dapat diprogram melalui port USB. Saya belum menemukan penjelasan pemrograman yang lebih mudah dari "Blue Pill" daripada Video Youtube Joop Brokking. Ini menjelaskan semua yang perlu Anda ketahui termasuk perpustakaan STMduino Roger Clarke. Ada cara untuk menginstal bootloader sehingga Anda BISA menggunakan USB untuk memprogram "Blue Pill", tetapi Anda harus memprogram bootloader melalui Serial Bus.

Sayangnya, Serial Bus juga digunakan oleh adaptor Bluetooth. Program harus diinstal melalui pin Serial Bus, PA9 dan PA10, melalui FTDI terlebih dahulu, kemudian Anda dapat memeriksa semua pengaturan Anda dengan adaptor Bluetooth.

Gunakan papan tempat memotong roti dan tata letak semua yang ada di papan tempat memotong roti seperti sketsa fritzing di atas. Putuskan sambungan serial TX dan RX adaptor Bluetooth pada pin PA9 dan PA10 STM32F103C. Hubungkan FTDI dan program Anda. Pastikan jalur Serial Bus dilintasi, RX ke Tx dan Tx ke RX. Yang satu menerima dan yang lain memberi.

Setelah program dimuat, Anda dapat membuka konsol serial dan mengirim

untuk melihat apakah lampu bekerja. Jika lampu berfungsi, Anda dapat mengirim

lagi untuk mematikannya.

Letakkan mobil Anda di atas balok untuk mengangkat ban dan mengirim

Roda harus maju. Jika tidak, balikkan kabelnya. Ingat bagaimana kami memberi label kabel sebelumnya. Pin yang sesuai dari L293D harus cocok.

Untuk berhenti, kirim

Mari kita lihat perubahan signifikan dalam kode.

Di bagian komentar, awalnya, Anda akan melihat file originator, dari Ardumotive. Beberapa komentar berikutnya menjelaskan di mana saya telah sedikit berubah untuk mencerminkan STM32F103C.

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

* Proyek: Kontrol Mobil RC melalui Bluetooth dengan Smartphone Android * Informasi lebih lanjut di https://www.ardumotive.com * * Mengubah kode ini agar sesuai dengan STM32F103 oleh Jim Garbe, [email protected] * Info lebih lanjut di https://github.com/jgarbe/RCCAR_STM32F103C * Perhatikan bahwa nilai 8-bit 0-255 telah diubah menjadi * mencerminkan nilai 16-bit 0-65535 */ /****************** ********* * Pada STM32, penulisan analog masih bekerja pada 8-bit 255, * Tetapi Anda bisa mendapatkan fungsi penuh dari rentang PWM, 0-65535, dengan mendeklarasikan Pin sebagai PWM *AND menggunakan pwmWrite() alih-alih analogWrite() ****************************/

Terutama, pin tidak diberi nama dengan cara yang sama antara Arduino dan STM32F103C. Kami mendeklarasikan pin menggunakan set baris berikutnya. Ada satu pin tersisa yang dideklarasikan ke bawah dalam loop. Pada jalur 197, PA5 digunakan untuk membaca level baterai.

////L293 Koneksi

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 //Led terhubung ke STM32F103C Pin A12 const int lights = PA12; //Buzzer / Speaker ke Arduino UNO Pin A8 const int buzzer = PA8; //Bluetooth (HC-06 JY-MCU) Status pin pada pin A11 dari STM32F103C const int BTState = PA11;

Juga, menggunakan analogWrite(); masih akan bekerja pada "BluePill". Tetapi lebih baik untuk mendeklarasikan pin PWM menggunakan, pinMode(, PWM);

Kemudian gunakan

pwmTulis(,);

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

Baris 32-44 adalah perubahan yang dilakukan pada baterai. Jika Anda akan menggunakan pemeriksaan level baterai, Anda harus menggunakan pembagi votage untuk baterai yang Anda miliki. Bagian ini tidak tercermin dalam sketsa Fritzing. Ada banyak penjelasan tentang cara membuat pembagi tegangan di Youtube. Karena STM32F103C adalah chip 3.3v, saya memperbaiki kode di sini untuk secara fisik menggunakan pembagi tegangan. Arduino dapat mentolerir beberapa tegangan yang lebih tinggi melalui ADC yang disediakan tetapi "Pill Biru" tidak bisa.

/* Level baterai akan diperiksa pada Pin PA5

* Mengubah baris berikutnya untuk STM32F103C karena ADC tidak dapat menangani * apa pun di atas 3.3v * Saya baru saja mengomentarinya * Pembagi tegangan, menggunakan dua resistor harus dihitung dan digunakan * untuk mengukur input ADC lebih jauh ke bawah dalam kode * contoh: * GND---2K resistor ------------- Resistor -1K ------5v * | * | * 3.3v */ // const float maxBattery = 3.3; // Ubah nilai ke level tegangan baterai maksimal Anda!

Langkah 3: Satukan Semuanya

Satukan Semuanya
Satukan Semuanya
Satukan Semuanya
Satukan Semuanya
Satukan Semuanya
Satukan Semuanya
Satukan Semuanya
Satukan Semuanya

Saya biasanya menggunakan papan proto untuk menempatkan potongan dan menyolder di antara lubang untuk menghubungkan semuanya. Kadang-kadang saya "menyolder deadbug" semuanya bersama-sama untuk mendapatkan tampilan solder Frankenstein/3D.

Saya memilih metode hibrida ini untuk membuat perangkat bersih dan ringan-- dan tentu saja, MURAH!

Metode ini memungkinkan untuk pelabelan juga. Salah satu bagian terburuk dari penyolderan deadbug adalah ketika Anda melihat chip IC dari bawah dan lupa pin mana.

Gambar-gambar di atas cukup jelas. Saya kira bagian yang sulit adalah menemukan karton yang cukup tipis untuk berlesung dan menjadi kaku pada saat yang bersamaan. Anda dapat menggunakan plastik juga tetapi menandainya sedikit lebih sulit. Setelah saya menekan pin ke papan dan menandai lesung pipit, saya menggunakan Dremel untuk mengebor setiap lubang pin.

Jika Anda belum menyadarinya, saya hanya memiliki lampu sebagai colokan aksesori di papan tulis. Saya tidak menggunakan indikator baterai, atau pager. Itu karena proyek saya untuk tujuan yang berbeda. Ini akan cukup jelas setelah Anda melihat hasil akhir dengan bodi mobil. …tapi ini membawa ide lain, Ada banyak pin yang tidak digunakan pada proyek ini. Mungkin pembuka bagasi, pembuka pintu mobil, detonator pemecah api, … …atau bahkan Mini-Galvani-Edison Luminiferous Aether Disturbance Generator!

Setelah semua penyolderan selesai, uji sebelum Anda menempelkan sambungan panas untuk menghilangkan stres pada kabel.

Saya menggunakan Aplikasi Android yang sama dengan Ardumotive, Dapat ditemukan di

Setelah Anda menguji fungsi mobil, saatnya memasang baterai dan sakelar. Pergi ke langkah berikutnya.

Langkah 4: Baterai dan Sakelar

Oke, di sinilah Anda tidak bisa mengikuti rencana saya dengan tepat.

Entah bagaimana, Anda harus menemukan tempat yang baik untuk meletakkan baterai Anda di mobil dengan cara mengisi baterai bank dari dongle, atau cara langsung mengisi steker baterai. Dalam video pengantar, saya hanya menempelkan baterai dan mikrokontroler ke bingkai dan menjalankannya. Ketika saya ingin berhenti, saya hanya mencabut baterai. Masalah dengan pengaturan ini adalah kerusakan colokan pada kabel USB dan/atau bank daya Anda. Lebih baik memiliki saklar.

Anda juga harus menemukan tempat yang baik untuk sakelar di mana badan mobil masih memungkinkan akses. Saya menggunakan sakelar tombol tekan biasa (bukan sakelar sesaat), dan memasangnya di bagian bawah bingkai tempat kompartemen baterai asli berada.

Anda harus memotong kabel USB menjadi dua dan meletakkan sakelar antara baterai dan port USB STM32F103C. Ya, Anda dapat memberi daya pada STM32F103C dengan port USB. Anda tidak dapat memprogramnya melalui port USB. Saya menggunakan Dremel lagi untuk mengebor beberapa lubang untuk pin solder sakelar. Setelah disolder, saya menggunakan Lem Panas, sekali lagi untuk memperkuat sambungan.

Langkah 5: Letakkan Bodi Mobil Anda di Bingkai

Oke, saya katakan bahwa saya menggunakan kembali versi Arduino asli dari mobil ini. Produk akhir yang sebenarnya, kemudian, adalah penyangga panggung untuk balet "The Nutcracker" yang dibawakan oleh perusahaan balet lokal kami. Dalam adegan pembuka, seekor tikus berlari melintasi panggung dengan sihir kebetulan Drosselmeyer. Saya menggunakan tikus IKEA dan memasangnya di atas bingkai, Arduino, dan baterai yang jauh lebih besar. Penyangga itu berat dan tidak dapat diisi ulang. Ini jauh lebih baik!

Bersenang-senang dengan mobil Anda. Ingatlah bahwa masih banyak lagi pin pada STM32F103C yang dapat digunakan. Mungkin sigung yang mirip dengan yang ada di "Toy Story 4."