Vesiraketti projekti

Paineilmalla ja vedellä toimivat raketit. Ilman ruutiakin saa aikaan vauhtia ja vaarallisia tilanteita. Näihin et tarvitse lupia, mutta älä jätä aivoja narikkaan!
tt
Site Admin
Posts: 635
Joined: 20 January 2003 16:09:08
Nimi: Timo Toivanen
Location: Espoo

Re: Vesiraketti projekti

Post by tt » 04 October 2010 17:02:32

Sampo tuossa jo aloittikin, mutta jatketaan...
Arduino on tosiaan näppärä tapa tutustua mikrokontrollereiden maailmaan. Hankalimmat matalan tason toiminnot on kätketty kattavien kirjastojen alle ilman että koko systeemiä olisi rampautettu. Datan tallentamiseen tarvitset tosiaan jonkin ratkaisun. ATMega-prosessorissa itsessään on 512 tavua EEPROM-muistia, mutta se loppuu kesken heti kättelyssä. Koodimuistia tuossa vanhemmassa nanossa on 16 kilotavua, josta ylijäävää osuutta voi ehkä käyttää (en suoralta kädeltä muista onko tämä mahdollista arduinolla), mutta se on aika hankalaa. Sekin loppuu aika nopeasti kesken. Käytännössä loggeri tarvitsee ulkoista muistia ja siihen on loputtomasti ratkaisuja. Kaikkein helpoimmalla pääset kun hankit jonkin valmiin loggerimokkulan. Esimerkiksi tämän:
http://www.sparkfun.com/commerce/produc ... ts_id=9530
(Micro)SD-kortin käsittely on itse asiassa sangen helppoa ja FAT-kirjastoja saa valmiina, joten kortin voi laittaa suoraan kiinni arduinon SPI-väylään ja hoitaa tuon mokkulan toiminnot itse. Lisäetuna muistikortin käyttämisessä on se, että tiedot on helppo siirtää tietokoneelle. Dataa voi toki kirjoittaa kortille suoraan välittämättä tiedostojärjestelmistä, mutta silloin datan luku on hankalampaa.
Toinen vaihtoehto on käyttää erillisiä muistipiirejä, joita löytyy mm. EEPROM ja Flash-tyyppisinä. EEPROM on helpompaa käsitellä, mutta hitaampaa. Tosin hitaus tuskin tulee tässä ongelmaksi. EEPROMia voi käsitellä suoraan tavu kerrallaan sen ihmeemmin murehtimatta, mutta Flashien kanssa pitää muistaa että niitä voi tyhjentää vain sektori kerrallaan. Sektorien koko vaihtelee ja voi olla vaikkapa 1 kilotavu. EEPROMeja on saatavilla noin yhden megabitin kokoon asti ja Flasheja ties kuinka suuria. Piirit ovat yleensä joko SPI tai I2C (tunnetaan myös TWI - two wire interface nimellä) liitäntäisiä ja molemmille löytyy tuki arduinosta. SPI on vähän helpompi käyttää, mutta I2C on monipuolisempi. Isommissa muisteissa on yleensä SPI-liitäntä. Makuasia...
Muistipiiriä käytettäessä tarvitset arduinoon erillisen softapätkän jolla saat dumpattua datan ulos muistipiiriltä tietokoneelle.
Piirejä löytyy monilta valmistajilta, eivät maksa paljoa ja useimmat lähettävät ystävällisesti näytekappaleita myös harrastajille. Tässä muutama esimerkki Atmelin valikoimista:
http://www.atmel.com/dyn/products/produ ... rt_id=4075 (1MBit I2C-liitäntäinen EEPROM)
http://www.atmel.com/dyn/products/produ ... rt_id=4069 (512kbit SPI-liitäntäinen EEPROM)
http://www.atmel.com/dyn/products/produ ... rt_id=4920 (64Mbit SPI-Flash)
Mitä hienompi piiri on kyseessä, sitä epätodennäköisempää on että sitä saisi läpijuotettavana versiona, joten varaudu juottelemaan pintaliitososia...
Kannattaa vähän laskeskella etukäteen kuinka suuren muistin tarvitset. Jos vaikka loggaat 10ms välein eli 100 kertaa sekunnissa yhtä kanavaa täydellä resoluutiolla (arduinon muunnin on 10bit, eli käytännössä joka näytteelle pitää varata 2 tavua eli 16 bittiä) niin muistia kuluu 200 tavua sekunnissa.

Kuten sampo totesikin, niin mainitsemasi kiihtyvyysanturin 6g mittausalue loppuu herkästi kesken varsinkin vesirakettien kanssa. Kannattaa valita anturi, joka pystyy vähintään 50g mittaamiseen. Raketissa tapahtumat sijoittuvat yhdelle akselille eikä täydellisellä lennolla muilla akseleilla pitäisi näkyä mitään. Maailma ei kuitenkaan ole täydellinen, joten siinä mielessä kaikkien kolmen akselin loggaus voi olla ihan mielenkiintoista. Kiihtyvyysantureita saa sekä analogisina että digitaalisina (yleensä SPI-liitännällä)
http://www.robomaa.com/index.php?main_p ... cts_id=439 Tästä ei ainakaan lopu mittausalue kesken.

Loggereita saa myös valmiina. Törmäsin Sparkfunin luettelossa tämmöiseen mielenkiintoiseen laitteeseen:
http://www.sparkfun.com/commerce/produc ... ts_id=9228
Ovat näemmä käyttäneet tuota raketin kanssa.

Sparkfun lähettää tavaroita Suomeen, mutta maksamiseen tarvitset luottokortin. Robomaalla näyttää olevan valikoimissa paljon heidän tuotteitaan, joten kauniisti pyytämällä he saattaisivat välittää muitakin tuotteita.

Tässä hetkeksi pureskeltavaa :) Kysy toki lisää.
“Scientists dream about doing great things. Engineers do them.”
- James A. Michener

Pietari
Posts: 39
Joined: 30 January 2010 20:27:16

Re: Vesiraketti projekti

Post by Pietari » 04 October 2010 23:20:26

Mikrokontrollit on tullut tutuksi, kun olen leikkinyt picaxe piireillä noin puolisen vuotta. Kysyin vajaa viikko sitten Paeaelta että voikko he tilata sparkfunnilta tuotteita ja toimitaa ne sitten suomessa asuvalle tilaajalle, he vastasivat että se onnistuu. Multa löytyy jo jonkin moinen muistipiiri jossa on muistia 32 Kb: http://www.kouluelektroniikka.fi/cgi-bi ... did=24LC32 Tuossa ei ole paljoa muistia mutta toimii sarja muotoisesti. Minkä lainen ohjelman tarvitsee antureiden tiedon lukemiseen? Osaa tehä ainakin pieniä ohjelmia visual basic ohjelmalla.

tt
Site Admin
Posts: 635
Joined: 20 January 2003 16:09:08
Nimi: Timo Toivanen
Location: Espoo

Re: Vesiraketti projekti

Post by tt » 05 October 2010 10:13:34

Tuolla piirillä pääsee ihan hyvin alkuun.
Dataloggerin softa tehdään yleensä niin, että ajastinkeskeytys ohjelmoidaan laukeamaan halutulla näytteenottotaajuudella, vaikkapa 100 kertaa sekunnissa. Ajastimen keskeytyskäsittelijä käynnistää varsinaisen mittauskoodin, joka lukee mittausarvon anturilta ja tallentaa sen muistipiirille seuraavaan vapaaseen osoitteeseen. Alkuun pääsee helpommin kun ajaa tuota mittaus- ja tallennussykliä loopissa ilman keskeytyksiä tarvittaessa viivekomennolla hidastettuna, mutta silloin ei pysty säätämään näytteenottotaajuutta yhtä luotettavasti.
Itse anturin luku riippuu sitten anturin tyypistä. Analogista anturia luetaan prossun AD-muuntimen avulla kun taas digitaalisen kanssa keskustellaan SPI/I2C-väylän yli. Piirin datalehti kertoo mittaukseen tarvittavat komennot.
“Scientists dream about doing great things. Engineers do them.”
- James A. Michener

Pietari
Posts: 39
Joined: 30 January 2010 20:27:16

Re: Vesiraketti projekti

Post by Pietari » 05 October 2010 15:18:44

Tarkoitin lähinnä tuolla ohjelmaa mikä toimii tietokoneessa ja lukee dataloggerin tallennukset.

User avatar
sampo
Site Admin
Posts: 441
Joined: 20 January 2003 12:31:32
Nimi: Sampo Niskanen
Location: Espoo
Contact:

Re: Vesiraketti projekti

Post by sampo » 05 October 2010 17:28:44

PC-puolen ohjelma riippuu siitä miten ja mihin data on tallennettu. Jos sen tallentaa muistikortille FAT-muodossa, voi datan lukea normaalilla kortinlukijalla (ja tarvitsee vain ohjelman tulkitsemaan dataa). Jos se taas on muistipiirille tallennettu niin mikrokontrolleriin täytyy ohjelmoida koodia joka lähettää datat tietokoneelle ja tietokoneessa jokin tapa vastaanottaa data. Esimerkiksi Arduinossa tämä käy kätevästi USB-sarjaportin kautta. Tietokoneelle pitää joko tehdä oma ohjelma vastaanottoa varten, tai voi käyttää jotain normaalia terminaaliohjelmaa jolla pystyy lähettämään datanlähetyskomennen mikrokontrollerille sekä tallentamaan sen lähettämä data.

Itse olen käyttänyt jälkimmäistä lähestymistapaa Iso-Haisun ohjaus-/logitustietokoneen yhteydessä, ja toteuttanut lähetyksen ja vastaanotto-ohjelman itse. Voin tarvittaessa jakaa näitä koodeja sinunkin kanssasi. (Mikrokontrolleri on ohjelmoitu Arduinon C-variantilla, vastaanottava ohjelma tietokoneella on Javaa.)

Mikäli haluaa vain pienen määrän dataa ulos (esimerkiksi maksimilentokorkeuden) niin yksi vaihtoehto on vilkuttaa se Arduinoissakin kiinni olevalla ledillä (esim. yksi välähdys = 1, kaksi välähdystä = 2 jne). Monet kaupalliset korkeusmittarit tekevät näin ja se on helppo lukea suoraan "kentällä". Tämä ei tietenkään poissulje tietokoneliitäntää kaiken datan vastaanottoa varten.
I doubt, therefore I may be.

Pietari
Posts: 39
Joined: 30 January 2010 20:27:16

Re: Vesiraketti projekti

Post by Pietari » 05 October 2010 22:22:50

Onnistuisiko tuon loggeri tekeminen picaxe piirillä? Picaxessa ei taida kuitenkaan riittää nopeus loggaamaan tarpeeksi monta kertaa sekunnissa. Picaxelle löyttyy valmis data loggeri lämpö- ja valoantureille: http://www.rev-ed.co.uk/docs/axe110_i2c.pdf Jos voi tehä picaxe piirillä niin tuosta löytyisi valmis kytkentä kaavio mitä vähän soveltaisi.

tt
Site Admin
Posts: 635
Joined: 20 January 2003 16:09:08
Nimi: Timo Toivanen
Location: Espoo

Re: Vesiraketti projekti

Post by tt » 06 October 2010 11:56:30

Jos sinulla on picaxe käytössä niin kokeile. Tee ohjelma joka lukee yhtä AD-kanavaa ja tallentaa sitä muistipiirille sekä vilkuttaa lediä vaikka sadan mittaussyklin välein. Tuolla tavalla näkee miten nopeasti piiri pystyy samplaamaan.
“Scientists dream about doing great things. Engineers do them.”
- James A. Michener

Post Reply