maanantai 19. syyskuuta 2011

Mitä Samppa on nielaissut...

Pitkään ja hyvin palvellut Samppa on mennyt nielaisemaan jotakin. Ajellessaan Samppa toimii mallikkaasti, mutta siivotessaan, eli kun itse pääharja pyörii Samppa päästää rumaa ääntä. Ääntä olisi helpoin kuvata ehkä niin, että hammaspyörällä yritettäisiin pyörittää toista hammaspyörää,joka olisi jumissa ja tästä aiheutuisi hampaan hyppiminen. Ääni siis oli kova "rutina"

Päällisin puolin tutkittuna ääni tulee vain silloin, kun pohjassa oleva pääharja pyörii.

Kaikki harjakset Sampassa toimii ihan normaalisit, mutta ääni on sen verran kova, että kaikki ei voi olla ihan kunnossa. Voi Samppa, mitä olet nielassut...

Takuutakin tälla laitteella mahtaa vielä olla jäljellä, mutta Sampan lähettäminen jonnekin ja sen takaisin saaminen ties milloin ei kuulosta hyvältä. Muutenkin kiinnostuneena, pakko tutkia, mitä Samppa on nielaissut.

Sampan ruumiinavaus:




Kun Samppa oli saatu avattua leikkauspöydällä, sisältä löytyi huimasti elektroniikkaa ja antureita. Seuraavaksi sitten purkamaan emolevyä pois, jos alta paljastuisi jotakin, mikä pitää pahaa ääntä. pienen tutkinnan jälkeen perun hieman aikasemman kirjoitukseni puheita: "Itse nimeäisin sen harjaajaksi." Ei, kyllä täältä sisältä löytyy pieni imurikin. Pienehkö flekti imee nimittäin pääharjasta roskat ja pölyt pois ja tyntää ne säiliöön.

Seuraavaksi irroittamaan pääharjaa ja imuriyksikköä. Jommasta kummasta näistähän äänen täytyy tulla...

Pääharjaan on rakennettu pieni hihnaveto jossa välitys. Vaihteisto hammashihnalla muistuttaa auton jakopäätä, joten kutsun sitä tässä Sampan jäkopääksi. Sampan jakopään kansi oli erittäin hyvin tiivistetty ja käytännössä se näytti siltä ettei sinne menisi edes neste sisään. Toisin kuitenkin oli, sillä jakopää oli täynnä pientä mustaa töhnää. Mistä ja mitenköhän oli sisään päässyt.



Sitten testasin laboratorio virtalähteellä sekä imuriyksikköä että pääharjaa. Yllättävästi tämä rutina ei kuulunutkaan päährajasta vaan imuriyksiköstä. Imuriyksikkö toimii keskipako -periaatteella eli se on keskipakopuhallin. Pienen sähkömoottorin päässä on siipiratas. Siipiratas oli päässyt liikkumaan sähkömoottorin akselilla niin paljon että se vastasi imuriyksikön reunoihin. Reunoissa oli pieni nystyrä, johon siipiratas vastasi ja aiheutti kovan rutinan. Irroitin siipirattaan ja laitoin moottorin akseliin tipan locktitea ja työnsin siipirattaan takaisin paikoilleen. Imuriyksikkö takaisin kasaan ja labrapowerilla virtaa moottorille. Hienosti toimii ilman "jyrinöitä". Sitten vain suoritetaan Sampan purku vastakkaisessa järjestyksessä, eli kasataan se. Kasausvaiheessa kiinnitin huomiota muutamiin juttuihin emolevyllä:




Mitä ihmettä, WiFi? Niin emolevyssä oleva TeleChip piiri voisi liittyä tähän? Tiedänkö nyt jotakin Samsungin seuraavasta robotti-imurista, onko siinä WiFi! Voisi olla aika hieno ja innovatiivinen juttu. Sillähän voisi tehdä vaikka mitä... Entä mitähän tuolta USB -liittimen takaa löytyisi? Melkein tekisi mieli liittää tuohon johdot ja sitten kone kiinni imuriin. Ajureita ei tietenkään ole, joten ilo saattaa loppua lyhyeen. JTAG löytyy normaalisti, sieltäkin voisi varmaan jotakin tehdä...

No jokatapauksessa Samppa on nyt kasassa ja toimii hienosti, kuten pitääkin.

torstai 28. huhtikuuta 2011

Samsung Navibot SR8855, robotti-imuri

Imuri? Niin, itseasiassa kyseessähän ei ole imuri. Itse nimeäisin sen harjaajaksi. Tämän "imurin" imuteho perustuu sen staattiseen sähköön. Sekä tietenkin kaiken kiinteän robotti keräilee harjoilla suoraan säiliöön.

Käytännön kokemuksia ei vielä ole paljon. Kuitenkin tämän toistaiseksi vähäisen testin perusteella huomaa selvästi, ettei robotti kykene pitämään asuntoa puhtaana, mutta se kykenee helpottamaan omaa työtä. Voisi ajatella niin, että jos asunnossa on vaikkapa kaksi eläintä, joiden tassuissa kantautuu hiekkalaatikon hiekkaa ympäri asuntoa, niin jokapäiväinen imurointi harvenee esimerkiksi joka kolmanteen tai joka viidenteen päivään. Tämä siis on jo suuri apu, jos töiden jälkeen haluaa tehdä muutakin, kuin imuroida. 



Robotti-imureita on useita erilaisia ja erihintaisia, itse päädyin tietääkseni markkinoiden ainoaan konenäölliseen versioon. Osa syynä se, että asunto on ns. ympäri kierrettävä, joten sattumanvaraisesti navigoiva imuri ei ehkä pärjäisi asunnossa yhtä hyvin(?) Toinen houkutteleva tekijä juuri tässä robotissa oli sen navigointi järjestelmä. Navigointi perustuu äsken mainittuun kameraan, sekä robotin liikkeet ovat järjestelmälliset. Ennen robotin ostopäätöstä etsin testituloksia ja vertailuja sattumanvaraisesta, sekä järjestelmällisestä navigointi tavasta. Selkeää eroa en kuitenkaan kyennyt löytämään. Kummatkin navigointitavat olivat hyviä, testin tekijästä riippuen.

Loppujen lopuksi käännyin "Sampan" suuntaan silkan konenäön vuoksi. Luotto siis kameraa kohtaan oli "suuri"

Imurointi on siis tässä laitteessa järjestelmällistä. Tai no ainakin niin järjestelmällistä, kun mitä se voi tekoälyn avulla olla. Minut kuitenkin yllätti aika tehokkaasti se miten imuri osasi hyödyntää omaa kameraa. Kamera siis kuvaa kattoa ja sen tarkoitus on hankkia robotille tarvittavat tiedot navigointiin. Kamera pyrkii tutkimaan katon muodon perusteella huoneen muodon ja ratkaisemaan sen perusteella paras mahdollinen siivous tapa.



Kytkin imurin siivous hommiin eteisestä punaisen pallon kohdalta. Imuri aloitti siivouksen hyvinkin järjestelmällisesti eteisestä. Kun imuri tuli eteisen nurkkaan, se selvästi ymmärsi siivonneensa toisen puolen eteisestä. Tämän jälkeen imuri siirtyi turvallisesti keskeltä huonetta hyvinkin tarkoin siihen, mistä oli lähtenyt äsken töihin. Piirsin kuvaan vihreällä viivalla matkan jonka imuri kulki minusta selkeästi siirtymistarkoituksessa. Tai siltä se ainakin näytti, varmalta siirtymiseltä uuteen siivouspaikkaan. Eteinen siivottiin loppuun samalla kaavalla järjestelmällisesti, kunnes makuhuoneen ovi sattui kohdilleen. Makuuhuone siivottiin samalla tavalla järjestelmällisesti, mutta hieman vinottain. Koska näin myöhemmin olohuoneessa mihin imuri pystyy, syytän makuuhuoneen vinottainsiivousta siitä, ettei imuri voinut hyödyntää kameraa täysipainoisesti, koska joutui kulkemaan sängyn alla. Toisaalta vinottain imurointi ei huononna imurointitulosta. Imuri kun pyrkii silti siivoamaan jokaisen nurkan. Kun makuuhuoneen toinen laita oli siivottu, imuri tuntui tietävän, että toinen puoli huoneesta on jälleen siivoamatta. Imuri siirtyi hyvinkin varmoin ottein siivoamaan makkarin toisen reunan. Jostain syystä robotti käyttäytyi, kuten se olisi nähnyt jotakin. Minusta imuri pyörähteli paikoillaan, aivan kun olisi yrittänyt ”katsella ympäriinsä”.  Mahtoiko olla toiveajattelua, sen kameran käytöstä? No joka tapauksessa makuuhuone oli saatu kuosiin ja robotti ajeli seuraavaksi keittiön kimppuun.

Keittiössä sama vinottain siivous jatkui yhden "lenkin" verran, jonka jälkeen se osui olohuoneen ja keittiön väliseen oveen. Ovesta ajettuaan imuri selkeästi hyödynsi kameraa (Musta pallero kuvassa) ja tutki huoneen muodon. Kun robotti huomasi huoneen muodon se kääntyi ja aloitti olohuoneen järjestelmällisen siivouksen samansuuntaisena itse huoneen kanssa. Näyttää siis toimivan… Nauroin mielessäni tilannetta, jossa robotti tulisi makuuhuoneen toiselle ovelle. Olin varma, että kohta robotti on sekaisin. Luulee menevänsä seuraavaan huoneeseen. Josta pääsee kolmanteen (takaisin eteiseen), jolloin ollaankin jo aivan ”hukassa”. Kaikista peloistani huolimatta Samsung "Samppa" ei suonutkaan minulle tätä iloa. Robotti osui makuuhuoneen ovesta sisään jonka jälkeen se teki kummallisen liikesarjan makuuhuoneen ovella (sininen viiva kuvassa) ja selvästi huomasi jo kerran siivonneensa tämän huoneen. Imuri palasikin takaisin ja jatkoikin olohuoneen ja keittiön siivousta järjestelmällisesti loppuun asti kunnes päätti sen vihreään palloon. Hieman tyrmistyneenä ihmettelin robotin toimintaa, mutta ilmeisesti imuri tunnisti makuuhuoneen ovella käydessään kameralla huoneen muodon, tai jonkin muun objektin, jonka avulla tiesi jo kerran siivonneensa tämän huoneen.
Siivouksen jälkeen luultavasti imuri olisi vielä mennyt takaisin latausasemaansa, mutta tuossa nurkassa johon imuri päätti työnsä, se jäi jumiin kissojen kiipeilytelineeseen. Telineessä on noin 20mm korkea pohjalevy, jonka päälle en olettanut imurin edes menevän. Mutta näin kuitenkin kävi. Imuri putosi pohjalevyn päältä pois seinän puolella ja jäi jumiin kiipeilytelineen pohjalevyn ja seinän väliin. Tähän tuleekin korjaus ensitilassa; lisäämällä 10mm:n jalat kissojen kiipeilytelineeseen. Josko sitten robotti löytäisi vielä tiensä kotiin? Aika näyttää.

Robotin mukana tuli vielä virtuaalimajakoita, joiden avulla laitteen siivousta voi tehostaa. Majakat opastavat sen myös paremmin takaisin latausasemaan. Tarkoitus on näitäkin testata, josko asunnosta rakentaisi "polun"? Testit varmaan näyttää toimiiko robotti parhaiten ihan vapaana.

Luonnollisesti laite jonka itselleen ostaa, on paras. Tai kuitenkin vähintään muita laitteita parempi. Joten totta kai tämä imuri on paras, jos minulta kysytään. Onhan siitä sanottava jotakin huonoakin: Pienet suorakaiteen muotoiset matot (kevyet, liukuesteettömät) tuntuvat lähtevän mukaan robotille. Toinen puute on, ettei missään ohjeissa ollut mitään mainintaa, miten majakat tai lataus asema olisi robotin toiminnan kannalta järkevin sijoittaa. Minimi ohjeet kyllä oli, sekä mihin majakka oviaukossa sijoitetaan, mutta mitään ohjetta maksimaalisen tuloksen saavuttamiseksi ei ole. Eli esimerkiksi äsken mainitsemani "polku". Onko se robotille helpompi käsiteltävä, kun vapaasti ympäri kierrettävä asunto? Kokemus varmaan osoittaa tämänkin.

sunnuntai 13. helmikuuta 2011

MCELCDUSB

MediaCenterEditionLiquidCrystalDisplayUniversalSerialBus Hohhoijaa...


Olen jokusen sulautetun laitteen rakentanut, johon on tullut 2x16, 2x20 tai 4x20 merkkinen LCD kiinni. Kirjoittelen niitäkin tänne, kunhan jaksan ja saan aikaiseksi. Innostuin etsimään netistä valmiita laitteita, jotka menisi heittää suoraa kiinni USB porttiin. Olisihan sitä mukava katsella mitä sille Media Center tietokoneelle kuuluu leffan aikana. Tällainen sitten lyhyellä googletuksella löytyikin: Lcdmod Kit.


En sitten malttanut olla tilaamatta noinkin edullista näyttöä ihan noin testin vuoksi. Hinta edullinen, ei toimituskuluja ja kuvien perusteella vielä kohtuullisen laadukaskin. Hyvinhän tuo näyttö sitten toimikin. Piuha kiinni, ajurit koneeseen ja LCD Smartie käyntiin. Tosin itselle otin käyttöön Lcdmod Kit:in sivuilta saavan LCD Smartien. Siinä oli esimerkiksi tälle näytölle oikea dll ja näytön asetukset muutenkin kohdillaan. Asetuksissa ei nyt mitään kovin kummallista ollut, LCD2USB.dll vain display hakemistoon ja valitaan se käyttöön LCD Smartiesta. ja ohjelma uudelleen käyntiin. Näytön merkkimäärä kohdilleen 4x20 ja lopuksi vielä contrastia lisää. Tuossa oikeanpuoleisessa kuvassa on käytössä jo big number plug-in jonka saa LCD Smartien sivuilta.



 

Lisäominaisuuksia piti tietenki alkaa heti jatkojalostamaan ja miettimään. Näyttöön olisi kiva saada säätiedot pyörimään, tai edes lämpötila. Wampin asennus koneelle ja värkkäämään php -skriptiä jolla generoidaan RSS-syöte, jonka puolestaan voi ladata näytölle. Php -skripti lataa ilmatieteenlaitoksen sivut ja parseroi siitä ylimääräiset tekstit pois. Lopuksi näistä tiedoista luodaan sitten RSS -sivu. Sivu sitten ladataan Näytölle RSS kutsulla: $Rss(http://localhost/saa.php,b,2) Ensimmäinen parametri on joko t=topic, d=description tai b=both. Jälkimmäisellä parametrilla kerrotaan, kuinka mones topic halutaan näyttää. Tässä on vielä tarjolla tämä minun käyttämäni skripti. Se on varmaankin järkyttävää purkkaa, mutta tuntuu toimivan. Alussa olevaan $url muuttujaan vain osoite niin, että saa oman paikkakuntansa paikallissään. Saa soveltaa ja hyödyntää niinkö parhaaksi näkee.

saa.php

LCD Smartie pitää sisällään kyllä runsaasti ominaisuuksia esimerkiksi Winampin Now Play juttuja yms. Halusin kuitenkin saada näytölle näkymään Spotifyn sen hetkisen kappaleen. Aikani googletettuani kukaan ei ollut rakentanut plug-in dll:ä jolla olisi voinut saada Spotifystä tämän tiedon irti.

spodll.dll

Kiitos, toveri Ville! Hän kirjoitti odotellessaan nukkumaanmenoa tällaisen plugarin. Tuntuu toimivan hienosti. Tämä dll -tiedosto vain LCD Smartien plugin hakemistoon ja LCD Smartielle uudelleen käynnistys. Tätä plug-iniä on helppo kutsua ja sen viralliset käyttöesimerkit tulevat tässä:

$dll(spodll.dll,1,all,)   ->    Palauttaa artistin ja kappaleen "-" erotettuna
$dll(spodll.dll,1,artist,)  ->    Palauttaa ainoastaan artistin
$dll(spodll.dll,1,song,)  ->    Palauttaa ainoastaan kappaleen

Nyt on ainakin jotakin mielenkiintoista tässä näytöllä. Luonnollisesti LCD Smartie tarjoaa itsekin paljon erilaista härpäkettä näytölle, enkä ole sen enempää kerennyt vielä tähän edes perehtyä. Tässä  nyt vielä "mainosvideo" tästä aikaansaannoksesta.

lauantai 5. helmikuuta 2011

Nopeusrajoitin


Rakentelin ajankulukseni moposkootteriin sähköisen nopeusrajoittimen. Idea syntyi, kun mielestäni alkuperäinen nopeusrajoitin ei ollut hyvä. Alun perin rajoitus toimi muutamalla sorvatulla prikalla variaattorissa. Kun mopolla ajettiin täydellä nopeudella, eli 40km/h tuntinopeudella variaattori ei päässyt sulkeutumaan kokonaan ja kierrokset nousivat tavallista korkeammaksi. Tästä sitten seurasi suurempi bensiinin kulutus ja luultavasti myös moottorin lyhyempi käyttöikä.
No kaupalliset rajoittimethan kaiketi toimivat kierroslukua rajoittamalla. Joten tämä lienee oikea tapa toteuttaa sähköinen nopeusrajoitin. Sähköisellä sytytyksellä toteutetussa mopon moottorissa on hall- anturi, jolla tutkitaan moottorin asentoa. Tämä tieto välitetään sytytysyksikköön, joka generoi sitten kipinän oikealla hetkellä. Loogisesti nopeusrajoitin voitaisiin rakentaa tähän väliin. Eli kun moottorilta tulee asentopulssi, niin nopeudenrajoitin tekee vastaavan näköisen pulssin sytytysyksikölle, vain mikäli nopeus on alle 40km/h. Nopeuden kasvaessa yli sallitun, moottorin ottamaa kierroslukua ryhdytään rajoittamaan, rajoittamalla sen kipinää. Esimerkiksi niin että nopeuden ollessa 41km/h, generoidaan vain joka toinen kipinä. Nopeuden ollessa 42km/h voitaisiin generoida vain joka kolmas, joka neljäs tai vaikka joka kymmenes pulssi. Tässäpä siis on perusidea nopeusrajoittimesta. Tässä vielä oskilloskooppi kuva hall-anturin signaalista tyhjänkäynnillä










Nopeusanturiksi laitoin induktiivisen anturin. Asensin anturin etuhaarukkaan tunnistamaan jarrulevyn kiinnityspultteja, joita oli kolme. Eli toisinsanoen pulsseja tulee siis kolme yhdellä kierroksella. Tämä pulssianturi oli sinällään vähän huono, koska sen käyttöjännitealue oli 9-30V, joten käytännössä pulssianturin lähtöön, tai rajoittimen tuloon piti rakentaa jännitteen pudotus. Käyännössä katsoin helpoimmaksi rakentaa tämän rajoittimen levylle kahdella jännitteenjakovastuksella.
Sitten vaan protolevyn rakennukseen. No taas pitää jotakin myöntää. Rakensin tämän laitteen jo viimekesänä ja en silloin ottanut levystä kuvaa ollenkaan, joten kuvia ei siis ole. Sen sijaan kytkentäkaavio on.









Laitoin ensin levyn virtajohdot suoraan akkuun, että saa testailla. Sitten piti miettiä ohjelmistoa. Aluksi merkitsin mopon renkaaseen ja asfalttiin liidulla viivan. Työnsin mopoa niin, että rengas meni tasan yhden kierroksen, ja piirsin liidulla uuden viivan. Viivojen väli 142cm ja yhdellä kierroksella 3 pulssia. Tästä syntyi sitten seuraava taulukko. (Josta nyt en ota mitään vastuuta, se on ehkä oikein :) ) Eli, 24 pulssia sekunnissa vastaa 40,89 kilometrin tuntinopeutta, joka tarkoittaa, että tulevien nopeuspulssien väli on 42 millisekuntia.

24 p/s = 40,89 km/h -> 42ms/väli
25 p/s = 42,60 km/h -> 40ms/väli
26 p/s = 44,30 km/h -> 38ms/väli
27 p/s = 46,00 km/h -> 37ms/väli
28 p/s = 47,71 km/h -> 36ms/väli

Näillä eväillä suunnittelin ohjelmistoa rajoittimeen. Kokeilin ensin niin, että 24:llä pulssilla sekunnissa luodaan 3/4 kipinöistä, 25:llä 2/4 kipinöistä, 26:lla 1/4 kipinöistä ja 27:llä kone sammutetaan kokonaan. Mietin mielessäni, että 25 pulssia tarkoittaa tehon puoliintumista, koska puolet kipinöistä on pois. Käytännön testit osoittivat, että yksi kipinä neljästä riittää kasvattamaan mopon nopeuden niin suureksi, että rajoitin sammutti mopon kokonaan. Yritin kasvattaa ja muuttaa sytytysrajoitus sääntöjä eritavoin, mutta en saanut rajoitinta toimimaan haluamallani tavalla. Joten muutin ajatuksen toisin päin.

Uusi versio toimi sitten niin, että lisäsin muuttujan arvoa 1ms:n välein yhdellä. Kun nopeuspulssi tulee, tutkin muuttujan arvoa. Jos nopeuspulssien väli on vähemmän kuin 40ms kipinää ei luoda, muissa tapauksissa se luodaan normaalisti. Koska tämä tehtiin jokaisella nopeusanturin antamalla pulssilla, oli nopeuden rajoitus valtavan nopea. Tämä sovellus on sittemmin jäänyt käyttöön. Tosin pulssien väli muutettiin 40ms:sta 34ms:n. Koska todellinen nopeus tarkistettiin. Virhe syntyy todennäköisesti siitä, että prosessorissa on käytössä sisäinen kello, jossa voi olla suurikin virhe. Lisäksi aikojen mittauksessa on käytössä delay -funktio, joka on hyvinkin epätarkka. Tässäpä olisi siis jo parannusehdotus: Sisäinen kello käyttöön ja keskeytysaliohjelmaan pyörimään ajan mittaus. Muita parannusehdotuksia tulee tähän samaan. Jos nopeusanturin irroittaa, tai se ei jostakin syystä mittaa mopon nopeutta enää, on rajoitin mitätön, koska se ei enää rajoita ajonopeutta.


Tässä vielä rajoittimen Tinyn lähdekoodit: rajoitin.c


Ainiin, koodissa on vielä ohitus nopeusrajoittimelle. Tätä en ottanut itsellenikään käyttöön vaan tämä oli ainoastaan testivaiheessa mukana, että näin prosessorin kerkeävän mukana suuremmissakin nopeuksissa.


Asennuksessa ei kai mitään sen kummallisempaa ollut. Hauska kommellus kuitenkin kävi. Mittasin johtosarjasta sellaista johtoa, jossa olisi sähkö kun virrat ovat päällä ja sähkötön, kun virrat ovat pois. Tällainen johto löytyikin ja asensin rajoittimen saamaan käyttöjännitteensä tästä johdosta. Kaikki toimi odotetulla tavalla, kunnes olin menossa huoltoasemalle tankille ja bensiinin loppumisesta ilmoittava valo yllättäen syttyi. Yhtäaikaa valon syttyessä mittaamastani käyttöjännitejohdosta katosikin sähkö. Rajoitin ei saanut enää käyttöjännitettä ja mopo sammui. Viimeinen kilometri tankille mentiin sitten hieman toisessa reunassa istuen, mopo kun kulki kallellaan, merkkivalo ei syttynyt joten rajoitin sai virtansa. Takaisin kotiin, ja etsimään johtosarjasta parempaa johtoa.