Table des matières:
2025 Auteur: John Day | [email protected]. Dernière modifié: 2025-01-23 14:45
Avez-vous déjà eu envie de fabriquer vous-même quelque chose qui puisse être envoyé dans l'espace et prendre la température d'une autre planète ? Dans notre cours de physique au lycée, nous avons été chargés de construire un CubeSat avec un arduino fonctionnel avec la question principale Comment pouvons-nous faire fonctionner cela sur Mars ? Nous avons décidé de lui faire mesurer la température sur la planète, car qui ne voudrait pas savoir à quel point Mars est chaud ? Cependant, nous devions en faire quelque chose d'abordable, mais aussi durable. Par conséquent, nous avons utilisé des Legos. Cela a rendu le CubeSat durable et nous a aidés à atteindre les dimensions de dimensionnement assez facilement, même si toutes les pièces étaient un peu embêtantes ! Notre objectif était d'avoir un capteur entièrement fonctionnel qui peut prendre la température de la zone environnante, et un CubeSat protecteur autour de celui-ci.
Étape 1: Rassembler les matériaux/esquisser le CubeSat
La toute première chose que vous voudrez faire est de dessiner le CubeSat. Vous aurez besoin d'avoir une idée de ce que vous voulez construire avant de le construire. L'une des images ci-dessus est celle des croquis de CubeSat que nous avons réalisés. Ensuite, rassemblez vos matériaux. Pour le CubeSat que nous construisons, nous utilisons des Legos. Nous avons choisi les Legos parce qu'ils sont faciles à obtenir et à assembler, et en même temps, ils sont durables et effectueront bien les tâches requises. Donc, vous aurez besoin d'obtenir des Legos. obtenez quelques pièces de base larges, de 10 cm X 10 cm X 10 cm, ou quelques pièces de base qui peuvent être assemblées en une pièce de 10 par 10. Pour notre CubeSat, nous avons dû obtenir plusieurs pièces de base et les assembler pour former une base de 10 cm sur 10 cm. Vous aurez également besoin de Legos pour faire une pièce de toit de la même taille. Après avoir obtenu ces Legos, vous aurez besoin d'une tonne de petits Legos pour construire les murs du CubeSat. Assurez-vous que ces Legos sont assez maigres, afin qu'ils ne prennent pas trop de place à l'intérieur du CubeSat.
Étape 2: Construire le Cubesat
Tout d'abord, nous avons construit cette beauté 10x10x10. Il a fallu beaucoup de conceptions différentes. Nous avions d'abord une étagère au milieu, mais nous avons décidé plus tard que ce n'était pas nécessaire. Si vous choisissez d'avoir une étagère au milieu, je recommanderais une seule étagère car vous devrez la démonter à chaque fois que vous mettez et retirez votre Arduino et votre capteur. Nous avons ajouté de petites fenêtres pour que nous puissions jeter un coup d'œil à l'intérieur pendant que le toit est fermé afin que nous puissions voir que tout fonctionne bien. Pour rendre le CubeSat plus stable, nous avons assemblé deux couches de Lego en bas. Plus il est stable, mieux c'est, car ce CubeSat devra être capable de survivre à de nombreux obstacles différents.
Étape 3: Câblage et codage de l'Arduino
La deuxième étape de ce projet est l'endroit où vous devrez câbler l'arduino. Cette étape est très importante, car si cela n'est pas fait correctement, le cube sat ne pourra pas lire la température. Pour terminer le câblage de l'arduino, vous aurez besoin de quelques matériaux. Ces matériaux sont une batterie, un arduino, une carte SD, des câbles de démarrage, une planche à pain, un capteur de température et un ordinateur. L'ordinateur sera utilisé pour voir si le câblage fonctionne correctement. Voici un site Web qui nous a été très utile pour nous guider sur la façon de câbler l'arduino:
create.arduino.cc/projecthub/TheGadgetBoy/…
Les images et le schéma ci-dessus peuvent également vous aider. Le codage de l'arduino sera également testé sur l'ordinateur pour voir s'il fonctionne. Si tout fonctionne, l'arduino peut être retiré de l'ordinateur et est prêt à fonctionner.
Code:
// Le fil de données est branché sur le port 2 de l'Arduino
#define ONE_WIRE_BUS 2
Fichier sensorData;
// Configurez une instance oneWire pour communiquer avec tous les périphériques OneWire (pas seulement les circuits intégrés de température Maxim/Dallas)
OneWire oneWire(ONE_WIRE_BUS);
// Inclure les bibliothèques dont nous avons besoin
#comprendre
#comprendre
#comprendre
// Transmettez notre référence oneWire à Dallas Temperature.
DallasCapteurs de température (&oneWire);
// tableaux pour contenir l'adresse du périphérique
DeviceAddress insideThermometer;
/*
* Fonction de configuration. Ici, nous faisons les bases
*/
configuration vide (void)
{
pinMode (10, SORTIE);
SD.begin(4);
// démarrer le port série
Serial.begin(9600);
Serial.println ("Démo de la bibliothèque de contrôle de température de Dallas");
// localiser les appareils sur le bus
Serial.print("Localisation des périphériques…");
capteurs.begin();
Serial.print("Trouvé ");
Serial.print(sensors.getDeviceCount(), DEC);
Serial.println(" appareils.");
// signaler les besoins en alimentation parasite
Serial.print("La puissance parasite est: ");
if (sensors.isParasitePowerMode()) Serial.println("ON");
else Serial.println("OFF");
/*Attribuer l'adresse manuellement. Les adresses ci-dessous seront à changer
aux adresses d'appareils valides sur votre bus. L'adresse de l'appareil peut être récupérée
en utilisant soit oneWire.search(deviceAddress) soit individuellement via
capteurs.getAddress(deviceAddress, index) Notez que vous devrez utiliser votre adresse spécifique ici
insideThermometer = { 0x28, 0x1D, 0x39, 0x31, 0x2, 0x0, 0x0, 0xF0 };
Méthode 1:
Recherchez des appareils sur le bus et attribuez-les en fonction d'un index. Idéalement, vous feriez cela pour découvrir d'abord les adresses sur le bus, puis
utilisez ces adresses et attribuez-les manuellement (voir ci-dessus) une fois que vous savez
les appareils sur votre bus (et en supposant qu'ils ne changent pas).
*/ if (!sensors.getAddress(insideThermometer, 0)) Serial.println("Impossible de trouver l'adresse pour le périphérique 0");
// méthode 2: recherche()
// search() recherche le périphérique suivant. Renvoie 1 si une nouvelle adresse a été
// revenu. Un zéro peut signifier que le bus est en court-circuit, qu'il n'y a aucun périphérique, // ou vous les avez déjà tous récupérés. Ce serait peut-être une bonne idée de
// vérifiez le CRC pour vous assurer que vous n'avez pas de déchets. La commande est
// déterministe. Vous obtiendrez toujours les mêmes appareils dans le même ordre
//
// Doit être appelé avant search()
//oneWire.reset_search();
// attribue la première adresse trouvée à insideThermometer
//if (!oneWire.search(insideThermometer)) Serial.println("Impossible de trouver l'adresse pour insideThermometer");
// afficher les adresses que nous avons trouvées dans le bus
Serial.print("Adresse du périphérique 0: ");
printAddress(insideThermometer);
Serial.println();
// régler la résolution sur 9 bits (chaque appareil Dallas/Maxim est capable de plusieurs résolutions différentes)
capteurs.setResolution(insideThermometer, 9);
Serial.print("Résolution du périphérique 0: ");
Serial.print(sensors.getResolution(insideThermometer), DEC);
Serial.println();
}
// fonction pour imprimer la température d'un appareil
void printTemperature(DeviceAddress deviceAddress)
{
// méthode 1 - plus lente
//Série.print("Temp C: ");
//Serial.print(sensors.getTempC(deviceAddress));
//Série.print(" Temp F: ");
//Serial.print(sensors.getTempF(deviceAddress)); // Fait un deuxième appel à getTempC puis convertit en Fahrenheit
// méthode 2 - plus rapide
float tempC = capteurs.getTempC(deviceAddress);
if(tempC == DEVICE_DISCONNECTED_C)
{
Serial.println("Erreur: impossible de lire les données de température");
revenir;
}
sensorData = SD.open("log.txt", FILE_WRITE);
if (sensorData) {
Serial.print("Temp C: ");
Serial.print(tempC);
Serial.print(" Temp F: ");
Serial.println(DallasTemperature::toFahrenheit(tempC)); // Convertit tempC en Fahrenheit
sensorData.println(tempC);
sensorData.close();
}
}
/*
* Fonction principale. Il demandera le tempC aux capteurs et s'affichera sur Serial.
*/
boucle vide (vide)
{
// appelle sensor.requestTemperatures() pour émettre une température globale
// demande à tous les appareils sur le bus
Serial.print("Demande de températures…");
capteurs.requestTemperatures(); // Envoie la commande pour obtenir les températures
Serial.println("FAIT");
// Il répond presque immédiatement. Imprimons les données
printTemperature(insideThermometer); // Utiliser une fonction simple pour imprimer les données
}
// fonction pour imprimer une adresse de périphérique
void printAddress(DeviceAddress deviceAddress)
{
pour (uint8_t i = 0; i < 8; i++)
{
if (deviceAddress < 16) Serial.print("0");
Serial.print(deviceAddress, HEX);
}
}
RépondreForward
Étape 4: Vérification du Cubesat
Maintenant que le CubeSat, le code et le câblage d'un Arduino sont terminés, vous allez bientôt lancer des tests. Si ces tests échouent, votre CubeSat pourrait potentiellement être complètement détruit, ainsi que votre Arduino. Par conséquent, vous voudrez vous assurer que votre Arduino est prêt pour cela. C'est là que cette étape entre en jeu, en vérifiant le CubeSat. Tout d'abord, vous devrez placer votre Arduino en toute sécurité à l'intérieur du CubeSat et vous assurer qu'il ne bougera pas. Ensuite, vous devrez vous assurer que toutes les pièces du CubeSat sont bien en place. Il ne peut y avoir de pièces détachées, ou le CubeSat sera plus susceptible de se désintégrer pendant les tests. Si vous vérifiez fermement votre CubeSat, les tests qu'il subit devraient être réussis facilement.
Étape 5: enfiler le CubeSat
Cette étape sera en préparation pour le premier test que le CubeSat subira. Lors du test, le CubeSat sera balancé à un rythme rapide en cercle pendant 30 secondes. Vous devrez vous assurer que le CubeSat est bien tendu afin qu'il ne s'envole pas. Nous avons attaché 2 cordes complètement autour du CubeSat et les avons attachées étroitement. Ensuite, nous avons ajouté une autre longue ficelle, qui a été nouée autour des deux premières. Nous avons noué cette ficelle plusieurs fois en haut et en bas pour qu'elle soit aussi sécurisée que possible. Cela peut prendre plusieurs tentatives car vous voulez que la corde soit parfaite afin qu'elle ne se desserre pas pendant le vol.
Étape 6: Le test de swing
Pour plus de sécurité à cette étape, assurez-vous de porter des lunettes de protection pour protéger vos yeux. Dans cette étape, vous exécuterez le CubeSat à travers un test pour voir s'il protège suffisamment l'Arduino pour qu'il puisse effectuer sa tâche (trouver la température). Le premier test est celui qui nécessite le cordage. Dans ce test, l'Arduino sera basculé (comme indiqué dans l'image/vidéo ci-dessus) - (parfois la vidéo a du mal à se charger). Un modèle de Mars peut être placé au milieu. Pour réussir ce test, l'Arduino devra avoir basculé sans se détacher, c'est pourquoi il doit être bien tendu, et l'Arduino devra fonctionner pleinement une fois le test terminé. C'est pourquoi vous devez vous assurer que l'Arduino est bien sécurisé dans le CubeSat.
Étape 7: Test #2 - le Shake Test
Dans cette étape, votre CubeSat passera le test #2. Ce test est le test d'agitation. Dans ce test, le CubeSat sera placé dans un support comme indiqué sur l'image/la vidéo (parfois la vidéo a du mal à se charger) ci-dessus et sera secoué violemment d'avant en arrière pendant 30 secondes. Pour réussir ce test, votre CubeSat et votre Arduino devront toujours fonctionner pleinement après avoir été secoués.
Étape 8: Résultats/Température CubeSat terminée
Au final, notre CubeSat a réussi à enregistrer la température lors de chaque test. Les données indiquent systématiquement 26-30 degrés Celsius dans chaque test. C'est la même chose que 78-86 degrés Fahrenheit. Cependant, nous avons rencontré quelques problèmes sur le chemin. Par exemple, plusieurs fois, le codage de l'arduino n'a pas fonctionné et a lu 126 degrés Celsius. Il a fallu plusieurs tentatives pour atteindre la bonne température. Un conseil que je donnerais à toute personne réalisant ce projet serait d'essayer plusieurs variantes de code et de câblage, et de s'assurer que votre arduino s'intègre parfaitement dans le CubeSat. Vous devrez peut-être resserrer l'espace à l'intérieur du CubeSat pour vous assurer que l'arduino s'intègre parfaitement à l'intérieur. Nous avons eu un problème avec l'arduino étant trop lâche dans le CubeSat.
Dans ce projet, vous devrez également appliquer vos connaissances en physique. Les connaissances physiques de la technologie, de l'énergie et de la force devront être appliquées tout au long du projet. Tout au long du projet, nous en avons appris davantage sur le système solaire et les nouvelles technologies comme les CubeSats. Nous avons également appris la force gravitationnelle et comment cette force pourrait affecter le CubeSat. Un sujet très important avec ce projet était le mouvement des satellites. Nous avons appris le mouvement des satellites en utilisant la vitesse, la force nette et la gravité. Cela nous aiderait à trouver les projectiles des satellites.
Une fois que votre CubeSat et votre arduino ont réussi les tests et fonctionnent correctement, vous avez terminé. Votre CubeSat devrait pouvoir survivre à l'atmosphère de Mars. Assurez-vous que le capteur a également enregistré avec succès la température tout au long des tests. Votre CubeSat est prêt à partir dans l'espace !
Conseillé:
DIY Comment afficher l'heure sur M5StickC ESP32 à l'aide de Visuino - Facile à faire: 9 étapes
DIY Comment afficher l'heure sur M5StickC ESP32 à l'aide de Visuino - Facile à faire: Dans ce tutoriel, nous allons apprendre à programmer ESP32 M5Stack StickC avec Arduino IDE et Visuino pour afficher l'heure sur l'écran LCD
ESP8266 OLED - Obtenir l'heure et la date à partir d'Internet : 8 étapes
ESP8266 OLED - Obtenir l'heure et la date à partir d'Internet : dans ce didacticiel, nous apprendrons comment obtenir la date et l'heure du serveur NIST TIME à l'aide de ESP8266 OLED et Visuino, regardez une vidéo de démonstration
Jour de la semaine, calendrier, heure, humidité/température avec économiseur de batterie : 10 étapes (avec photos)
Jour de la semaine, calendrier, heure, humidité/température avec économiseur de batterie : le mode d'économie d'énergie ici est ce qui distingue cet Instructable des autres exemples montrant le jour de la semaine, le mois, le jour du mois, l'heure, l'humidité et la température. C'est cette capacité qui permet à ce projet d'être exécuté à partir d'une batterie, sans t
Affichage de la date, de l'heure et de la température à l'aide de XinaBox : 8 étapes
Affichage de la date, de l'heure et de la température à l'aide de XinaBox : écran OLED cool affichant la date, l'heure et la température en degrés Celsius et Fahrenheit à l'aide de Xinabox xChips basé sur ESP8266
Une jolie unité d'affichage de la date, de l'heure et de la température : 3 étapes
Une jolie unité d'affichage de la date, de l'heure et de la température : Salut les amis, dans cette instructable, je vais expliquer la procédure pour créer une unité d'affichage de la date, de l'heure et de la température actuelle à l'aide d'Arduino pro mini, d'un RTC et d'un affichage à sept segments à huit chiffres dans une unité très compacte, ce qui est un appareil utile