Table des matières:

Voiture RC Bluetooth avec STM32F103C et L293D - Pas cher : 5 étapes
Voiture RC Bluetooth avec STM32F103C et L293D - Pas cher : 5 étapes

Vidéo: Voiture RC Bluetooth avec STM32F103C et L293D - Pas cher : 5 étapes

Vidéo: Voiture RC Bluetooth avec STM32F103C et L293D - Pas cher : 5 étapes
Vidéo: Автомобиль управления Arduino Bluetooth с передней и задней подсветкой с использованием Arduino UNO, драйвера двигателя L293D, HC-05 2024, Juin
Anonim
Image
Image
Détruisez le mangeur de batterie !
Détruisez le mangeur de batterie !

J'ai fait une voiture Bluetooth Arduino comme celle représentée ici, par Ardumotive_com. Le problème que j'avais était les batteries et leur poids ainsi que leur coût. Depuis lors, les banques d'alimentation bon marché pour téléphones portables sont devenues très abordables. Tout ce que j'avais à faire était de réduire le poids. Étant donné que je suis bon marché, je suis passé au microcontrôleur STM32F103C. Le microcontrôleur STM32F103C peut être acheté pour moins de 2 $ et est beaucoup plus petit qu'un Arduino. J'ai modifié un peu le codage pour qu'il fonctionne également avec le STM32F103C.

Fournitures

  • Une voiture télécommandée bon marché qui consomme des piles. Oui, tout comme celui qu'utilise Ardumotive_com. Vous allez éteindre le système et utiliser une banque d'alimentation téléphonique à la place. Si vous avez les ressources pour construire votre propre châssis, allez-y. Je suis allé au magasin de jouets en bas de la rue et j'ai acheté une voiture bon marché pour moins de 10 $. La voiture mange des piles et la télécommande mange des piles - parfait pour l'amélioration.
  • Une banque de puissance de téléphone-- Ils sont super bon marché, maintenant. Éloignez-vous des banques d'alimentation qui ont un bouton d'alimentation sur le côté. Vous ne pourrez pas suivre votre voiture et maintenir le bouton enfoncé. C'est bête.
  • Une puce L293D - Il s'agit du double pont en H qui contrôlera les moteurs électriques.
  • Un module Bluetooth HC-06
  • Un interrupteur-- J'ai utilisé un simple interrupteur marche/arrêt.
  • Certains fils - un fil téléphonique conviendrait, mais un peu plus gros de calibre 20 torsadé serait mieux.
  • Un Proto Board ou un morceau de plastique ou de carton pour monter votre Blue Pill et L293D. Je ne suis pas cher, alors j'ai proposé un système un peu différent avec du carton ondulé mince, comme celui d'une boîte à ampoule.
  • Deux câbles de charge USB bon marché - Ceux-ci peuvent être achetés auprès d'un Dollar Tree. N'utilisez pas votre beau câble de programmation. L'un sera coupé pour l'interrupteur marche/arrêt, et l'autre chargera la batterie.

Optionnel

  • 4 LED - si vous voulez des phares et des feux arrière.
  • 4 résistances de 220 Ohm - pour les LED sur un système de 3,3 V.
  • Un piézo ou un petit haut-parleur pour un klaxon.

Outils

  • Fer à souder et soudure
  • Pistolet à colle chaude - Ma fille est une ninja du pistolet à colle chaude !
  • Pinces à dénuder et cisailles
  • REMARQUE: si vous utilisez la technique du carton que j'utilise plutôt qu'une planche proto, vous aurez besoin d'un Dremel ou d'une petite perceuse

Étape 1: Détruisez le mangeur de batterie

Détruisez le mangeur de batterie !
Détruisez le mangeur de batterie !

Il est temps de s'amuser à détruire le mangeur de batterie ! Oui, GUT CETTE CHOSE ! Soyez fier de faire votre part pour rendre le monde plus vert-- OK, c'est un peu exagéré, mais de toute façon… Allez au cadre.

Ci-dessus, est la même unité que j'ai fait la version Arduino. La version Arduino utilisait une puissance de batterie importante qui rendait la voiture plus lourde. Alors, je l'ai ramené au cadre. J'avais ajouté des garde-boue à partir d'une bouteille en plastique et de colle chaude, et j'avais personnalisé la carrosserie. Plus sur le corps plus tard.

Une fois que vous avez le cadre avec les moteurs et la direction nus, trouvez de quel côté des bornes du moteur se trouvent lesquels. Utilisez une batterie ou un chargeur 5v pour tester le moteur.

Sur le moteur de direction, lorsque les roues tournent à droite, étiquetez le fil positif de la batterie "3" et le fil négatif, "6".

Sur le moteur d'entraînement, lorsque les roues tournent vers l'avant, étiquetez le fil positif de la batterie "14" et le fil négatif "11".

Étape 2: Le code dans Arduino IDE

Le code dans l'IDE Arduino
Le code dans l'IDE Arduino
Le code dans l'IDE Arduino
Le code dans l'IDE Arduino

Il peut être préférable de prototyper d'abord l'électronique de votre voiture sur une planche à pain.

OK, c'est l'une des parties délicates. La "Blue Pill" ne peut pas être programmée via le port USB. Je n'ai pas trouvé d'explication de programmation plus facile de la "Blue Pill" que la vidéo Youtube de Joop Brokking. Il explique tout ce que vous devez savoir, y compris la bibliothèque STMduino de Roger Clarke. Il existe un moyen d'installer un chargeur de démarrage afin que vous puissiez utiliser l'USB pour programmer la "Blue Pill", mais vous devez quand même programmer le chargeur de démarrage via le bus série.

Malheureusement, le bus série est également utilisé par l'adaptateur Bluetooth. Le programme doit être installé via les broches Serial Bus, PA9 et PA10, via un FTDI d'abord, puis vous pouvez vérifier tous vos paramètres avec l'adaptateur Bluetooth.

Utilisez une planche à pain et disposez tout sur la planche à pain, tout comme le croquis fritz ci-dessus. Déconnectez les lignes Serial TX et RX de l'adaptateur Bluetooth sur les broches PA9 et PA10 du STM32F103C. Connectez votre FTDI et programmez. Assurez-vous que les lignes du bus série sont croisées, RX à Tx et Tx à RX. L'un reçoit et l'autre donne.

Une fois le programme chargé, vous pouvez ouvrir la console série et envoyer

pour voir si les lumières fonctionnent. Si les lumières fonctionnent, vous pouvez envoyer

à nouveau pour les désactiver.

Mettez votre voiture sur un bloc pour élever les pneus et envoyer

Les roues doivent avancer. Si ce n'est pas le cas, inversez les fils. Rappelez-vous comment nous avons étiqueté les fils plus tôt. Les broches correspondantes du L293D doivent correspondre.

Pour arrêter, envoyer

Regardons les changements significatifs dans le code.

Dans la section commentée, au début, vous devriez voir l'origine des fichiers, d'Ardumotive. Les quelques commentaires suivants expliquent où j'ai un peu changé pour refléter le STM32F103C.

/* * Créé par Vasilakis Michalis // 12-12-2014 ver.2

* Projet: Contrôler la voiture RC via Bluetooth avec un smartphone Android * Plus d'informations sur https://www.ardumotive.com * * Modification de ce code pour l'adapter au STM32F103 par Jim Garbe, [email protected] * Plus d'informations sur https://github.com/jgarbe/RCCAR_STM32F103C * Notez que les valeurs 8 bits 0-255 ont été modifiées en * reflètent les valeurs 16 bits 0-65535 */ /****************** ******* * Sur le STM32, l'écriture analogique fonctionne toujours à 8 bits 255, * Mais vous pouvez obtenir la pleine fonction de la gamme PWM, 0-65535, en déclarant la broche comme PWM * ET en utilisant pwmWrite() au lieu d'analogWrite() **************************/

Plus particulièrement, les broches ne sont pas nommées de la même manière entre l'Arduino et le STM32F103C. Nous déclarons les broches en utilisant le prochain ensemble de lignes. Il reste une broche qui est déclarée en bas de la boucle. Sur la ligne 197, PA5 est utilisé pour lire le niveau de la batterie.

////L293 Connexion

const int moteurA1 = PB6; // à la broche 15 de L293 const int motorA2 = PB7; // à la broche 10 de L293 const int motorB1 = PB8; // à la broche 7 de L293 const int motorB2 = PB9; // à la broche 2 de L293 // LED connectées à STM32F103C broche A12 const int lights = PA12; //Buzzer / Speaker to Arduino UNO Pin A8 const int buzzer = PA8; //Broche d'état Bluetooth (HC-06 JY-MCU) sur la broche A11 de STM32F103C const int BTState = PA11;

Aussi, en utilisant analogWrite(); fonctionnera toujours sur le "BluePill". Mais il est préférable de déclarer les broches PWM en utilisant, pinMode(, PWM);

Utilisez ensuite

pwmEcrit(,);

REMARQUE: 8 bits = 0-255, 16 bits = 0-65535

Les lignes 32-44 sont des modifications apportées à la batterie. Si vous envisagez d'utiliser la vérification du niveau de batterie, vous devez utiliser un diviseur de tension pour la batterie dont vous disposez. Cette partie n'est pas reflétée dans le croquis de Fritzing. Il existe de nombreuses explications sur la façon de créer un diviseur de tension sur Youtube. Parce que le STM32F103C est une puce 3.3v, j'ai corrigé le code ici pour utiliser physiquement un diviseur de tension. L'Arduino peut tolérer des tensions plus élevées via les ADC fournis, mais la "Blue Pill" ne le peut pas.

/* Le niveau de la batterie sera vérifié sur la broche PA5

* Modification de la ligne suivante pour le STM32F103C car l'ADC ne peut pas gérer * rien de plus de 3,3 v * Je viens de le commenter * Un diviseur de tension, utilisant deux résistances doit être calculé et utilisé * pour mesurer l'entrée ADC plus bas dans le code * exemple: * GND---2K résistance ------1K résistance ------5v * | * | * 3.3v */ // const float maxBattery = 3.3; // Modifiez la valeur en fonction du niveau de tension maximum de votre batterie !

Étape 3: Assemblez le tout

Mets le tout ensemble
Mets le tout ensemble
Mets le tout ensemble
Mets le tout ensemble
Mets le tout ensemble
Mets le tout ensemble
Mets le tout ensemble
Mets le tout ensemble

J'utilise généralement une proto-carte pour placer les pièces et souder entre les trous pour tout connecter. Parfois, je "soude sans problème" tout ensemble pour un look plus Frankenstein/3D de soudure.

J'ai choisi cette méthode hybride pour rendre l'appareil propre et léger - et bien sûr, BON MARCHÉ !

Cette méthode permet également l'étiquetage. L'une des pires parties de la soudure deadbug est lorsque vous regardez une puce IC par le bas et oubliez quelle broche est quoi.

Les images ci-dessus sont un peu explicites. Je suppose que la partie la plus difficile est de trouver le carton suffisamment fin pour faire des fossettes et être rigide en même temps. Vous pouvez également utiliser du plastique, mais le marquer est un peu plus difficile. Une fois que j'ai appuyé les broches sur la planche et marqué les fossettes, j'utilise un Dremel pour percer chaque trou de broche.

Si vous ne l'avez pas déjà remarqué, je n'ai les lumières que comme prise accessoire sur la carte. Je n'utilise pas l'indicateur de batterie, ni le bip. C'est parce que mon projet a un autre objectif. Ce sera explicite une fois que vous verrez le résultat final avec la carrosserie. … mais cela apporte une autre idée, il y a beaucoup de broches inutilisées sur ce projet. Peut-être un ouvre-coffre, un ouvre-porte de voiture, un détonateur de pétards, … … ou même un mini générateur de perturbations à l'éther luminescent Galvani-Edison !

Une fois que toute la soudure est terminée, testez avant de coller à chaud les joints pour soulager les contraintes sur les fils.

J'ai utilisé la même application Android qu'Ardumotive, elle peut être trouvée sur

Une fois que vous avez testé les fonctions de la voiture, il est temps de placer la batterie et l'interrupteur. Passez à l'étape suivante.

Étape 4: Batterie et interrupteur

OK, c'est là que vous ne pouvez pas suivre mon plan exactement.

D'une manière ou d'une autre, vous devrez trouver un bon endroit pour mettre votre batterie sur la voiture avec soit un moyen de charger le parc de batteries à partir d'un dongle, soit un moyen de charger directement la prise de la batterie. Dans la vidéo d'introduction, je viens de coller la batterie et le microcontrôleur sur le cadre et de l'exécuter. Quand j'ai voulu arrêter, j'ai juste débranché la batterie. Le problème avec cette configuration est la périssabilité des prises de votre câble USB et/ou de votre banque d'alimentation. Il vaut mieux avoir un interrupteur.

Vous devrez également trouver un bon endroit pour le commutateur où la carrosserie de la voiture permettra toujours l'accès. J'ai utilisé un simple interrupteur à bouton-poussoir (pas un interrupteur momentané) et je l'ai monté au bas du cadre où se trouve le compartiment à piles d'origine.

Vous devrez couper un câble USB en deux et mettre le commutateur entre la batterie et le port USB STM32F103C. Oui, vous pouvez alimenter le STM32F103C avec le port USB. Vous ne pouvez pas le programmer via le port USB. J'ai à nouveau utilisé un Dremel pour percer des trous pour les broches à souder du commutateur. Une fois soudé, j'ai utilisé de la colle chaude, encore une fois pour renforcer les connexions.

Étape 5: placez votre carrosserie sur le cadre

OK, j'ai dit que j'avais réutilisé la version Arduino originale de cette voiture. Le produit final réel, alors, était un accessoire de scène pour le ballet "Casse-Noisette" interprété par notre compagnie de ballet locale. Dans la scène d'ouverture, une souris a traversé la scène avec la magie accidentelle de Drosselmeyer. J'ai utilisé un rat IKEA et je l'ai installé sur le cadre, Arduino et une batterie beaucoup plus grande. L'hélice était lourde et non rechargeable. Ceci est vraiment mieux!

Amusez-vous avec votre voiture. N'oubliez pas qu'il y a beaucoup plus de broches sur le STM32F103C qui peuvent être utilisées. Peut-être une mouffette similaire à celle de "Toy Story 4".

Conseillé: