Sukellusvenesimulaattori

5Wiki
Versioiden väliset erot
Loikkaa: valikkoon, hakuun
(Softa)
(Näytettyjen versioiden välissä on 8 versiota, jotka ovat 3 eri käyttäjän tekemiä.)
Rivi 1: Rivi 1:
== Sukellusvenesimulaattori (nimi vielä keksimättä) ==
+
{{Projekti
 +
| nimi = Vesikko
 +
| logo =  
 +
| tyyppi = peli, simulaattori
 +
| tekijät = [[Mokis]] [[cos^]]
 +
| aloitettu = 2011/10
 +
| tila = Käynnissä
 +
}}
  
cos^ on hautonut pitkään ideaa monen pelaajan co-op sukellusvenesimulaattorista.
+
== Sukellusvenesimulaattori "Vesikko" ==
Idea olisi hyvin samankaltainen kuin [http://artemis.eochu.com/ Artemis Starship Bridge simulator] mutta WW2 sukellusveneelle.
+
  
Projekti on aika iso joten apuja kaivataan. Kiinnostuneita on ollut onneksi monta. Simulaattorin voisi rakentaa
+
Rakennamme 2. maailmansotaan sijoittuvan sukellusvenesimulaattorin. Idea olisi hyvin samankaltainen kuin
Tampereen Hackerspacen tiloissa keskustassa. Jos homma kiinnostaa, ilmoittaudu tähän. Sivua voit editoida
+
[http://artemis.eochu.com/ Artemis Starship Bridge simulator] mutta WW2 sukellusveneelle.
rekisteröitymällä wikiin tai OpenID-tunnuksilla. Jos OpenID-tunnus puuttuu niin kannattaa hankkia, käyvät muuallekkin.
+
  
Kiinnostuneet:
+
Simulaattoria rakennetaan Tampereen Hackerspacen tiloissa keskustassa. Jos homma kiinnostaa, ilmoittaudu tähän. Sivua voit editoida
  * cos^
+
rekisteröitymällä wikiin tai OpenID-tunnuksilla. Jos OpenID-tunnus puuttuu niin kannattaa hankkia, käyvät muuallekkin.
  * mokis
+
  
 +
http://i.imgur.com/7f9Lm.png
  
 
=== Perusidea ===
 
=== Perusidea ===
Rivi 20: Rivi 25:
 
   * Vihollisina laivasaattue jota puolustaa pintahävittäjät. Pelaajan tulee tuhota laivasaattue mutta samalla pysyä hiljaa ja piileksiä hävittäjiltä. Säädettävä vaikeustaso.
 
   * Vihollisina laivasaattue jota puolustaa pintahävittäjät. Pelaajan tulee tuhota laivasaattue mutta samalla pysyä hiljaa ja piileksiä hävittäjiltä. Säädettävä vaikeustaso.
 
   * KISS, ei aleta vielä visioimaan verkkomoninpeliä tai muita ei-vättämättömiä ominaisuuksia.
 
   * KISS, ei aleta vielä visioimaan verkkomoninpeliä tai muita ei-vättämättömiä ominaisuuksia.
 +
 +
[http://www.flickr.com/photos/10055414@N02/ Valokuvia aidosta Vesikosta]
  
 
=== Työpisteet ===
 
=== Työpisteet ===
Rivi 30: Rivi 37:
  
 
Fyysinen UI: Ruori, syvyysohjain(millanen?), moottorille kaasuvipu.
 
Fyysinen UI: Ruori, syvyysohjain(millanen?), moottorille kaasuvipu.
Näytöt: Karttanäyttö, kompassi, nopeus, syvyys, moottorin tila jne
+
Näytöt: Karttanäyttö, kompassi, nopeus, syvyys, moottorin tila jne.
 +
 
 +
Ohjainten lukeminen onnistunee parhaiten potikoilla ja USB-joystickeina.
  
 
==== Periskooppi ====
 
==== Periskooppi ====
Rivi 42: Rivi 51:
  
 
Fyysinen UI: katosta laskettava skooppi jossa yksi silmänreikä. skooppia voi pyöritellä 360 astetta ja näkymä
 
Fyysinen UI: katosta laskettava skooppi jossa yksi silmänreikä. skooppia voi pyöritellä 360 astetta ja näkymä
muuttuu sen mukaan. skoopin sisään läppäri tai pieni näyttö, pyöritys esim optinen enkooderi ja arduino.
+
muuttuu sen mukaan. Skoopin sisään läppäri tai pieni näyttö. Pyörityksen lukuun rotary ja Arduino. Lisäksi
Jonkinlainen optiikka jolla saadaan kuva näyttämään oikealta.
+
suurennoksen voi valita, vaihtoehtoina 8 tai 32 astetta näkökenttää.  
  
Näytöt: 3d-näkymä merelle ja kompassi.
+
Tähtäimenä on 55S55-singon tähtäinkaukoputki. Sen terävän kuvan etäisyys on vähän liian kaukana, joten
 +
sitä joudumme hieman modaamaan.
 +
 
 +
Näytöt: 3d-näkymä merelle ja kompassi. Laivaa tähdätessä Lisätietoja mm. kohteen etäisyys, nopeus ja ennakkokulma.
 +
 
 +
Mokiksen rotaryjen tarkkuus 1024 pulssia / 360 astetta. Tämä ei riitä.
 +
 
 +
Oletetaan, että näytön vaakaresoluutio on 1360 pikseliä ja halutaan yhden pikselin tarkkuus asentoon.
 +
8 asteen näkökentällä 360 astetta on 61470 vaakapikseliä. Tämä tekisi 60 pikselin "askelmat" jos
 +
rotaryn kytkee suoraan akselin.
 +
 
 +
Tarvitaan siis jonkinlainen välitys rotaryn ja periskoopin askelien välille. Mitä suurempi välitys, sitä
 +
tarkempi on vaakasuuntaus. Suuntausta voi hiukan interpoloida softalla.
 +
 
 +
Jos hyväksytään tarkkuudeksi esim 10 pikseliä, riittää 6147 pulssia/360 astetta. Tämä olisi noin 1:6 välitys.
 +
Järkevää välitystä pitänee miettiä ja protoilla. Suora 1:1 ei ole vaihtoehto.
 +
 
 +
[http://dl.dropbox.com/u/119475/scope.png Namochanin ehdotus rakenteelle.] Kuvassa olevat encoder levyt eivät
 +
pääse lähellekkään haluttua tarkkuutta, joten ne voi jättää huomiotta.
  
 
==== Hydrofoni ====
 
==== Hydrofoni ====
Rivi 58: Rivi 85:
  
 
Näytöt: kompassikehä. Mahdollisesti automaattinen etäisyyden ja laivan tyypin tunnistus helpottamaan.
 
Näytöt: kompassikehä. Mahdollisesti automaattinen etäisyyden ja laivan tyypin tunnistus helpottamaan.
 +
 +
Hydrofonin veivin lukuun voisi olla myös rotary hyvä. Tällä kertaa tarkkuudella ei ole väliä
 +
(yksi veivin kierros ei ole 360 astetta) joten mitään välityskikkoja ei tarvita.
  
 
==== Aseupseeri ====
 
==== Aseupseeri ====
Rivi 64: Rivi 94:
 
kulkevat. Torpedot ladataan putkiin (2 kpl). Putkien luukut pitää avata ennen ampumista. Avauksesta
 
kulkevat. Torpedot ladataan putkiin (2 kpl). Putkien luukut pitää avata ennen ampumista. Avauksesta
 
kuuluu ääni ja luukut auki vene kulkee hitaampaa ja metelöi.
 
kuuluu ääni ja luukut auki vene kulkee hitaampaa ja metelöi.
 +
 +
Lisäksi aseupseerin pitää (ainakin vaikeammalla vaikeustasolla) asettaa TDC:hen (Torpedo Data
 +
Computer)iin periskoopista saatavat kohteen suunta, nopeus ja etäisyys jolla saadaan oikea
 +
ennakkokulma.
  
 
Fyysinen UI: Kosketusnäyttö, ehkä laukasunappeja ja fyysisiä näyttöjä sikäli kun keksitään.
 
Fyysinen UI: Kosketusnäyttö, ehkä laukasunappeja ja fyysisiä näyttöjä sikäli kun keksitään.
  
Näytöt: Putkien tila, torpedojen määrä, luukkujen tila, veneen vauriot.
+
Näytöt: Putkien tila, torpedojen määrä, luukkujen tila, veneen vauriot, TDC.
 +
 
 +
UI:n fyysisten osien luku onnistunee parahaiten USB joystickinä.
  
 
==== Tilannekuva ====
 
==== Tilannekuva ====
Rivi 81: Rivi 117:
  
 
Olen kaavaillut, että joka työpiste pyörii omalla PC:llään tai ainakin eri prosessissa. Yksi prosessi
 
Olen kaavaillut, että joka työpiste pyörii omalla PC:llään tai ainakin eri prosessissa. Yksi prosessi
(todnäk navigaattorin) pyörittää simulaatiota ja lähettää muille prosesseille tarvittavat
+
(periskooppi) pyörittää simulaatiota ja lähettää muille prosesseille tarvittavat tiedot verkon yli.  
tiedot verkon yli. Hajautukseen katsotaan jokin sopiva kirjasto.
+
 
Softa koodataan C++-kielellä Qt:lla. UI:t tehdään QML:llä. Periskooppinäkymä tehdään jollain sopivalla
+
Softa koodataan C++-kielellä Qt:lla. UI:t tehdään QML:llä. Periskooppinäkymä tehdään OpenSceneGraphilla
3D-kirjastolla (esim Ogre).
+
käyttäen osgOcean-kirjastoa meren piirtämiseen.
 +
 
 
Käyttiksenä Linux, mutta koodista tehdään toki alustariippumaton.
 
Käyttiksenä Linux, mutta koodista tehdään toki alustariippumaton.
  
 
Sorsat GitHubissa: https://github.com/vranki/Vesikko
 
Sorsat GitHubissa: https://github.com/vranki/Vesikko
  
== Elektroniikka ==
+
== TODO ==
 +
 
 +
=== Softa ===
 +
 
 +
cos^ hoitaa. Vapaaehtoiset C++/QML-devaajat voivat ilmoittautua.
 +
 
 +
=== Periskoopin rakentaminen ===
 +
 
 +
mokis tilannut rotaryja sämppeleinä. Muovinen putki on jo jota voidaan käyttää.
 +
 
 +
Seuraavana:
 +
  * Tähtäinkaukoputken sovitus putkeen
 +
  * Putken sovitus alustaan
 +
  * Rotarymekanismin rakentaminen
 +
 
 +
=== Navigaattorin aseman rakentaminen ===
  
Tarvitaan ainakin 360 asteen pyörimisanturit (kompassiin ja hydrofonille). Luku onnistuu Arduinolla, ks. http://www.arduino.cc/playground/Main/RotaryEncoders
+
Ota mitat ja tee.
  
Sekalaisia nappeja ja vipuja varten USB-joystick-kortit tai puretut joystickit lienevät helpoin vaihtoehto. Arduinojakin saa käyttää.
+
[[Luokka:Projektit]]

Versio 23. elokuuta 2012 kello 15.32


Vesikko
Aloitettu: 2011/10
Tyyppi: peli, simulaattori
Tekijät: Mokis cos^
Tila Käynnissä


Sisällysluettelo

Sukellusvenesimulaattori "Vesikko"

Rakennamme 2. maailmansotaan sijoittuvan sukellusvenesimulaattorin. Idea olisi hyvin samankaltainen kuin Artemis Starship Bridge simulator mutta WW2 sukellusveneelle.

Simulaattoria rakennetaan Tampereen Hackerspacen tiloissa keskustassa. Jos homma kiinnostaa, ilmoittaudu tähän. Sivua voit editoida rekisteröitymällä wikiin tai OpenID-tunnuksilla. Jos OpenID-tunnus puuttuu niin kannattaa hankkia, käyvät muuallekkin.

http://i.imgur.com/7f9Lm.png

Perusidea

 * Monta ihmispelaajaa (esim 2-4) joille on jaettu tehtävät.
 * Fyysinen simulaattori, jossa näkyy tietokoneita mahdollisimman vähän (toisin kuin Artemis jossa pelataan läppäreillä)
 * Niin helppo, että tehtävät oppii nopeasti. Simulaation taso luokkaa Silent Service
 * Vihollisina laivasaattue jota puolustaa pintahävittäjät. Pelaajan tulee tuhota laivasaattue mutta samalla pysyä hiljaa ja piileksiä hävittäjiltä. Säädettävä vaikeustaso.
 * KISS, ei aleta vielä visioimaan verkkomoninpeliä tai muita ei-vättämättömiä ominaisuuksia.

Valokuvia aidosta Vesikosta

Työpisteet

Ruori / Navigaattori

http://www.williammaloney.com/Aviation/USSAlbacore/SubmarineHelm.jpg

Ohjaa sukeellusvenettä sivu- ja syvyyssuunnassa ja hoitaa moottoria.

Fyysinen UI: Ruori, syvyysohjain(millanen?), moottorille kaasuvipu. Näytöt: Karttanäyttö, kompassi, nopeus, syvyys, moottorin tila jne.

Ohjainten lukeminen onnistunee parhaiten potikoilla ja USB-joystickeina.

Periskooppi

http://ahoy.tk-jk.net/ImagesSep9_2007/AtPeriscopeUSSubmarineWW2.jpg

Periskoopista näkee ulos. Skoopin voi nostaa ja laskea (skooppi ylhäällä vene kulkee hitaammin ja aiheuttaa melua). Luonnollisesti skoopista ei näy mitään jos vene on liian syvällä. Vihollisalukset voivat nähdä skoopin jos sitä käyttää liian lähellä. Skooppia käyttää veneen kapteeni.

Fyysinen UI: katosta laskettava skooppi jossa yksi silmänreikä. skooppia voi pyöritellä 360 astetta ja näkymä muuttuu sen mukaan. Skoopin sisään läppäri tai pieni näyttö. Pyörityksen lukuun rotary ja Arduino. Lisäksi suurennoksen voi valita, vaihtoehtoina 8 tai 32 astetta näkökenttää.

Tähtäimenä on 55S55-singon tähtäinkaukoputki. Sen terävän kuvan etäisyys on vähän liian kaukana, joten sitä joudumme hieman modaamaan.

Näytöt: 3d-näkymä merelle ja kompassi. Laivaa tähdätessä Lisätietoja mm. kohteen etäisyys, nopeus ja ennakkokulma.

Mokiksen rotaryjen tarkkuus 1024 pulssia / 360 astetta. Tämä ei riitä.

Oletetaan, että näytön vaakaresoluutio on 1360 pikseliä ja halutaan yhden pikselin tarkkuus asentoon. 8 asteen näkökentällä 360 astetta on 61470 vaakapikseliä. Tämä tekisi 60 pikselin "askelmat" jos rotaryn kytkee suoraan akselin.

Tarvitaan siis jonkinlainen välitys rotaryn ja periskoopin askelien välille. Mitä suurempi välitys, sitä tarkempi on vaakasuuntaus. Suuntausta voi hiukan interpoloida softalla.

Jos hyväksytään tarkkuudeksi esim 10 pikseliä, riittää 6147 pulssia/360 astetta. Tämä olisi noin 1:6 välitys. Järkevää välitystä pitänee miettiä ja protoilla. Suora 1:1 ei ole vaihtoehto.

Namochanin ehdotus rakenteelle. Kuvassa olevat encoder levyt eivät pääse lähellekkään haluttua tarkkuutta, joten ne voi jättää huomiotta.

Hydrofoni

http://t3.gstatic.com/images?q=tbn:ANd9GcScCncjzQn5qVxU8ywbmx4LLFS-BGrFrQL5uxfteCOhjx_-PV_kCzmJzSpu

Hydrofoni on vedenalainen suuntamikrofoni, jolla voi sukelluksissa kuunnella missä suunnassa on laivoja yms. Hydrofonia voi pyörittää 360 astetta.

Fyysinen UI: hydrofonin suuntaa esittävä kompassikehä ja "ratti" jolla sitä voi pyöritellä. Aluksi riittänee näytöllä oleva virtuaalinen kompassikehä mutta fyysinen olisi hieno. Kuulokkeet joista kuuluu äänet.

Näytöt: kompassikehä. Mahdollisesti automaattinen etäisyyden ja laivan tyypin tunnistus helpottamaan.

Hydrofonin veivin lukuun voisi olla myös rotary hyvä. Tällä kertaa tarkkuudella ei ole väliä (yksi veivin kierros ei ole 360 astetta) joten mitään välityskikkoja ei tarvita.

Aseupseeri

Hoitaaa torpedojen ammuskelun ja näkee veneen vauriot. Torpedoille voi ohjelmoida suunnan, johon kulkevat. Torpedot ladataan putkiin (2 kpl). Putkien luukut pitää avata ennen ampumista. Avauksesta kuuluu ääni ja luukut auki vene kulkee hitaampaa ja metelöi.

Lisäksi aseupseerin pitää (ainakin vaikeammalla vaikeustasolla) asettaa TDC:hen (Torpedo Data Computer)iin periskoopista saatavat kohteen suunta, nopeus ja etäisyys jolla saadaan oikea ennakkokulma.

Fyysinen UI: Kosketusnäyttö, ehkä laukasunappeja ja fyysisiä näyttöjä sikäli kun keksitään.

Näytöt: Putkien tila, torpedojen määrä, luukkujen tila, veneen vauriot, TDC.

UI:n fyysisten osien luku onnistunee parahaiten USB joystickinä.

Tilannekuva

Tilannekuva näkyy koko miehistölle ja voisi olla esim. valkokankaalla tai isolla näytöllä. Näytössä näkyisi karttakuva (kuten navigaattorilla) ja vihollisalusten sijainnit (jos hydrofoni on ne kuullut tai skoopista nähty). Tällä näytöllä näkyviä tietoja voisi pelaajien tason mukaan säätää ja realismia hakevilla pelaajilla näyttö olisi kokonaan pois päältä.

Fyysinen UI: ei mitään.

Softa

Olen kaavaillut, että joka työpiste pyörii omalla PC:llään tai ainakin eri prosessissa. Yksi prosessi (periskooppi) pyörittää simulaatiota ja lähettää muille prosesseille tarvittavat tiedot verkon yli.

Softa koodataan C++-kielellä Qt:lla. UI:t tehdään QML:llä. Periskooppinäkymä tehdään OpenSceneGraphilla käyttäen osgOcean-kirjastoa meren piirtämiseen.

Käyttiksenä Linux, mutta koodista tehdään toki alustariippumaton.

Sorsat GitHubissa: https://github.com/vranki/Vesikko

TODO

Softa

cos^ hoitaa. Vapaaehtoiset C++/QML-devaajat voivat ilmoittautua.

Periskoopin rakentaminen

mokis tilannut rotaryja sämppeleinä. Muovinen putki on jo jota voidaan käyttää.

Seuraavana:

 * Tähtäinkaukoputken sovitus putkeen
 * Putken sovitus alustaan
 * Rotarymekanismin rakentaminen

Navigaattorin aseman rakentaminen

Ota mitat ja tee.

Henkilökohtaiset työkalut
Nimiavaruudet

Kirjoitusjärjestelmät
Toiminnot
Valikko
mode 5w
Työkalut