Table des matières:

Processeur Raspberry PI Vision (SpartaCam) : 8 étapes (avec photos)
Processeur Raspberry PI Vision (SpartaCam) : 8 étapes (avec photos)

Vidéo: Processeur Raspberry PI Vision (SpartaCam) : 8 étapes (avec photos)

Vidéo: Processeur Raspberry PI Vision (SpartaCam) : 8 étapes (avec photos)
Vidéo: Image processing on Raspberry Pi 5: our new hardware image signal processor 2024, Juillet
Anonim
Processeur Raspberry PI Vision (SpartaCam)
Processeur Raspberry PI Vision (SpartaCam)
Processeur Raspberry PI Vision (SpartaCam)
Processeur Raspberry PI Vision (SpartaCam)

Un système de processeur de vision Raspberry PI pour votre robot FIRST Robotics Competition

À propos de FIRST

De Wikipédia, l'encyclopédie gratuite

La FIRST Robotics Competition (FRC) est une compétition internationale de robotique pour les lycées. Chaque année, des équipes d'élèves du secondaire, d'entraîneurs et de mentors travaillent pendant six semaines pour construire des robots de jeu pesant jusqu'à 120 livres (54 kg). Les robots accomplissent des tâches telles que marquer des balles dans des buts, faire voler des disques dans des buts, des chambres à air sur des racks, s'accrocher à des barres et équilibrer des robots sur des poutres d'équilibre. Le jeu, ainsi que l'ensemble de tâches requis, changent chaque année. Alors que les équipes reçoivent un ensemble standard de pièces, elles ont également droit à un budget et sont encouragées à acheter ou à fabriquer des pièces spécialisées.

Jeu de cette année (2020) RECHARGE INFINIE. Le jeu Infinite Recharge implique deux alliances de trois équipes chacune, chaque équipe contrôlant un robot et effectuant des tâches spécifiques sur un terrain pour marquer des points. Le jeu s'articule autour d'un thème de ville futuriste impliquant deux alliances composées de trois équipes chacune en compétition pour effectuer diverses tâches, notamment tirer des boules de mousse appelées Power Cells dans des objectifs hauts et bas pour activer un générateur de bouclier, manipuler un panneau de contrôle pour activer ce bouclier, et retourner au générateur de bouclier pour se garer ou grimper à la fin du match. L'objectif est de dynamiser et d'activer le bouclier avant que le match ne se termine et que les astéroïdes frappent FIRST City, une ville futuriste inspirée de Star Wars.

À quoi sert le système de processeur de vision Raspberry PI ?

La caméra pourra scanner le terrain de jeu et les emplacements cibles où les pièces de jeu sont fournies ou doivent être placées pour le décompte. L'ensemble dispose de 2 connexions, alimentation et Ethernet.

Les cibles de vision sur le terrain de jeu sont délimitées avec du ruban rétroréfléchissant et la lumière se reflétera sur l'objectif de la caméra. Le Pi exécutant le code open source de Chameleon Vision (https://cameleon-vision.readthedocs.io/en/latest/…) valeurs de tableau classées par x et y en mètres et angle en degrés avec d'autres données via une table de réseau. Ces informations seront utilisées dans un logiciel pour contrôler notre robot en mode autonome ainsi que pour viser et tirer sur notre tireur à tourelle. D'autres plates-formes logicielles peuvent être exécutées sur le Pi. FRC vision peut être installé si votre équipe a déjà investi du temps logiciel dans cette plate-forme.

Notre budget était serré cette année et l'achat d'un appareil photo Limelight à 399,00 $ (https://www.wcproducts.com/wcp-015) n'était pas dans les cartes. En achetant toutes les fournitures sur Amazon et en utilisant l'imprimante 3D Team 3512 Spartatroniks, j'ai pu emballer un système de vision personnalisé pour 150,00 $. Certains articles sont venus en vrac, la construction d'un deuxième coprocesseur ne nécessiterait qu'un autre Raspberry Pi, une caméra PI et un ventilateur. Avec l'aide CAO de l'une des équipes Mentors (merci Matt), le boîtier PI a été créé à l'aide de Fusion 360.

Pourquoi ne pas simplement utiliser un Pi avec un boîtier bon marché, brancher une caméra USB, ajouter une lampe annulaire, installer Chameleon vision et le tour est joué, n'est-ce pas ? Eh bien, je voulais plus de puissance et moins de câbles et le facteur de fraîcheur d'un système personnalisé.

Un Pi 4 utilise 3 ampères s'il fonctionne à plein régime, c'est-à-dire s'il utilise la plupart de ses ports, le wifi et exécute un écran. Nous ne faisons pas cela sur nos robots, mais les ports USB sur le roboRIO https://www.ni.com/en-us/support/model.roborio.ht… sont évalués à 900 ma, le régulateur de tension modulable (VRM) 5 volts fournissent jusqu'à 2 ampères en crête, limite de 1,5 ampères, mais c'est un connecteur partagé, donc si un autre appareil est sur le bus 5 volts, il y a une possibilité de baisse de tension. Le VRM fournit également 12 volts à 2 ampères, mais nous utilisons les deux connexions pour alimenter notre radio à l'aide d'un câble POE et d'une connexion cylindrique pour la redondance. Certains inspecteurs FRC n'autoriseront rien d'autre que ce qui est imprimé sur le VRM à y être branché. C'est donc à 12 volts du PDP sur un disjoncteur de 5 ampères que le Pi doit être alimenté.

12 volts sont fournis via un disjoncteur de 5 ampères sur le panneau de distribution électrique (PDP), est converti en 5,15 volts à l'aide d'un convertisseur LM2596 DC à DC Buck. Le convertisseur Buck fournit 5 volts à 3 ampères et reste en régulation jusqu'à 6,5 volts en entrée. Ce bus 5 volts alimente ensuite 3 sous-systèmes, un réseau annulaire de LED, un ventilateur, un Raspberry Pi.

Fournitures

  • Pack de 6 LM2596 DC vers DC Buck Converter 3.0-40V à 1.5-35V Module d'alimentation abaisseur (6 Pack) 11,25 $
  • Noctua NF-A4x10 5V, ventilateur silencieux Premium, 3 broches, version 5V (40x10mm, marron) 13,95 $
  • Carte microSDHC UHS-I SanDisk Ultra 32 Go avec adaptateur - 98 Mo/s U1 A1 - SDSQUAR-032G-GN6MA 7,99 $
  • Module caméra Raspberry Pi V2-8 mégapixels, 1080p 428,20
  • GeeekPi Raspberry Pi 4 Dissipateur thermique, 20 PCS Raspberry Pi Dissipateurs thermiques en aluminium avec ruban adhésif conducteur thermique pour Raspberry Pi 4 Modèle B (La carte Raspberry Pi n'est pas incluse) 7,99 $
  • Raspberry Pi 4 modèle B 2019 Quad Core 64 bits WiFi Bluetooth (4 Go) 61,96 $
  • (Pack de 200 pièces) Transistor 2N2222, Transistor 2N2222 à-92 NPN 40V 600mA 300MHz 625mW Through Hole 2N2222A 6,79 $
  • EDGELEC 100 pcs 100 ohms Résistance 1/4w (0,25 Watt) ±1% Tolérance Résistance Fixe à Film Métallique Ampoule d'éclairage super lumineuse à haute intensité Lampes Composants électroniques Diodes de lampe 6,30 $
  • J-B Weld Plastic Bonder 5,77 $

Étape 1: prototype 1

Prototype 1
Prototype 1

Premier test en emballage:

L'équipe disposait d'un Pi 3 d'une année précédente qui était disponible pour les tests. Une caméra pi, un circuit buck/boost DC-DC et une lampe annulaire Andymark ont été ajoutés.https://www.andymark.com/products/led-ring-green.

À cette époque, je n'avais pas envisagé le Pi 4, donc je ne m'inquiétais pas des besoins en énergie. L'alimentation a été fournie via USB à partir du roboRIO. L'appareil photo tient dans le boîtier sans modification. La lumière annulaire a été collée à chaud sur le couvercle du boîtier et câblée à la carte de suralimentation. La carte boost s'est branchée sur les ports GPIO 2 et 6 pour 5 volts et la sortie a été ajustée jusqu'à 12 volts pour faire fonctionner l'anneau. Il n'y avait pas de place à l'intérieur du boîtier pour la carte de suralimentation, elle était donc également collée à chaud à l'extérieur. Le logiciel a été installé et testé à l'aide d'objectifs de l'année de jeu 2019. L'équipe du logiciel a donné un coup de pouce, nous avons donc commandé un Pi 4, des dissipateurs thermiques et un ventilateur. Et pendant qu'ils étaient là-bas, le boîtier a été conçu et imprimé en 3D.

Étape 2: Prototype 2

Prototype 2
Prototype 2
Prototype 2
Prototype 2
Prototype 2
Prototype 2

Les dimensions internes de l'enceinte étaient correctes, mais les emplacements des ports étaient décalés, pas un obstacle.

Cela a été terminé juste après la révélation du nouveau jeu afin que le logiciel puisse tester les nouveaux emplacements cibles.

De bonnes nouvelles et de mauvaises nouvelles. Le rendement lumineux de l'anneau n'était pas adéquat lorsque nous étions à plus de 15 pieds de la cible, il est donc temps de repenser l'éclairage. Etant donné que des modifications étaient nécessaires, je considère cette unité comme le prototype 2.

Étape 3: prototype 3

Prototype 3
Prototype 3
Prototype 3
Prototype 3

Le prototype 2 a été laissé en place pour que le logiciel puisse continuer à affiner son système. Pendant ce temps, un autre Pi 3 a été trouvé et j'ai bricolé un autre banc d'essai. Cela avait un Pi3, une lifecam 3000 USB directement soudée à la carte, un convertisseur boost et une matrice de diodes soudées à la main.

Encore une bonne nouvelle, une mauvaise nouvelle. Le réseau pourrait éclairer une cible à plus de 50 pieds, mais perdrait la cible si un angle supérieur à 22 degrés. Avec cette information, le système final pourrait être fait.

Étape 4: Produit final

Produit final
Produit final
Produit final
Produit final
Produit final
Produit final

Le prototype 3 avait 6 diodes distantes d'environ 60 degrés et orientées directement vers l'avant.

Les derniers changements ont consisté à ajouter 8 diodes espacées de 45 degrés autour de l'objectif avec 4 diodes orientées vers l'avant et 4 diodes inclinées de 10 degrés donnant un champ de vision de 44 degrés. Cela permet également au boîtier d'être monté verticalement ou horizontalement sur le robot. Un nouveau boîtier a été imprimé avec des modifications pour accueillir un Pi 3 ou un Pi 4. La face du boîtier a été modifiée pour les diodes individuelles.

Les tests n'ont montré aucun problème de performance entre Pi 3 ou 4, donc les ouvertures du boîtier ont été faites pour permettre l'installation de l'un ou l'autre Pi. Les points de montage arrière ont été supprimés ainsi que les ouvertures d'échappement au sommet du dôme. L'utilisation d'un Pi 3 réduira encore le coût. Le Pi 3 est plus froid et consomme moins d'énergie. En fin de compte, nous avons décidé d'utiliser les PI 3 pour les économies de coûts et l'équipe logicielle voulait utiliser du code qui fonctionnerait sur le Pi 3 qui n'avait pas été mis à jour pour le Pi 4.

Importez la STL dans votre trancheuse d'imprimantes 3D et c'est parti. Ce fichier est en pouces, donc si vous avez une trancheuse comme Cura, vous devrez probablement mettre la pièce à l'échelle à %2540 pour la convertir en métrique. Si vous avez Fusion 360, le fichier.f3d peut être modifié selon vos propres besoins. Je voulais inclure un fichier.step mais les instructables ne permettront pas le téléchargement des fichiers.

Outils de base nécessaires:

  • Pince à dénuder
  • Pinces
  • Fer à souder
  • Gaine thermorétractable
  • Pinces coupantes
  • Soudure sans plomb
  • Flux
  • Coup de main ou forceps
  • Pistolet thermique

Étape 5: Câblage du réseau de diodes

Réseau de diodes de câblage
Réseau de diodes de câblage
Réseau de diodes de câblage
Réseau de diodes de câblage
Réseau de diodes de câblage
Réseau de diodes de câblage

Avis de sécurité:

Fer à souderNe touchez jamais l'élément du fer à souder….400°C !(750°F)

Tenez les fils à chauffer avec des pincettes ou des pinces.

Gardez l'éponge de nettoyage humide pendant l'utilisation.

Remettez toujours le fer à souder sur son support lorsqu'il n'est pas utilisé.

Ne le posez jamais sur l'établi.

Éteignez l'appareil et débranchez-le lorsqu'il n'est pas utilisé.

Soudure, flux et nettoyants

Portez des lunettes de protection.

La soudure peut « cracher ».

Utilisez des soudures sans colophane et sans plomb dans la mesure du possible.

Conservez les solvants de nettoyage dans les flacons distributeurs.

Lavez-vous toujours les mains à l'eau et au savon après la soudure.

Travaillez dans des zones bien ventilées.

OK, au boulot:

La face du boîtier a été imprimée avec des trous de diode à 0, 90, 180, 270 points inclinés à 10 degrés vers l'extérieur. Les trous à 45, 135, 225, 315 points sont droits.

Placez toutes les diodes sur la face du boîtier pour vérifier la taille du trou de 5 mm. Un ajustement serré maintiendra les diodes pointées au bon angle. Le long fil d'une diode est l'anode, soudez une résistance de 100 ohms à chaque diode. Les fils de soudure de la diode et de la résistance se ferment et laissent un long fil de l'autre côté de la résistance (voir photos). Testez chaque combo avant de continuer. Une pile AA et 2 cordons de test allumeront faiblement la diode et vérifieront que vous avez la bonne polarité.

Remettez le combo diode/résistance dans le boîtier et positionnez les fils en zigzag de sorte que chaque fil de résistance touche la résistance suivante pour créer un anneau. Soudez tous les fils. Je mélangerais du J-B souder Plastic Bonder (https://www.amazon.com/J-B-Weld-50133-Tan-1-Pack) et de l'époxyde le combo diode/résistance en place. J'ai envisagé la super colle, mais je ne savais pas si le cyanoacrylate embuerait la lentille de la diode. Je l'ai fait à la fin de toutes mes soudures, mais j'aurais aimé l'avoir fait ici pour réduire la frustration lorsque les diodes ne tenaient pas en place pendant la soudure. L'époxy s'installe en 15 minutes environ, c'est donc un bon endroit pour faire une pause.

Maintenant, tous les fils cathodiques peuvent être soudés ensemble pour créer le - ou l'anneau de masse. Ajoutez des fils rouge et noir de calibre 18 à votre bague de diode. Testez la matrice terminée à l'aide d'une alimentation de 5 volts, le chargeur USB fonctionne bien pour cela.

Étape 6: Câblage Buck/Boost

Câblage Buck/Boost
Câblage Buck/Boost
Câblage Buck/Boost
Câblage Buck/Boost
Câblage Buck/Boost
Câblage Buck/Boost
Câblage Buck/Boost
Câblage Buck/Boost

Avant de câbler le convertisseur Buck, nous devrons régler la tension de sortie. Puisque nous utilisons le PDP pour fournir le 12 volts, j'ai câblé directement à un port PDP, fusionné à 5 ampères. Fixez un voltmètre à la sortie de la carte et commencez à tourner le potentiomètre. Il faudra quelques tours avant de voir un changement car la carte est testée en usine à pleine puissance puis laissée à ce réglage. Réglez sur 5,15 volts. Nous fixons quelques millivolts de haut pour correspondre à ce que le Pi s'attend à voir d'un chargeur USB et de tout chargement de ligne à partir d'un ventilateur et d'un réseau de diodes. (Au cours des premiers tests, nous avons vu des messages importuns du Pi se plaignant d'une faible tension de bus. Une recherche sur Internet nous a indiqué que le Pi attendait plus de 5,0 volts, car la plupart des chargeurs émettent un peu plus et l'alimentation typique d'un Pi est un chargeur USB.)

Ensuite, nous devons préparer le cas:

Le convertisseur abaisseur et le Pi sont maintenus à l'aide de 4 à 40 vis mécaniques. Le foret #43 est idéal pour créer des trous précis pour le rubanage de 4 à 40 fils. Tenez le convertisseur Pi et buck sur les entretoises, marquez puis percez à l'aide du foret n° 43. La hauteur des entretoises permet une profondeur suffisante pour l'aneth sans passer complètement à travers le dos. Tapez les trous avec un taraud aveugle 4-40. Les vis autotaraudeuses utilisées dans le plastique fonctionneraient bien ici, mais j'avais les 4 à 40 vis disponibles, c'est donc ce que j'ai utilisé. Des vis sont nécessaires pour permettre l'accès à la carte SD (aucun accès externe à la carte n'est fourni avec ce boîtier).

Le prochain trou à percer est pour votre câble d'alimentation. J'ai choisi un point dans le coin inférieur pour qu'il passe le long du câble Ethernet à l'extérieur et sur le côté, puis sous le Pi à l'intérieur. J'ai utilisé un câble blindé à 2 fils comme ce que j'avais sous la main, n'importe quelle paire de fils de calibre 14 fonctionnera. Si vous utilisez une paire de fils sans gaine, mettez 1 à 2 couches de thermorétractable sur le fil à l'endroit où il pénètre dans votre boîtier pour la protection et la décharge de traction. La taille du trou à déterminer par votre choix de fil.

Vous pouvez maintenant souder les fils aux lignes d'entrée du convertisseur DC-DC. Les connexions sont étiquetées sur la carte. Fil rouge vers in+ Fil noir vers in-. En sortant de la carte, j'ai soudé 2 fils nus courts pour servir de poteau de fil pour attacher le ventilateur, le Pi et le transistor.

Étape 7: Câblage final et époxy

Câblage final et époxy
Câblage final et époxy
Câblage final et époxy
Câblage final et époxy
Câblage final et époxy
Câblage final et époxy

Seules 4 connexions sont établies avec le Pi. Câble plat de mise à la terre, d'alimentation, de contrôle LED et d'interface de caméra.

Les 3 broches utilisées sur le Pi sont 2, 6 et 12.

Coupez un fil rouge, noir et blanc à 4 pouces. Dénudez 3/8 pouce d'isolant aux deux extrémités des fils, aux extrémités en étain des fils et aux broches en étain sur le Pi.

  • Souder le fil rouge à la broche GPIO 2 glisser 1/2 pouce de gaine thermorétractable appliquer de la chaleur.
  • Souder le fil noir à la broche GPIO 6 glisser 1/2 pouce de gaine thermorétractable appliquer de la chaleur.
  • Souder le fil blanc à la broche GPIO 12 glisser 1/2 pouce de gaine thermorétractable appliquer de la chaleur.
  • Souder le fil rouge pour débrancher+
  • Souder le fil noir pour débrancher-
  • Ajoutez un thermorétractable de 1 pouce au fil blanc et soudez à une résistance de 100 ohms et de la résistance à la base du transistor. Isoler avec thermorétractable.
  • Transistor émetteur à Buck -
  • Collecteur de transistor vers le côté cathode du réseau de diodes
  • Réseau de diodes Anode/Résistance à Buck +
  • Fil rouge du ventilateur pour débrancher +
  • Fil noir du ventilateur pour débrancher-

Dernière connexion:

Insérez le câble d'interface de la caméra. La connexion par câble utilise un connecteur zif (force d'insertion nulle). La bande noire sur le dessus du connecteur doit être relevée, le câble placé dans la prise puis le connecteur est poussé vers le bas pour le verrouiller en place. Veillez à ne pas pincer le câble car la trace dans l'isolant pourrait se rompre. Le connecteur doit également être inséré droit pour l'alignement du câble plat sur les broches.

Vérifiez votre travail pour les brins de fil parasites et les gouttes de soudure, coupez tout excès de longueur sur les poteaux de soudure buck.

Si vous êtes satisfait de votre travail, le ventilateur et la caméra peuvent être collés en place. Quelques gouttes dans les coins suffisent.

Étape 8: Logiciel

Logiciel
Logiciel
Logiciel
Logiciel
Logiciel
Logiciel
Logiciel
Logiciel

Pendant que l'époxy durcit, insérons le logiciel dans la carte SD. vous aurez besoin d'un adaptateur de carte SD à brancher sur votre ordinateur (https://www.amazon.com/Reader-Laptop-Windows-Chrom….

Aller à:

www.raspberrypi.org/downloads/raspbian/ et téléchargez Raspbian Buster Lite. Pour flasher la carte SD avec raspbian, vous aurez besoin d'un autre outil logiciel BalenaEtcher et il peut être trouvé ici, L'époxy devrait avoir suffisamment durci pour que vous puissiez installer la carte SD et visser la carte buck/boost. Avant d'enclencher le couvercle, vérifiez qu'aucun fil n'interfère avec le couvercle et que le câble de la caméra ne touche pas les pales du ventilateur. Une fois le couvercle en place, je souffle sur le ventilateur et le regarde bouger pour m'assurer qu'il n'y a pas d'interférence des fils ou du câble plat.

Temps de mise sous tension:

Lors de la première mise sous tension, vous aurez besoin d'un câble HDMI, si un Pi 4 un câble mini HDMI, un clavier USB et un moniteur HDMI ainsi qu'une connexion Internet. Branchez à une alimentation de 12 volts, PDP avec un disjoncteur de 5 ampères.

Une fois connecté, la première chose à faire est d'exécuter l'outil de configuration. C'est là que SSH peut être défini avec l'activation de la caméra PI. https://www.raspberrypi.org/documentation/configur… contient des instructions pour vous aider.

Redémarrez avant d'installer Chameleon Vision

S'il vous plaît visitez leur site avant d'utiliser leur logiciel, ils ont une mine d'informations. Une note, sur leur page de matériel pris en charge, la caméra Pi est indiquée comme non prise en charge, mais c'est avec leur dernière version. La page Web a besoin d'être mise à jour.

À partir de la page Web de Chameleon Vision:

Chameleon Vision peut fonctionner sur la plupart des systèmes d'exploitation disponibles pour le Raspberry Pi. Cependant, il est recommandé d'installer Rasbian Buster Lite, disponible icihttps://www.raspberrypi.org/downloads/raspbian/. Suivez les instructions pour installer Raspbian sur une carte SD.

Assurez-vous que le Raspberry Pi est connecté via Ethernet à Internet. Connectez-vous au Raspberry Pi (nom d'utilisateur pi et mot de passe raspberry) et exécutez les commandes suivantes dans le terminal:

$ wget https://git.io/JeDUk -O install.sh

$ chmod +x install.sh

$ sudo./install.sh

$ sudo redémarrer maintenant

Toutes nos félicitations! Votre Raspberry Pi est maintenant configuré pour exécuter Chameleon Vision ! Une fois le Raspberry Pi redémarré, Chameleon Vision peut être démarré avec la commande suivante:

$ sudo java -jar cameleon-vision.jar

Lorsqu'une nouvelle version de Chameleon Vision est publiée, mettez-la à jour en exécutant les commandes suivantes:

$ wget https://git.io/JeDUL -O update.sh

$ chmod +x update.sh

$ sudo./update.sh

Contrôle de la matrice de LED:

Votre matrice de LED ne s'allumera pas sans contrôle logiciel

La première robotique de cette année a une règle contre les lumières LED lumineuses, mais les autorisera si elles peuvent être éteintes et allumées selon les besoins. Colin Gideon "SpookyWoogin", FRC 3223, a écrit un script Python pour contrôler les LED et qui peut être trouvé ici:

github.com/frc3223/RPi-GPIO-Flash

Ce système exécutera également FRC vision si votre équipe a déjà investi du temps logiciel dans cette plate-forme. Avec FRC vision, la carte SD complète est imagée, il n'est donc pas nécessaire de télécharger Raspbian. Obtenez-le ici

Cela vous procurera un système de vision dans un facteur de forme cool. Bonne chance aux compétitions!

Concours Raspberry Pi 2020
Concours Raspberry Pi 2020
Concours Raspberry Pi 2020
Concours Raspberry Pi 2020

Finaliste du concours Raspberry Pi 2020

Conseillé: