Temperatūros kubasSat Ben & Kaiti & Q valanda 1: 8 žingsniai
Temperatūros kubasSat Ben & Kaiti & Q valanda 1: 8 žingsniai
Anonim
Temperatūros kubasSat Ben & Kaiti & Q valanda 1
Temperatūros kubasSat Ben & Kaiti & Q valanda 1
Temperatūros kubasSat Ben & Kaiti & Q valanda 1
Temperatūros kubasSat Ben & Kaiti & Q valanda 1

Ar kada nors norėjote patys pasigaminti kažką, ką būtų galima nusiųsti į kosmosą ir išmatuoti kitos planetos temperatūrą? Vidurinės mokyklos fizikos pamokoje mums buvo pavesta sukurti „CubeSat“su veikiančiu arduino, kurio pagrindinis klausimas yra kaip tai padaryti Marse? Mes nusprendėme išmatuoti temperatūrą planetoje, nes kas nenorėtų žinoti, koks karštas Marsas? Tačiau mums reikėjo jį pagaminti iš kažko prieinamo, bet ir patvaraus. Todėl mes naudojome „Legos“. Dėl to „CubeSat“tapo patvarus ir padėjo mums lengvai pasiekti dydžių matmenis, net jei visi gabalai buvo šiek tiek erzinantys! Mūsų tikslas buvo turėti visiškai veikiantį jutiklį, galintį išmatuoti aplinkos temperatūrą, ir aplink jį esantį apsauginį „CubeSat“.

1 žingsnis: Surinkite medžiagas/eskizuokite „CubeSat“

Medžiagų rinkimas/„CubeSat“eskizas
Medžiagų rinkimas/„CubeSat“eskizas
Medžiagų rinkimas/„CubeSat“eskizas
Medžiagų rinkimas/„CubeSat“eskizas

Pirmas dalykas, kurį norėsite padaryti, yra eskizuoti „CubeSat“. Prieš statydami turėsite įsivaizduoti, ką norite sukurti. Vienas iš aukščiau pateiktų vaizdų yra mūsų sukurti „CubeSat“eskizai. Toliau surinkite savo medžiagą. „CubeSat“, kurį kuriame, naudojame „Legos“. Pasirinkome „Lego“, nes juos lengva surinkti ir sudėti, tuo pačiu jie yra patvarūs ir gerai atliks reikiamas užduotis. Taigi, jums reikia įsigyti „Lego“. gaukite porą pločio pagrindo dalių, kurios yra 10 cm x 10 cm x 10 cm, arba kelias pagrindo dalis, kurias galima sujungti į 10 x 10 dalių. Savo „CubeSat“turėjome gauti kelis pagrindo gabalus ir sudėti juos, kad sudarytume 10 cm x 10 cm pagrindą. Taip pat turėsite įsigyti „Legos“, kad padarytumėte tokio paties dydžio stogo detalę. Gavę tuos „Lego“, turėsite gauti daugybę mažų „Lego“, kad pastatytumėte „CubeSat“sienas. Įsitikinkite, kad šie „Lego“yra gana liesi, kad jie neužimtų per daug „CubeSat“interjero.

2 žingsnis: sukurkite „Cubesat“

„Cubesat“statyba
„Cubesat“statyba
„Cubesat“statyba
„Cubesat“statyba
„Cubesat“statyba
„Cubesat“statyba

Pirma, mes sukūrėme šį 10x10x10 grožį. Prireikė daug įvairių dizainų. Iš pradžių mes turėjome lentyną viduryje, bet vėliau nusprendėme, kad to nereikia. Jei pasirinksite lentyną viduryje, rekomenduočiau tik vieną lentyną, nes turėsite ją išardyti kiekvieną kartą, kai įdėsite ir išimsite „Arduino“ir jutiklį. Pridėjome mažus langus, kad galėtume greitai pažvelgti į vidų, kai viršus uždarytas, kad matytume, kaip viskas veikia sklandžiai. Kad „CubeSat“būtų stabilesnis, apačioje sujungiame du „Lego“sluoksnius. Kuo stabilesnis, tuo geriau, nes šis „CubeSat“turės sugebėti išgyventi daugybę skirtingų kliūčių.

3 žingsnis: „Arduino“prijungimas ir kodavimas

„Arduino“prijungimas ir kodavimas
„Arduino“prijungimas ir kodavimas
„Arduino“prijungimas ir kodavimas
„Arduino“prijungimas ir kodavimas
„Arduino“prijungimas ir kodavimas
„Arduino“prijungimas ir kodavimas

Antrasis šio projekto žingsnis yra tas, kur jums reikės prijungti arduino. Šis žingsnis yra labai svarbus, nes jei tai nebus padaryta teisingai, kubas nesugebės nuskaityti temperatūros. Norėdami užbaigti arduino laidus, jums reikės tam tikrų medžiagų. Šios medžiagos yra baterija, arduino, SD kortelė, trumpieji laidai, duonos lenta, temperatūros jutiklis ir kompiuteris. Kompiuteris bus naudojamas patikrinti, ar laidai veikia tinkamai. Čia yra svetainė, kuri labai padėjo mums paaiškinti, kaip prijungti arduino:

create.arduino.cc/projecthub/TheGadgetBoy/…

Aukščiau pateiktos nuotraukos ir matymo schema taip pat gali jums padėti. „Arduino“kodavimas taip pat bus išbandytas kompiuteryje, kad pamatytumėte, ar jis veikia. Jei viskas veikia, arduino galima išimti iš kompiuterio ir jis yra paruoštas naudoti.

Kodas:

// Duomenų laidas prijungtas prie 2 „Arduino“prievado

#define ONE_WIRE_BUS 2

Failo jutiklisData;

// Nustatykite „OneWire“egzempliorių, kad galėtumėte bendrauti su bet kokiais „OneWire“įrenginiais (ne tik „Maxim“/„Dalaso“temperatūros IC)

„OneWire oneWire“(ONE_WIRE_BUS);

// Įtraukite mums reikalingas bibliotekas

#įtraukti

#įtraukti

#įtraukti

// Perduokite mūsų „OneWire“nuorodą į Dalaso temperatūrą.

Dalaso temperatūros jutikliai (& oneWire);

// masyvai įrenginio adresui laikyti

DeviceAddress insideTermmometer;

/*

* Sąrankos funkcija. Čia mes atliekame pagrindus

*/

negaliojanti sąranka (negalioja)

{

pinMode (10, OUTPUT);

SD. Pradžia (4);

// pradėti nuoseklųjį prievadą

Serial.begin (9600);

Serial.println („Dalaso temperatūros IC valdymo bibliotekos demonstracija“);

// surasti įrenginius magistralėje

Serial.print („Įrenginių vietos nustatymas …“);

jutikliai.pradėti ();

Serial.print („Rasta“);

Serial.print (sensors.getDeviceCount (), DEC);

Serial.println („įrenginiai“);

// pranešti apie parazitų galios reikalavimus

Serial.print ("Parazitų galia yra:");

if (sensors.isParasitePowerMode ()) Serial.println ("ĮJUNGTA");

else Serial.println ("IŠJUNGTA");

/*Priskirti adresą rankiniu būdu. Žemiau esantys adresai bus pakeisti

į galiojančius jūsų autobuso įrenginių adresus. Įrenginio adresą galima gauti

naudojant oneWire.search (deviceAddress) arba atskirai per

sensors.getAddress (deviceAddress, index) Atminkite, kad čia turėsite naudoti konkretų adresą

vidujeTermometras = {0x28, 0x1D, 0x39, 0x31, 0x2, 0x0, 0x0, 0xF0};

1 metodas:

Ieškokite įrenginių magistralėje ir priskirkite pagal indeksą. Idealiu atveju, tai padarytumėte, kad iš pradžių atrastumėte adresus autobuse, o paskui

naudoti tuos adresus ir rankiniu būdu priskirti juos (žr. aukščiau), kai tik sužinosite

jūsų autobuso įrenginius (ir darant prielaidą, kad jie nesikeičia).

*/ if (! sensors.getAddress (insideThermometer, 0)) Serial.println ("Nepavyko rasti 0 įrenginio adreso");

// 2 metodas: paieška ()

// search () ieško kito įrenginio. Grąžina 1, jei buvo naujas adresas

// grįžo. Nulis gali reikšti, kad magistralė yra sutrumpinta, nėra įrenginių, // arba jūs jau gavote juos visus. Tai gali būti gera idėja

// patikrinkite CRC, kad įsitikintumėte, jog negavote šiukšlių. Tvarka yra

// deterministinis. Visada gausite tuos pačius įrenginius ta pačia tvarka

//

// Prieš paiešką reikia paskambinti ()

//oneWire.reset_search ();

// priskiria pirmąjį rastą adresą vidujeTermometras

// if (! oneWire.search (insideThermometer)) Serial.println ("Nepavyko rasti insideTermmometer adreso");

// rodyti adresus, kuriuos radome autobuse

Serial.print ("Įrenginio 0 adresas:");

printAddress (vidujeTermometras);

Serial.println ();

// nustatykite skiriamąją gebą į 9 bitus (kiekvienas „Dallas/Maxim“įrenginys gali turėti kelias skirtingas rezoliucijas)

sensor.setResolution (vidujeTermometras, 9);

Serial.print („Įrenginio 0 rezoliucija:“);

Serial.print (sensor.getResolution (insideTermmometer), DEC);

Serial.println ();

}

// funkcija spausdinti įrenginio temperatūrą

void printTemperature (DeviceAddress deviceAddress)

{

// 1 metodas - lėčiau

//Serijinis.spaudas („C temperatūra“:);

//Serial.print(sensors.getTempC(deviceAddress));

//Serial.print ("Temp F:");

//Serial.print(sensors.getTempF(deviceAddress)); // Skambina antrą kartą „getTempC“ir konvertuoja į Fahrenheitą

// 2 metodas - greičiau

plūdės tempC = sensor.getTempC (deviceAddress);

jei (tempC == DEVICE_DISCONNECTED_C)

{

Serial.println ("Klaida: nepavyko nuskaityti temperatūros duomenų");

grįžti;

}

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)); // konvertuoja tempC į Fahrenheit

sensorData.println (tempC);

sensorData.close ();

}

}

/*

* Pagrindinė funkcija. Jis paprašys tempC iš jutiklių ir rodys serijinį.

*/

tuštumos kilpa (tuštuma)

{

// paskambinkite sensorams.requestTemperatures (), kad išleistumėte pasaulinę temperatūrą

// prašymas visiems magistralės įrenginiams

Serial.print („Prašoma temperatūra…“);

sensor.requestTemperatures (); // Siųskite komandą temperatūrai gauti

Serial.println („ATLIKTA“);

// Jis reaguoja beveik iš karto. Atspausdinkime duomenis

printTemperature (vidujeTermometras); // Norėdami išspausdinti duomenis, naudokite paprastą funkciją

}

// funkcija spausdinti įrenginio adresą

void printAddress (DeviceAddress deviceAddress)

{

(uint8_t i = 0; i <8; i ++)

{

if (deviceAddress <16) Serial.print ("0");

Serial.print (deviceAddress , HEX);

}

}

Atsakyti Pirmyn

4 žingsnis: patikrinkite „Cubesat“

„Cubesat“patikrinimas
„Cubesat“patikrinimas
„Cubesat“patikrinimas
„Cubesat“patikrinimas

Dabar, kai „Arduino“„CubeSat“, kodas ir laidai yra baigti, netrukus atliksite testus. Jei šie bandymai nepavyks, jūsų „CubeSat“kartu su „Arduino“gali būti visiškai sunaikinti. Todėl norėsite įsitikinti, kad „Arduino“yra tam pasirengęs. Būtent čia reikia atlikti šį žingsnį, tikrinant „CubeSat“. Pirmiausia turėsite saugiai įdėti „Arduino“į „CubeSat“ir įsitikinti, kad jis nesvyruos. Tada turėsite įsitikinti, kad visos „CubeSat“dalys yra saugiai pritvirtintos. Negali būti jokių palaidų dalių, kitaip bandymų metu „CubeSat“greičiausiai suskaidys. Jei tvirtai patikrinsite „CubeSat“, jo testus reikia lengvai išlaikyti.

5 veiksmas: „CubeSat“susiejimas

„CubeSat“įrašymas
„CubeSat“įrašymas

Šis žingsnis bus pasirengimas pirmajam „CubeSat“bandymui. Bandymo metu „CubeSat“greitu tempu ratu pasuks 30 sekundžių. Turite įsitikinti, kad „CubeSat“yra tvirtai suveržtas, kad nenukristų. Mes visiškai surišome 2 stygas aplink „CubeSat“ir tvirtai surišome. Tada pridėjome dar vieną ilgą eilutę, susietą aplink pirmuosius du. Mes kelis kartus sujungėme šią virvę viršuje ir apačioje, kad ji būtų kiek įmanoma tvirtesnė. Tai gali užtrukti kelis kartus, nes norite, kad styga būtų tobula, kad ji skrydžio metu neatsiliktų.

6 žingsnis: pasukimo testas

Sūpynių testas
Sūpynių testas

Kad šiame etape būtų saugu, būtinai dėvėkite akinius, kad apsaugotumėte akis. Šiame etape jūs atliksite „CubeSat“testą, kad pamatytumėte, ar jis pakankamai gerai apsaugo „Arduino“, kad jis galėtų atlikti savo užduotį (rasti temperatūrą). Pirmasis testas yra tas, kuriam reikia eilutės. Šiame bandyme „Arduino“bus pasuktas (kaip parodyta paveikslėlyje/vaizdo įraše aukščiau)- (kartais vaizdo įrašui kyla problemų įkeliant). Marso modelis gali būti dedamas viduryje. Kad sėkmingai atliktų šį testą, „Arduino“turės suktis, neatsirišęs, todėl jį reikia gerai suveržti, o pasibaigus bandymui „Arduino“turės visiškai veikti. Štai kodėl turite įsitikinti, kad „Arduino“yra gerai pritvirtintas „CubeSat“.

7 žingsnis: išbandykite #2 purtymo testą

2 bandymas- purtymo testas
2 bandymas- purtymo testas

Šiame žingsnyje jūsų „CubeSat“atliks 2 testą. Šis bandymas yra drebėjimo testas. Atliekant šį bandymą, „CubeSat“bus įdėtas į laikiklį, kaip parodyta paveikslėlyje/vaizdo įraše (kartais vaizdo įrašui kyla problemų įkeliant), ir bus stipriai purtomas pirmyn ir atgal 30 sekundžių. Kad išlaikytumėte šį testą, „CubeSat“ir „Arduino“po sukratymo vis tiek turės veikti visiškai.

8 veiksmas: rezultatai/baigta temperatūra „CubeSat“

Rezultatai/Užbaigta temperatūra CubeSat
Rezultatai/Užbaigta temperatūra CubeSat
Rezultatai/Užbaigta temperatūra CubeSat
Rezultatai/Užbaigta temperatūra CubeSat
Rezultatai/Užbaigta temperatūra CubeSat
Rezultatai/Užbaigta temperatūra CubeSat

Galų gale mūsų „CubeSat“sugebėjo sėkmingai užregistruoti temperatūrą, atlikdamas kiekvieną bandymą. Kiekvieno bandymo metu duomenys nuolat rodomi 26–30 laipsnių Celsijaus. Tai yra tas pats kaip 78–86 laipsnių pagal Celsijų. Tačiau pakeliui susidūrėme su kai kuriomis problemomis. Pavyzdžiui, kelis kartus arduino kodavimas neveikė ir rodė 126 laipsnius Celsijaus. Norint pasiekti reikiamą temperatūrą, prireikė kelių bandymų. Keletas patarimų, kuriuos duočiau visiems, atliekantiems šį projektą, būtų išbandyti kelis kodo ir laidų variantus ir įsitikinti, ar jūsų arduino tvirtai priglunda prie „CubeSat“. Jums gali tekti sugriežtinti tarpą „CubeSat“viduje, kad įsitikintumėte, jog arduino puikiai tinka viduje. Turėjome tam tikrų problemų dėl to, kad arduino buvo per daug laisvas „CubeSat“.

Šiame projekte taip pat turėsite pritaikyti savo fizikos žinias. Viso projekto metu reikės taikyti fizikos žinias apie technologijas, energiją ir jėgą. Viso projekto metu mes sužinojome daugiau apie saulės sistemą ir naujas technologijas, tokias kaip „CubeSats“. Mes taip pat sužinojome apie gravitacinę jėgą ir kaip ši jėga gali paveikti „CubeSat“. Viena labai svarbi šio projekto tema buvo palydovo judėjimas. Mes sužinojome apie palydovo judėjimą naudodami greitį, grynąją jėgą ir gravitaciją. Tai padėtų mums rasti palydovų sviedinius.

Kai jūsų „CubeSat“ir „arduino“sėkmingai išlaikys testus ir veiks tinkamai, baigsite. Jūsų „CubeSat“turėtų sugebėti išgyventi Marso atmosferą. Įsitikinkite, kad jutiklis taip pat sėkmingai užfiksavo temperatūrą bandymų metu. Jūsų „CubeSat“paruoštas skristi į kosmosą!

Rekomenduojamas: