Construire votre auto Driving R sous Android

Construire votre auto Driving R sous Android

Photo par Dimitris Platis

Dans ce tutoriel, je vais vous guider à travers les étapes qui ont été prises afin de construire un véhicule autonome Android. Le logiciel connexe, qui fonctionne dans ladite plate-forme se trouve sur GitHub dans le répertoire / Exemples / AndroidCar dossier de la bibliothèque AndroidCar. Avant de passer aux détails de construction, permettez-moi de fournir un bref historique sur le raisonnement derrière elle.

Dans mon projet, je les considérations suivantes donné la priorité aux:

  • Modularité: La possibilité de diviser un gros problème en plus petits. Pour ce faire, le véhicule est divisé en trois compartiments ou niveaux.
  • câblage visible minimale: Le nombre de câbles est faible, plus la probabilité d'accident (de courts-circuits, les connexions cassées etc).
  • Déployabilité: En adoptant une conception modulaire, la possibilité de déployer facilement le véhicule augmente.
  • Maintenabilité: Rendre le système facile à modifier, améliorer ou réparer.

Construire votre auto Driving R sous Android

Échelle 1 / 10ème voiture R / C

Nous avons utilisé une voiture R / C d'une marque appelée Racing HSP. Quelque chose avec châssis similaire devrait également fonctionner.

Construire votre auto Driving R sous Android

Construire votre auto Driving R sous Android

module Bluetooth (SC-05)

Ce module Bluetooth peu coûteux permet au Mega Arduino de communiquer facilement avec le téléphone mobile. Tout ce qui est envoyé via une connexion série au module Bluetooth est transmis sans fil à quel appareil est actuellement connecté au module Bluetooth. Sur le HC-05, il y a aussi une broche qui indique s'il y a une connexion active au moment que nous utilisons pour chercher et transmettre des données de l'Arduino, uniquement lorsque cela est nécessaire.

Contrôleur de vitesse électronique

Le contrôleur de vitesse électronique est le composant qui entraîne les moteurs en fonction d'un signal de PWM qu'il reçoit de l'Arduino. Il est relié à une batterie de 7.2V.

Le servomoteur, qui est commandé par le Arduino via un signal PWM, détermine l'angle de roues avant du véhicule. Il est relié à la batterie et non la sortie Arduino 5V pour des raisons de sécurité, car il peut tirer une charge de courant.

Construire votre auto Driving R sous Android

des capteurs de distance à ultrasons (HC-SR04) (3)

Les capteurs à ultrasons calculent la distance en transmettant une impulsion d'onde ultrasonore et la mesure de combien de temps il a fallu revenir, après avoir réfléchi sur un objet. Chaque capteur est relié à deux (numériques) communs broches Arduino.

Construire votre auto Driving R sous Android

des capteurs infrarouges (SHARP SHARP GP2D120) (3)

Les capteurs infrarouges fonctionnent de manière similaire à ceux à ultrasons. En fonction de la distance de l'objet qu'ils font face, ils retournent la quantité équivalente de tension. Chacun d'eux est relié à une broche analogique sur le Arduino. Gardez à l'esprit que les capteurs spécifiques peuvent mesurer de manière fiable les distances entre 4 et 25 centimètres.

Construire votre auto Driving R sous Android

Construire votre auto Driving R sous Android

Α composant qui fournit des informations sur le mouvement de la voiture dans l'espace tridimensionnel. Il est composé d'un microcontrôleur (ATmega328P), un accéléromètre, un gyroscope et un magnétomètre. En raison des interférences magnétiques des moteurs, ses mesures ne sont pas très fiables, mais qui pourrait être amélioré avec le filtrage par le logiciel. Nous n'utilisons pas ses lectures.

Le gyroscope est utilisé pour calculer le déplacement angulaire du véhicule, ou dans notre cas le lacet. Cela est particulièrement utile pour le stationnement, mais pourrait également être utilisé pour créer une carte du chemin que nous avons parcouru.

Construire votre auto Driving R sous Android

matrices infrarouges (2)

Les tableaux infrarouges sont constitués par trois capteurs infrarouges chacun, qui renvoient un signal HIGH si elles détectent une surface blanche. Nous les utilisons pour détecter lorsque le véhicule a roulé sur le milieu en pointillé ligne de rue, afin d'améliorer la performance et la précision de dépassement. Les quatre signaux (deux de chaque réseau infrarouge) sont combinés dans des portes OU et les deux sorties sont fixés aux interruptions sur le Arduino.

récepteur R / C (en option, mais très utile)

Nous avons connecté le récepteur par défaut R / C de la voiture à l'Arduino afin de conserver le contrôle de la voiture à l'aide du contrôleur R / C en cas d'urgence. Cela se révèle particulièrement précieux quand il s'agit de tester les fonctions autonomes de la voiture, pour des raisons évidentes de sécurité. Le récepteur R / C a généralement trois canaux. Un signal de commande qui détermine si le dispositif de commande à distance est activé ou désactivé, une pour les moteurs, et un autre pour le volant. Par exemple, dans notre véhicule, chaque fois que la télécommande est activée.

LED, ATtiny85, résistances, transistors (Facultatif)

Les composants ci-dessus sont nécessaires pour un bord d'attaque de DEL. Il clignote les LED équivalent, selon que la voiture est en mouvement, tourner, ou est arrêté.

Construire votre auto Driving R sous Android

Dans le schéma ci-dessus, vous pouvez voir comment les différentes connexions. Plus important encore, je l'ai montré à quel point je l'ai visualisé les différents compartiments.

Construire votre auto Driving R sous Android

Une autre façon de visualiser le câblage du capteur de la voiture Android autonome.

Le module Bluetooth et les membres pourraient être considérés comme 9DOF IMU du compartiment inférieur, car ils sont fixés directement au châssis. Mais parce qu'ils sont facilement accessibles et ne sont pas directement sous la couche intermédiaire, ils ne sont pas regroupés avec les composants du compartiment inférieur.

Enfin, le compartiment moins accessible (pour une bonne raison), est composé de composants qui sont montés sur le châssis du véhicule, tels que la batterie, les moteurs, l'ESC, le capteur de vitesse et de matrices infrarouges. Je délibérément conçu l'ensemble de ces compartiments de sorte qu'il n'y a pas de relations entre des couches non adjacentes. En faisant cela, le circuit est plus facile à modifier, réparer et déployer.

Le compartiment inférieur est constitué de composants dont vous avez besoin à peine de jouer avec après la configuration initiale. Ceux-ci comprennent le moteur à courant continu, le CES, le servomoteur, le capteur de vitesse, et les matrices infrarouges. Il est également une bonne pratique d'ajouter un interrupteur marche / arrêt entre la batterie et le reste des composants.

Construire votre auto Driving R sous Android

Les tableaux infrarouges permettent la voiture de détecter quand il franchit la ligne de la rue moyenne en pointillés, l'amélioration de la procédure de dépassement.

Construire votre auto Driving R sous Android

Le capteur de vitesse change d'état selon que le faisceau infrarouge qu'elle émet est réfléchie vers lui. Les surfaces noires ne reflètent pas la poutre arrière. Remarquez les bandes de ruban noir à l'intérieur de la roue.

Pour le compartiment du milieu I positionné composants sur une feuille de matière plastique que je coupe pour être compatibles avec les dimensions de la voiture. Quatre trous ont été forés dans la feuille, ce qui vous permet de passer des câbles en dessous. Le Mega Arduino, module Bluetooth, R / C récepteur de commande prioritaire, des bornes de connexion, les portes OU, le gyroscope et l'IMU 9DOF sont vissées ou collées sur la feuille, qui est elle-même vissée sur la partie supérieure du châssis. Heureusement, le véhicule avait des fentes à vis disponibles sur le châssis pour rendre les choses faciles.

Construire votre auto Driving R sous Android

De droite à gauche les composants suivants sont visibles: le module Bluetooth, le Mega Arduino, le gyroscope, la borne de connexion, les portes OU et le 9DOF IMU. Un œil attentif peut également repérer une carte microcontrôleur ATmega328P barebone, mais il est une fonctionnalité expérimentale qui est pas encore complètement intégré.

Construire votre auto Driving R sous Android

Le module Bluetooth HC-05

Construire votre auto Driving R sous Android

La borne de connexion. Comprend un régulateur de tension de 5v, broches de masse, ainsi que d'un bus de communication vers le compartiment supérieur. Les connexions entre les composants du même compartiment sont conduits, en passant les câbles non-transparente si possible en vertu de la feuille de matière plastique.

Construire votre auto Driving R sous Android

Les portes OU qui reçoivent des entrées à partir des matrices infrarouges et leur sortie passe à l'Arduino.

Construire votre auto Driving R sous Android

Le bus de communication entre le milieu et le compartiment supérieur. Deux lignes pour l'alimentation et la terre. Les autres sont des données de capteur et la connexion série à la carte de commande de DEL.

Le compartiment supérieur est monté à l'intérieur de la coquille du corps de la voiture R / C. Là-dessus, je l'ai monté les différents capteurs de distance et la carte de conducteur LED. Ce compartiment est relié au niveau intermédiaire uniquement par le bus de communication, ce qui contribue à maintenir le câblage relativement propre.

Dispositif applications qui interprète les données de capteur et analyse l'alimentation de l'appareil photo est monté sur l'extérieur de l'enveloppe au moyen d'un support de téléphone commun.

Construire votre auto Driving R sous Android

La disposition du compartiment supérieur, où l'emplacement des divers capteurs de distance, la carte de commande de DEL, et les différents voyants d'état sont représentés. Les lumières oranges sont les œillères, les rouges indiquent quand la voiture est à l'arrêt, et le bleu sur les impostes lorsque nous remplaçons les commandes du véhicule via le contrôleur R / C.

Construire votre auto Driving R sous Android

Les deux capteurs à ultrasons à l'avant. Les lumières LED derrière eux ne servent qu'à des fins esthétiques et sont constamment.

Construire votre auto Driving R sous Android

Les capteurs à ultrasons sont montés (à l'aide de colle à chaud) en faisant un trou dans l'enrobage, permettant à leurs broches de passer à travers.

Construire votre auto Driving R sous Android

Les capteurs de distance à infrarouge qui se trouvent sur le côté droit du véhicule sont utilisés pour détecter les écarts de stationnement, ainsi que pour déterminer si un obstacle sur la route a été dépassé.

Construire votre auto Driving R sous Android

Construire votre auto Driving R sous Android

Une vue d'ensemble du compartiment supérieur. Sur le papier il semblait simple, mais beaucoup de connexions doivent être faites. Je suggère le collage des câbles sur la coque afin d'éviter les emmêler avec des câbles dans le compartiment du milieu.

Conduite avec Android

La voiture assemblé est contrôlé à l'aide d'une application qui communique sur les applications Bluetooth. Les négociations d'application pour le microcontrôleur de bord, les moteurs d'entraînement et l'analyse des données provenant des capteurs. Petroula Theodoridou devrait obtenir la plupart du crédit pour l'interface graphique et la connectivité Bluetooth intuitive de l'application.

Construire votre auto Driving R sous Android

L'application Android, que nous avons appelé CARduino. s'exécute avec succès sur Jelly Bean, KitKat et Lollipop, et a été testé sur les téléphones suivants: JiaYu G4S, Xiaomi Mi3 et un OnePlus.

Construire votre auto Driving R sous Android

Vous pouvez essayer les différentes fonctions (vérifier les différentes branches) dans l'environnement de test OpenDaVinci en utilisant les ressources trouvées dans ce référentiel. Il comprend une image de l'environnement OpenDaVinci, avec notre processeur d'image et des caractéristiques de conduite logiques (stationnement, le dépassement, suivi de voie). Il suffit de compiler et exécuter.

Articles Liés