Table des matières:

Le RADbot : 7 étapes
Le RADbot : 7 étapes

Vidéo: Le RADbot : 7 étapes

Vidéo: Le RADbot : 7 étapes
Vidéo: Ejderha Kılıcı hull türkçe dublaj izle 2024, Octobre
Anonim
Le RADbot
Le RADbot

Un projet de Jackson Breakell, Tyler McCubbins et Jakob Thaler pour EF 230

Sur Mars, les astronautes seront soumis à une variété de dangers, allant des températures extrêmes aux tempêtes de poussière. Un facteur souvent négligé, cependant, est le danger que représentent les radio-isotopes puissants résidant à la surface de la planète. Le RADbot fournit une assistance à l'exploration des astronautes à la surface de Mars en identifiant des échantillons de roche avec des activités élevées au fur et à mesure qu'il se déplace, et dispose également de fonctions de sécurité programmées qui utilisent ses capteurs de falaise, ses capteurs de lumière, ses capteurs de pare-chocs et une caméra, empêchant le robot d'endommager sur le terrain martien impitoyable. En plus d'avertir les astronautes des dangers radioactifs possibles à la surface, la fonction de localisation des échantillons radioactifs du robot pourrait être mise en œuvre comme un outil pour identifier les zones qui pourraient contenir d'importants dépôts d'uranium et d'autres actinides. Les astronautes pourraient extraire ces éléments, les enrichir suffisamment et les utiliser dans des réacteurs nucléaires et des générateurs thermoélectriques, ce qui pourrait aider à alimenter une colonie permanente et autonome sur la planète.

Contrairement au rover typique de Mars, notre conception comprend des composants standard et un prix raisonnable. À condition d'avoir les fonds et l'envie, vous pouvez même en construire un vous-même en suivant ce guide. Veuillez lire la suite pour apprendre à créer votre propre RADbot.

Étape 1: Acquérir les pièces et les matériaux nécessaires

Acquérir les pièces et matériaux nécessaires
Acquérir les pièces et matériaux nécessaires
Acquérir les pièces et matériaux nécessaires
Acquérir les pièces et matériaux nécessaires
Acquérir les pièces et matériaux nécessaires
Acquérir les pièces et matériaux nécessaires

Ce dont vous aurez besoin pour commencer (Images placées dans l'ordre où elles sont répertoriées)

1. Un Roomba (tout modèle plus récent)

2. Un compteur Geiger-Mueller

3. Un Raspberry Pi

4. Une caméra embarquée avec une prise USB

5. Un câble micro USB vers USB

6. Un câble USB vers USB

7. Un échantillon radioactif d'activité suffisante (~5μSv ou plus)

8. Un ordinateur avec Matlab installé

9. Adhésif (de préférence du ruban adhésif pour un retrait facile)

Étape 2: Configuration de la caméra et du compteur Geiger-Muller

Configuration de la caméra et du compteur Geiger-Muller
Configuration de la caméra et du compteur Geiger-Muller

Maintenant que vous disposez de tout le matériel nécessaire pour créer le RADbot, nous allons commencer par simplement placer la caméra afin qu'elle puisse lire l'activité sur le comptoir. Placez le compteur Geiger-Muller aussi près que possible de l'extrémité du Roomba et assurez-vous que son capteur n'est pas bloqué. Fixez fermement le compteur en place avec l'adhésif que vous avez choisi et montez la caméra pour lui faire face. Placez la caméra aussi près que possible de l'affichage du compteur pour éviter que des entrées extérieures n'affectent le programme et fixez-la en place une fois que vous vous sentez à l'aise. Nous vous recommandons de garder la sécurisation de la caméra pour la fin, car, lorsque votre code est terminé, vous pouvez afficher une image de la caméra sur votre ordinateur, vous permettant de positionner la caméra en fonction de son champ de vision. Une fois que la caméra et le compteur sont fermement en place, branchez la caméra sur l'une des entrées USB du Raspberry Pi avec le câble USB vers USB, et branchez le Raspberry Pi sur le Roomba avec le câble micro USB vers USB.

Étape 3: Connectez-vous à votre Roomba et créez un code de capteur de lumière

Connectez-vous à votre Roomba et créez un code de capteur de lumière
Connectez-vous à votre Roomba et créez un code de capteur de lumière

Tout d'abord, téléchargez la boîte à outils Roomba du site Web EF 230 et assurez-vous de la placer dans les dossiers spécifiés. Pour vous connecter à votre Roomba, référencez simplement l'autocollant attaché au Raspberry Pi et entrez "r=roomba(x)" dans la fenêtre de commande, sans les guillemets, et où x représente le numéro du Roomba. Le Roomba devrait jouer une mélodie et le bouton de nettoyage devrait afficher un anneau vert autour de lui. Démarrez votre code avec une instruction "while" et reportez-vous aux capteurs de lumière tels qu'ils apparaissent dans la liste des capteurs. Ouvrez la liste des capteurs en tapant "r.testSensors" dans la fenêtre de commande.

En fonction de la couleur de notre objet, qui détermine la quantité de lumière réfléchie, définissez les exigences pour que l'instruction while soit exécutée en tant que fonction >. Dans notre cas, nous avons configuré le capteur de lumière avant pour exécuter le code dans l'instruction while si la lecture sur les capteurs de lumière centraux gauche ou droit était > 25. Pour l'instruction exécutable, définissez la vitesse du Roomba pour qu'elle ralentisse en tapant "r.setDriveVelocity(x, y)" où x et y sont respectivement les vitesses des roues gauche et droite. Insérez une instruction "else", afin que le Roomba ne ralentisse pas pour des valeurs non spécifiées, et entrez à nouveau la commande de vitesse d'entraînement définie, sauf avec une vitesse différente. Terminez l'instruction while par un "end". Ce segment de code amènera le Roomba à s'approcher de l'objet et ralentira une fois qu'il aura atteint une certaine plage pour minimiser l'impact.

Vous trouverez ci-joint une capture d'écran de notre code, mais n'hésitez pas à la modifier pour l'adapter au mieux aux paramètres de votre mission.

Étape 4: Créer un code de pare-chocs

Créer un code de pare-chocs
Créer un code de pare-chocs

Au fur et à mesure que le Roomba ralentit, il minimisera l'impact qu'il a sur l'objet, mais pas tellement qu'il ne déclenche pas le pare-chocs physique. Pour ce segment de code, recommencez avec une boucle « while » et définissez son expression sur true. Pour l'instruction, définissez la variable T égale à la sortie du pare-chocs, soit 0, soit 1, pour faux et vrai. Vous pouvez utiliser le "T=r.getBumpers" pour cela. T sortira en tant que structure. Entrez une instruction "if" et définissez son expression pour la sous-structure T.front sur 1 et définissez l'instruction pour définir la vitesse du lecteur à 0, en utilisant "r.setDriveVelocity(x, y)" ou "r.stop ". Entrez une "pause" pour que le Roomba puisse se déplacer une fois que la condition du code suivant est remplie. Ajoutez un "else" et définissez sa déclaration pour définir la vitesse d'entraînement à la vitesse de croisière normale du Roomba.

Vous trouverez ci-joint une capture d'écran de notre code, mais n'hésitez pas à la modifier pour l'adapter au mieux aux paramètres de votre mission.

Étape 5: Créer un code pour lire l'écran du compteur, l'interpréter et se retirer de la source

Créer un code pour lire l'écran du compteur, l'interpréter et se retirer de la source
Créer un code pour lire l'écran du compteur, l'interpréter et se retirer de la source

Au cœur de notre projet se trouve le compteur Geiger-Muller et le segment de code suivant est utilisé pour déterminer ce que signifient les données à l'écran à l'aide de la caméra. Étant donné que l'écran de notre compteur change de couleur en fonction de l'activité de la source, nous allons configurer la caméra pour interpréter la couleur de l'écran. Démarrez votre code en définissant une variable égale à la commande "r.getImage". La variable contiendra un tableau 3D de valeurs de couleur de l'image qu'elle a prise en rouge, vert et bleu. Définissez des variables égales aux moyennes de ces matrices de couleurs respectives en utilisant la commande "mean(mean(img1(:,:, x)))" où x est un entier de 1 à 3. 1, 2 et 3 représentent le rouge, le vert et bleu respectivement. Comme pour toutes les commandes référencées, n'incluez pas de guillemets.

Faites une pause du programme pendant 20 secondes en utilisant "pause(20)" afin que le compteur puisse obtenir une lecture précise de l'échantillon, puis commencez une instruction "if". Nous avons fait biper plusieurs fois notre Roomba en utilisant "r.beep" avant de lui faire afficher un menu avec le texte "Radioisotope found! Attention!" cela peut être accompli avec la commande "waitfor(helpdlg({'texthere'})". Après avoir cliqué sur ok, le Roomba continuera à suivre le reste du code dans l'instruction "if". Demandez au Roomba de parcourir l'échantillon en utilisant une combinaison des commandes "r.moveDistance" et "r.turnAngle". Assurez-vous de terminer votre instruction if par un "end".

Vous trouverez ci-joint une capture d'écran de notre code, mais n'hésitez pas à la modifier pour l'adapter au mieux aux paramètres de votre mission.

Étape 6: Créez un code de capteur Cliff

Créer un code de capteur Cliff
Créer un code de capteur Cliff

Pour créer un code permettant d'utiliser les capteurs de falaise intégrés du Roomba, commencez par une boucle « while » et définissez son expression sur true. Définissez une variable pour qu'elle soit égale à "r.getCliffSensors", et cela se traduira par une structure. Démarrez une instruction "if" et définissez les variables "X.leftFront" et "X.rightFront" de la structure pour qu'elles soient supérieures à une valeur prédéterminée, où "X" est la variable pour laquelle vous avez choisi la commande "r.getCliffSensors" être égal à. Dans notre cas, nous avons utilisé 1000, car un morceau de papier blanc a été utilisé pour représenter une falaise, et, à mesure que les capteurs se sont approchés du papier, les valeurs ont dépassé largement les 1000, garantissant que le code ne s'exécutera que lorsqu'une falaise est détectée.. Ajoutez la commande "break" après, puis insérez une instruction "else". Pour l'instruction "else", qui sera exécutée si aucune falaise n'est détectée, réglez la vitesse d'entraînement sur la vitesse de croisière normale pour chaque roue. Si le Roomba détecte une falaise, le "break" sera exécuté, puis le code en dehors de la boucle while sera exécuté. Après avoir placé la « fin » de la boucle « if » et « while », réglez le Roomba pour qu'il recule à l'aide de la commande move distance. Afin d'avertir les astronautes qu'une falaise est à proximité, définissez les vitesses d'entraînement de chaque roue, x et y dans la commande de vitesse d'entraînement, sur a et -a, où a est un nombre réel. Cela fera tourner le Roomba, alertant l'astronaute de la falaise.

Vous trouverez ci-joint une capture d'écran de notre code, mais n'hésitez pas à la modifier pour l'adapter au mieux aux paramètres de votre mission.

Étape 7: Conclusion

Conclusion
Conclusion

L'objectif ultime du RADbot sur Mars est d'aider les astronautes dans leur exploration et leur colonisation de la planète rouge. En identifiant des échantillons radioactifs à la surface, nos espoirs sont que le robot, ou le rover, dans ce cas, puisse vraiment assurer la sécurité des astronautes et aider à identifier les sources d'énergie pour leur(s) base(s). Après avoir suivi toutes ces étapes, et peut-être avec quelques essais et erreurs, votre RADbot devrait être opérationnel. Placez l'échantillon radioactif quelque part dans votre zone de test, exécutez votre code et regardez le rover faire ce pour quoi il a été conçu. Profitez de votre RADbot !

-L'équipe EF230 RADbot

Conseillé: