Mục lục:

Bluetooth RC Car với STM32F103C và L293D - Không tốn kém: 5 bước
Bluetooth RC Car với STM32F103C và L293D - Không tốn kém: 5 bước

Video: Bluetooth RC Car với STM32F103C và L293D - Không tốn kém: 5 bước

Video: Bluetooth RC Car với STM32F103C và L293D - Không tốn kém: 5 bước
Video: Arduino Bluetooth control car with Front & Back Lights using Arduino UNO, L293D Motor Driver, HC-05 2024, Tháng sáu
Anonim
Image
Image
Tiêu diệt Người ăn pin!
Tiêu diệt Người ăn pin!

Tôi đã tạo một Ô tô Arduino Bluetooth giống như mô tả ở đây, bởi Ardumotive_com. Vấn đề tôi gặp phải là pin và trọng lượng cũng như chi phí của chúng. Kể từ đó, các bộ sạc dự phòng giá rẻ cho điện thoại di động đã trở nên rất phải chăng. Tất cả những gì tôi cần làm là giảm trọng lượng. Vì tôi rẻ tiền, tôi chuyển sang Vi điều khiển STM32F103C. Bạn có thể mua Vi điều khiển STM32F103C với giá dưới 2 đô la và nhỏ hơn nhiều so với Arduino. Tôi đã thay đổi một chút mã hóa để hoạt động với STM32F103C.

Quân nhu

  • Ô tô điều khiển từ xa giá rẻ ăn pin. Có, giống như cái mà Ardumotive_com sử dụng. Thay vào đó, bạn sẽ tắt hệ thống và sử dụng pin sạc dự phòng. Nếu bạn có đủ tài nguyên để xây dựng khung gầm của riêng mình, hãy có nó. Tôi đến cửa hàng đồ chơi dưới phố và mua một chiếc ô tô rẻ tiền dưới 10 đô la. Chiếc ô tô ăn pin và điều khiển từ xa ăn pin - hoàn hảo để cải tiến.
  • Ngân hàng điện thoại-- Hiện nay, chúng siêu rẻ. Đi lạc khỏi các pin dự phòng có nút nguồn ở bên cạnh. Bạn sẽ không thể theo dõi xe của mình và giữ nút. Điều đó thật ngớ ngẩn.
  • Chip L293D - Đây là Cầu H kép sẽ điều khiển động cơ điện.
  • Mô-đun Bluetooth HC-06
  • Một công tắc-- Tôi đã sử dụng một công tắc bật / tắt đơn giản.
  • Một số dây - dây điện thoại sẽ ổn, nhưng dây đo 20 sợi lớn hơn một chút sẽ tốt hơn.
  • Bảng Proto hoặc một miếng nhựa hoặc bìa cứng để gắn Blue Pill và L293D của bạn. Tôi ham rẻ nên tôi đã nghĩ ra một hệ thống khác một chút với bìa các-tông mỏng - giống như hộp bóng đèn.
  • Hai cáp sạc USB giá rẻ - Bạn có thể mua chúng từ Dollar Tree. Không sử dụng cáp lập trình đẹp của bạn. Một cái sẽ được cắt cho công tắc bật / tắt và cái kia sẽ sạc pin.

Không bắt buộc

  • 4 đèn LED - nếu bạn muốn đèn pha và đèn hậu.
  • 4 Điện trở 220 Ohm - cho đèn LED trên hệ thống 3.3v.
  • Một chiếc piezo hoặc loa nhỏ cho còi.

Công cụ

  • Hàn sắt và hàn
  • Súng bắn keo nóng - Con gái tôi là một Ninja bắn keo nóng!
  • Dụng cụ tuốt và cắt dây
  • LƯU Ý: nếu bạn sử dụng kỹ thuật bìa cứng mà tôi đang sử dụng chứ không phải bảng proto, bạn sẽ cần một máy khoan Dremel hoặc nhỏ

Bước 1: Tiêu diệt Người ăn pin

Tiêu diệt Người ăn pin!
Tiêu diệt Người ăn pin!

Đã đến lúc vui vẻ tiêu diệt kẻ ăn pin! Vâng, HÃY NHẮN RỒI! Cảm thấy tự hào rằng bạn đang làm một phần của mình trong việc làm cho thế giới trở nên xanh hơn - OK, đó là một khoảng thời gian, nhưng dù sao thì… Hãy vào khung hình.

Ở trên, là đơn vị tương tự mà tôi đã tạo phiên bản Arduino. Phiên bản Arduino đã sử dụng nguồn pin nghiêm trọng khiến chiếc xe nặng hơn. Vì vậy, tôi đã đưa nó trở lại khung hình. Tôi đã thêm một số chắn bùn từ một chai nhựa và keo nóng, và tùy chỉnh thân xe. Nhiều hơn trên cơ thể sau đó.

Khi bạn đã có khung với các động cơ và tay lái, hãy tìm xem bên nào của các đầu cuối động cơ. Sử dụng pin hoặc bộ sạc 5v để kiểm tra động cơ.

Trên động cơ lái, khi bánh xe quay sang phải, ghi nhãn pin dương "3" và dây âm, "6".

Trên động cơ truyền động, khi bánh xe quay về phía trước, ghi nhãn pin dương "14" và dây âm "11".

Bước 2: Mã trong Arduino IDE

Mã trong Arduino IDE
Mã trong Arduino IDE
Mã trong Arduino IDE
Mã trong Arduino IDE

Tốt nhất là bạn nên thử nghiệm thiết bị điện tử của ô tô trước trên một breadboard.

OK, đây là một trong những phần khó. Không thể lập trình "Blue Pill" qua cổng USB. Tôi không tìm thấy lời giải thích lập trình dễ dàng hơn về "Blue Pill" hơn Video Youtube của Joop Brokking. Nó giải thích mọi thứ bạn cần biết bao gồm cả thư viện STMduino của Roger Clarke. Có một cách để cài đặt bộ nạp khởi động để bạn CÓ THỂ sử dụng USB để lập trình "Blue Pill", nhưng bạn vẫn phải lập trình bộ nạp khởi động thông qua Bus nối tiếp.

Thật không may, Bus nối tiếp cũng được sử dụng bởi bộ điều hợp Bluetooth. Chương trình phải được cài đặt thông qua các chân Serial Bus, PA9 và PA10, qua FTDI trước, sau đó bạn có thể kiểm tra tất cả các cài đặt của mình bằng bộ điều hợp Bluetooth.

Sử dụng breadboard và bố trí mọi thứ trên breadboard giống như bản phác thảo ở trên. Ngắt kết nối các dòng Serial TX và RX của bộ điều hợp Bluetooth trên các chân PA9 và PA10 của STM32F103C. Kết nối FTDI và chương trình của bạn. Đảm bảo rằng các đường Bus nối tiếp được giao nhau, RX đến Tx và Tx đến RX. Một người nhận và người kia cho đi.

Sau khi chương trình được tải, bạn có thể mở bảng điều khiển nối tiếp và gửi

để xem đèn có hoạt động không. Nếu đèn hoạt động, bạn có thể gửi

một lần nữa để tắt chúng trở lại.

Đặt xe của bạn trên một khối để nâng cao lốp xe và gửi

Các bánh xe sẽ đi về phía trước. Nếu không, hãy đảo ngược các dây. Hãy nhớ cách chúng tôi gắn nhãn các dây trước đó. Các chân tương ứng của L293D phải được khớp với nhau.

Để dừng lại, hãy gửi

Hãy xem những thay đổi đáng kể trong mã.

Trong phần nhận xét, bắt đầu, bạn sẽ thấy trình khởi tạo tệp, từ Ardumotive. Một vài nhận xét tiếp theo giải thích nơi tôi đã thay đổi một chút để phản ánh STM32F103C.

/ * * Tạo bởi Vasilakis Michalis // 12-12-2014 ver.2

* Dự án: Điều khiển RC Car qua Bluetooth với điện thoại thông minh Android * Thông tin thêm tại https://www.ardumotive.com * * Đã thay đổi mã này để phù hợp với STM32F103 bởi Jim Garbe, [email protected] * Thông tin thêm tại https://github.com / jgarbe / RCCAR_STM32F103C * Lưu ý rằng các giá trị 8 bit 0-255 đã được thay đổi thành * phản ánh các giá trị 16 bit 0-65535 * / / ****************** ********* * Trên STM32, ghi tương tự vẫn hoạt động ở 8-bit 255, * Nhưng bạn có thể nhận được đầy đủ chức năngm của dải PWM, 0-65535, bằng cách khai báo Pin là PWM * AND sử dụng pwmWrite () thay vì analogWrite () **************************** /

Đáng chú ý nhất, các chân không được đặt tên giống nhau giữa Arduino và STM32F103C. Chúng tôi khai báo các chân bằng cách sử dụng tập hợp các dòng tiếp theo. Có một chân còn lại được khai báo theo cách xuống trong vòng lặp. Trên dòng 197, PA5 được sử dụng để đọc mức pin.

//// Kết nối L293

const int motorA1 = PB6; // đến Chân 15 của L293 const int motorA2 = PB7; // đến Chân 10 của L293 const int motorB1 = PB8; // đến Chân 7 của L293 const int motorB2 = PB9; // đến Pin 2 của L293 // Các Led kết nối với STM32F103C Pin A12 const int lights = PA12; // Buzzer / Loa tới Chân Arduino UNO A8 const int buzzer = PA8; // Chân trạng thái Bluetooth (HC-06 JY-MCU) trên chân A11 của STM32F103C const int BTState = PA11;

Ngoài ra, sử dụng analogWrite (); sẽ vẫn hoạt động trên "BluePill". Nhưng tốt hơn là khai báo các chân PWM bằng cách sử dụng, pinMode (, PWM);

Sau đó sử dụng

pwmWrite (,);

LƯU Ý: 8-bit = 0-255, 16-bit = 0-65535

Dòng 32-44 là những thay đổi được thực hiện đối với pin. Nếu bạn định sử dụng tính năng kiểm tra mức pin, bạn phải sử dụng bộ chia votage cho pin bạn có. Phần này không được phản ánh trong bản phác thảo Fritzing. Có rất nhiều giải thích về cách tạo bộ chia điện áp trên Youtube. Vì STM32F103C là chip 3.3v, tôi đã sửa mã ở đây để sử dụng vật lý một bộ chia điện áp. Arduino có thể chịu được một số điện áp cao hơn thông qua các ADC được cung cấp nhưng "Blue Pill" thì không.

/ * Mức pin sẽ được kiểm tra trên Pin PA5

* Đã thay đổi dòng tiếp theo cho STM32F103C vì ADC không thể xử lý * bất kỳ thứ gì trên 3.3v * Tôi chỉ nhận xét nó ra * Một bộ chia điện áp, sử dụng hai điện trở phải được tính toán và sử dụng * để đo đầu vào ADC sâu hơn trong mã * ví dụ: * GND --- Điện trở 2K ----------------- Điện trở 1K ------ 5v * | * | * 3.3v * / // const float maxBattery = 3.3; // Thay đổi giá trị thành mức điện áp pin tối đa của bạn!

Bước 3: Kết hợp tất cả lại với nhau

Đặt nó tất cả cùng nhau
Đặt nó tất cả cùng nhau
Đặt nó tất cả cùng nhau
Đặt nó tất cả cùng nhau
Đặt nó tất cả cùng nhau
Đặt nó tất cả cùng nhau
Đặt nó tất cả cùng nhau
Đặt nó tất cả cùng nhau

Tôi thường sử dụng một bảng proto để đặt các mảnh và hàn giữa các lỗ để kết nối mọi thứ. Đôi khi tôi "hàn" tất cả mọi thứ lại với nhau để có thêm giao diện Frankenstein / 3D của hàn.

Tôi đã chọn phương pháp kết hợp này để làm cho thiết bị sạch và nhẹ-- và tất nhiên là RẺ!

Phương pháp này cũng cho phép ghi nhãn. Một trong những phần tệ nhất của quá trình hàn deadbug là khi bạn nhìn vào chip IC từ phía dưới và quên mất chân nào là chân nào.

Những hình ảnh trên là tự giải thích. Tôi đoán phần khó là tìm được tấm bìa cứng đủ mỏng để đồng thời tạo má lúm đồng tiền và cứng cáp. Bạn có thể sử dụng nhựa cũng được nhưng việc đánh dấu nó khó hơn một chút. Khi tôi ấn các chốt vào bảng và đánh dấu các vết lõm, tôi sử dụng Dremel để khoan từng lỗ ghim qua.

Nếu bạn chưa nhận ra, tôi chỉ có đèn như một phích cắm phụ kiện trên bảng. Tôi không sử dụng đèn báo pin, cũng không phải tiếng bíp. Đó là bởi vì dự án của tôi là cho một mục đích khác. Nó sẽ tự giải thích khi bạn nhìn thấy kết quả hoàn chỉnh với thùng xe. … Nhưng điều này mang đến một ý tưởng khác, Có rất nhiều ghim không sử dụng trong dự án này. Có thể là dụng cụ mở cốp, mở cửa ô tô, thiết bị nổ phá lửa,…… hoặc thậm chí là Máy tạo nhiễu loạn Aether mini của Galvani-Edison!

Sau khi hoàn thành tất cả quá trình hàn, hãy kiểm tra trước khi bạn dán keo nóng các mối nối để giảm căng thẳng trên dây.

Tôi đã sử dụng cùng một Ứng dụng Android với Ardumotive. Bạn có thể tìm thấy Ứng dụng này tại https://play.google.com/store/apps/details?id=braulio.calle.bl BluetoothRCcontroller

Khi bạn đã kiểm tra các chức năng của xe, Đã đến lúc đặt pin và chuyển đổi. Đến bước tiếp theo.

Bước 4: Pin và công tắc

OK, đây là nơi bạn không thể thực hiện chính xác kế hoạch của tôi.

Bằng cách nào đó, bạn sẽ phải tìm một nơi phù hợp để đặt pin trên xe, cách sạc pin dự phòng từ dongle hoặc cách sạc trực tiếp vào phích cắm của pin. Trong video giới thiệu, tôi chỉ việc dán pin và vi điều khiển vào khung và chạy. Khi tôi muốn dừng lại, tôi chỉ cần rút pin ra. Vấn đề với thiết lập này là khả năng dễ hỏng của các phích cắm trên cáp USB và / hoặc bộ sạc dự phòng của bạn. Tốt hơn là nên có một công tắc.

Bạn cũng sẽ phải tìm một nơi tốt cho công tắc mà thùng xe vẫn cho phép truy cập. Tôi đã sử dụng công tắc nút nhấn đơn giản (không phải công tắc tạm thời) và gắn nó ở dưới cùng của khung, nơi đặt ngăn chứa pin ban đầu.

Bạn sẽ phải cắt một nửa cáp USB và đặt nút chuyển giữa pin và cổng USB STM32F103C. Có, bạn có thể cấp nguồn cho STM32F103C bằng cổng USB. Bạn không thể lập trình nó thông qua cổng USB. Tôi lại sử dụng Dremel để khoan một số lỗ cho các chân hàn của công tắc. Sau khi hàn, tôi sử dụng Keo nóng, một lần nữa để củng cố các kết nối.

Bước 5: Đặt thân xe của bạn vào khung

OK, tôi đã nói rằng tôi đã định hướng lại phiên bản Arduino ban đầu của chiếc xe này. Sau đó, sản phẩm cuối cùng thực sự là bệ đỡ sân khấu cho vở ba lê "Kẹp hạt dẻ" do công ty ba lê địa phương của chúng tôi biểu diễn. Trong cảnh mở đầu, một con chuột chạy ngang qua sân khấu với phép thuật tình cờ của Drosselmeyer. Tôi đã sử dụng một con chuột IKEA và lắp nó lên trên khung, Arduino và bộ pin lớn hơn nhiều. Chân chống nặng và không thể sạc lại được. Điều này tốt hơn nhiều!

Chúc bạn vui vẻ với chiếc xe của mình. Hãy nhớ rằng có nhiều chân cắm khác trên STM32F103C có thể được sử dụng. Có thể là một con chồn hôi tương tự như trong "Toy Story 4."

Đề xuất: