Näin sosiaalisen eristäytymisen aikoina pitää keksiä itselle puuhaa. Tai no oikeastaan ei erikseen tarvitsisi (koska sitä kyllä riittää muutenkin), mutta tämä idea kuitenkin syntyi turhautumisesta. Ajattelin, että tästä voisi olla hyötyä muillekin joten päätin kirjoittaa pienen ohjeistuksen aiheesta.

Kyllästyin siis tallentamaan netistä kuvia niin, että lataan ne ensin selaimen lataus-kansioon ja sieltä käsin siirrän omaan eri kansioonsa ja vieläpä eri levylle. Tähän olisi internetissä tarjolla erilaisia asennettavia softia, mutta niistä ei koskaan tiedä mitä koodia ne koneessa suorittavat.

Pari tuntia googletusta kuinka Powershellillä skriptaillaan ja nyt tietokone tekee tämän puolestani, heti kun olen jotain tallentanut (tarkemmin sanottuna 5 sekuntia latauksesta). Vaati hieman kikkailua, koska kohdelevyt ovat eri asemia ja Chrome ei turvasyistä anna lisäosien suoraan tallentaa eri levylle.

Mutta miten tämä oikein tapahtuu? Tässä ohje, jos haluat tämän ominaisuuden itsellesikin toteuttaa (ei vaadi ohjelmien asentelua, vain Chrome-selaimen ja 1-lisäosa). Ohje voi vaikuttaa monimutkaiselta, mutta on oikeastaan aika nopeasti tehty. Laita palautetta jos koet ohjeet puutteelliseksi.

 ... jatka lukemista 

Edellisessä osassa rakentelin pyöritettävän pöydän mekaniikkaa ja elektroniikkaa sekä kotelointia sille. Tässä osassa tsekataan lyhyesti läpi elektroniikan kytkennät ja kuinka kännykkä saadaan ottamaan valokuva Arduinon ohjaamana.

Kuten alla olevasta kuvasta nähdään, elektroniikka on nyt "siistissä" boksissa ja kansi on neljällä plastofast-ruuvilla kiinni. Kytkimille tulostetut näppäinhatut toimivat ilman jumittamista ja RGB-ledin kaikki värit toimivat, kuin myös itse LCD-näyttö.

Elektroniikka kasattuna ja näytön testiohjelma ajettuna
Elektroniikka kasattuna ja näytön testiohjelma ajettuna
 ... jatka lukemista 

Elektroniikan kanssa näperrellessä tarvitsee usein tiedonsiirtoa tietokoneelle päin ja toiseenkin suuntaan. Käyttötapauksia voi olla esimerkiksi anturitietojen lähetys sulautetulta laitteelta tietokoneelle analysoitavaksi tai ohjelman suorituksen debuggaaminen, tai muuta vastaavaa.

Monissa kehitysalustoissa (kyllä, Arduinossakin) on vakiona USB-sarjaporttimuunnin, minkä avulla saadaan mikroprosessorin lähettämä sarjamuotoinen tieto virtuaalisarjaportin avulla käsiteltäväksi. Tätä ei kuitenkaan aina ole mahdollista käyttää ja monesti ratkaisu ei välttämättä täysin käytännöllinenkään ole. Ainahan voisi viritellä erillisen sarjaporttimuuntimen prossun kylkeen, mutta näissä on monesti se ongelma, että muunnos tapahtuu 3/5 voltin (CMOS/TTL) logiikkatasosta RS232 tasolle, missä jännitetasot voivat olla prossun kannalta kuolettavia. Tästä aiheesta voit lukea tarkemmin tältä sivulta.

USB-ISS Sarjamoduulin kuva
USB-ISS Sarjamoduuli (SPI/I2C/Serial)

USB-ISS on Robot-Electronicsin tuote, minkä avulla saadaan helposti ja kompaktisti toteutettua muunnos suoraan USB:sta TTL/CMOS-tasoon. Eli voidaan käyttää mikroprosessorin sarjaporttia suoraan, ilman RS232-muunnospiirejä välissä. USB-ISS "mokkula" toimii tietokoneella virtuaalisarjaporttina, mutta sitä ohjataan sarjakomennoilla, joten käyttäminen vaatii erillisen sovelluksen. Tätä "mokkulaa" voidaan käyttää myös SPI ja I2C -sarjaväylien kanssa kommunikointiin ja on siksi varsin näppärä lisä työkalupakissa.

Itse USB-ISS laitteesta voit lukea lisää tältä sivulta: https://www.robot-electronics.co.uk/htm/usb_iss_tech.htm.

Pythonille olisi ollut tarjolla useita erilaisia sovelluksen tekoon tarkoitettuja kehitysympäristöjä (IDE), mutta tyydyin tällä kertaa perus Python IDLE:en, sillä se tulee vakiona mukana Pythonin asennuksessa. Lisää erilaisia ohjelmointiympäristöjä löytyy tästä linkistä: https://www.programiz.com/python-programming/ide.

 ... jatka lukemista 

Joskus käsiin eksyy pahapäisiä Arduino-klooneja, jotka eivät oikein tykkää toimia millään. Yleensä nämä laitteet ovat made in China, eikä siinä sinänsä mitään väärää ole, mutta länsimaissa ne eivät vain aina toimi. Tämä lyhyt postaus kertoo siitä kuinka minä sain tämmöisen kopion toimimaan.

(Huomautuksena, että kannustan tottakai ostamaan aina alkuperäisia originaalin valmistajan toimittamia laitteita. Ne yleensä toimivat ilman kikkailuita ja ovat luotettavia siinä suhteessa.)

Mutta siis, mikä himskatin bootloader? 

Bootloader on pieni itsenäinen ohjelman pätkä, joka huolehtii siitä että käyttäjän sille tarjoama ohjelma voidaan tallentaa mikroprosessorin muistiin. Bootloader on siis ohjelma siinä missä käyttäjänkin tekemä oma ohjelma, mutta se on kuitenkin ensimmäinen asia mikä käynnistetään, kun virrat kytketään mikroprosessoriin päälle. Kun bootloader huomaa, ettei uutta ohjelmaa ole tarjolla (esimerkiksi sarjaportista) niin CPU siirtyy suorittamaan ohjelmoitua ohjelmaa elikkä sketsiä Arduinon tapauksessa.

 ... jatka lukemista 

Tämä julkaisu on jatkoa nopeuspelin rakentelua osa 2 -kirjoitukselle.

Koodin kehitys on edennyt siihen pisteeseen, että pelin logiikka toimii ja näppäimiä voi painella ja pisteitäkin laskeskellaan. Alla olevassa videossa on esitetty ohjelman toiminta pelitilanteessa. Peli käynnistyy näppäimen painalluksesta (laite vilkuttelee valoja "demomoodissa" kun peli ei ole käynnissä). Videon lopussa painetaan tarkoituksella väärää nappia ja peli loppuu.

 ... jatka lukemista