{"id":3115,"date":"2013-12-09T12:53:45","date_gmt":"2013-12-09T10:53:45","guid":{"rendered":"http:\/\/www.kameli.net\/marq\/?p=3115"},"modified":"2013-12-10T10:26:44","modified_gmt":"2013-12-10T08:26:44","slug":"arduino-atari-ja-joikkari","status":"publish","type":"post","link":"http:\/\/www.kameli.net\/marq\/?p=3115","title":{"rendered":"Arduino, Atari ja joikkari"},"content":{"rendered":"<p>Virittelin jo aiemmin kasaan <a href=\"http:\/\/www.kameli.net\/marq\/?page_id=1042\">Joyduino-projektin<\/a>, jolla sai emuloitua Atari-joysticki\u00e4 PC:n n\u00e4pp\u00e4imist\u00f6lt\u00e4. Projektissa oli kuitenkin kaksi ongelmaa: kolvaamista vaativa tarpeettoman mutkikas piirikortti ja hieman ep\u00e4m\u00e4\u00e4r\u00e4inen sarjaportin k\u00e4sittely omalla ohjelmalla. Kuulin vasta my\u00f6hemmin, ett\u00e4 Arduinon pinnit saa suljettua laittamalla ne input-moodiin, mik\u00e4 teki kytkinpiirit tarpeettomiksi. Eli kun virtuaalisen joikkarin kytkint\u00e4 ei paineta, pinni on sis\u00e4\u00e4ntulona ja kun painetaan, niin pinni vaihdetaan ulostuloksi ja laitetaan nollaan. T\u00e4lt\u00e4 pohjalta riitti tehd\u00e4 triviaali johto D9-naarasliittimest\u00e4 piikkirimaan, joka menee Arduinon headerin pinneihin 8..GND (yl\u00f6s, nappi, alas, vasen, nappi 2, oikea, maa). Tulitusnappi 2 t\u00e4ss\u00e4 MSX:n mukainen \u2013 muissa laitteissa saattaa olla eri piikiss\u00e4. Oman C-ohjelman sijasta tein is\u00e4nt\u00e4ohjelman t\u00e4ll\u00e4 kertaa Processingilla, niin se toimii saman tien useilla alustoilla. Arduinoon pit\u00e4\u00e4 ensin ladata <em>Firmata<\/em>, jotta Processing toimii sen kanssa. Firmata ei ole j\u00e4rin nopea, sill\u00e4 aikaa haaskaantuu yksitt\u00e4isten pinnien erikseen k\u00e4\u00e4ntelyyn ja protokollaan, mutta t\u00e4ss\u00e4 tapauksessa nopeus oli ihan hyv\u00e4ksytt\u00e4v\u00e4. Omaa, luultavasti pahempaa l\u00e4gi\u00e4\u00e4n tulee Processingin p\u00e4ivitystaajuudesta, mutta sek\u00e4\u00e4n ei ollut viel\u00e4 liikaa. Esimerkki t\u00e4\u00e4ll\u00e4:<\/p>\n<p><a href=\"http:\/\/www.kameli.net\/~marq\/kode\/joikkari.pde\">http:\/\/www.kameli.net\/~marq\/kode\/joikkari.pde<\/a><\/p>\n<p>Firmatan lis\u00e4ksi tarvii asentaa <a href=\"http:\/\/playground.arduino.cc\/interfacing\/processing\">Arduino-tuki Processingille<\/a>, joten mik\u00e4\u00e4n avaimet k\u00e4teen -ratkaisu t\u00e4st\u00e4k\u00e4\u00e4n ei tullut. MSX:n kakkosnapin vahingossa sohimisesta voi seurata ongelmia joillakin koneilla \u2013 pinni\u00e4 saatetaan k\u00e4ytt\u00e4\u00e4 muihin tarkoituksiin, joten joikkaportin pinniin 7 ei yleens\u00e4 kannata kytke\u00e4 mit\u00e4\u00e4n. Toinen detsku on, ett\u00e4 pelikone kannattaa k\u00e4ynnist\u00e4\u00e4 tai johto kytke\u00e4 vasta ohjelman her\u00e4tty\u00e4, sill\u00e4 muuten porttiin tulee ei-toivottuja painalluksia. N\u00e4ppikselt\u00e4 pelaaminen on jo kohtuullisen hy\u00f6dyllist\u00e4, jos ehj\u00e4\u00e4 Atari-joysticki\u00e4 ei satu olemaan, mutta viel\u00e4 hy\u00f6dyllisempi t\u00e4m\u00e4 viritelm\u00e4 olisi vaikkapa joypadin kanssa. Katsotaan, iskeek\u00f6 inspiraatio sellaisenkin tukemiseen jossain vaiheessa.<\/p>\n<p><em>edit: Nappi 2 ja vasen menev\u00e4t tosiaan ristiin piuhassa, koska huomasin vasta j\u00e4lkik\u00e4teen, ett\u00e4 MSX:ss\u00e4 kakkosnappi onkin eri pinniss\u00e4. Helppo muuttaa koodista (ja muutenkin j\u00e4rjestys on aika satunnainen).<\/em><\/p>\n<p><em>edit2: \u00c4h, menk\u00f6\u00f6n. T\u00e4ss\u00e4 se joypad-tuki. Nappien ja kontrollerin nime\u00e4 joutunee vaihtamaan, mutta muuten toiminee suorilta:<\/em> <a href=\"http:\/\/www.kameli.net\/~marq\/kode\/joikkari2.pde\">http:\/\/www.kameli.net\/~marq\/kode\/joikkari2.pde<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Virittelin jo aiemmin kasaan Joyduino-projektin, jolla sai emuloitua Atari-joysticki\u00e4 PC:n n\u00e4pp\u00e4imist\u00f6lt\u00e4. Projektissa oli kuitenkin kaksi ongelmaa: kolvaamista vaativa tarpeettoman mutkikas piirikortti ja hieman ep\u00e4m\u00e4\u00e4r\u00e4inen sarjaportin k\u00e4sittely omalla ohjelmalla. Kuulin vasta my\u00f6hemmin, ett\u00e4 Arduinon pinnit saa suljettua laittamalla ne input-moodiin, mik\u00e4 teki kytkinpiirit tarpeettomiksi. Eli kun virtuaalisen joikkarin kytkint\u00e4 ei paineta, pinni on sis\u00e4\u00e4ntulona ja kun [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[25,22,15,24],"tags":[],"class_list":["post-3115","post","type-post","status-publish","format-standard","hentry","category-koodi","category-laitteet","category-retro","category-softat"],"_links":{"self":[{"href":"http:\/\/www.kameli.net\/marq\/index.php?rest_route=\/wp\/v2\/posts\/3115","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.kameli.net\/marq\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.kameli.net\/marq\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.kameli.net\/marq\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.kameli.net\/marq\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3115"}],"version-history":[{"count":9,"href":"http:\/\/www.kameli.net\/marq\/index.php?rest_route=\/wp\/v2\/posts\/3115\/revisions"}],"predecessor-version":[{"id":3124,"href":"http:\/\/www.kameli.net\/marq\/index.php?rest_route=\/wp\/v2\/posts\/3115\/revisions\/3124"}],"wp:attachment":[{"href":"http:\/\/www.kameli.net\/marq\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3115"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.kameli.net\/marq\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3115"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.kameli.net\/marq\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3115"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}