sunnuntai 8. joulukuuta 2013

Ei kirjoiteta blogiin ei nyt ei koskaan eikö niin ei tehdä tästä vaikeaa. Ollaan niinkuin tähän asti keittiössä luontevasti...

No kirjoitan silti. Eipä ole tätäkään blogia liiallisella päivittämisellä pilattu, mutta empä ole tästä sen suurempaa stressiä ottanutkaan. Nyt kuitenki TAAS tulee päivitys.

Tää on aikaa sitten tehty kampe, itseasiassa vuonna 2008, tekun harkkatyönä.

Copy/Pastean työn tähän, nii vältyn tälläkin kertaa kirjottamiselta :)

Tässä kytkennässä on jotaki tosi oivllista koska tässä tehdään PWM:ää LM555:llä tosi nerokkaasti komparaattorin avulla.






Sain ajatuksen rakentaa muutettavan värivalon, eli RGB valon. Ajatuksen mielenkiinto heräsi entisestään nähdessäni RGB-ohjaimen MicroSYL:n sivuilla www.microsyl.com. Kyseisen mikrokontrolleri kytkentä jo testattiinkin, ja siitä olisi tullut kehityskelpoinen idea. Joskin käyttöliittymä tälle olisi ollut vähän työläs tehdä. (Koulun harjoitustyönä, aika kun oli rajallinen) Ajatus sitten hieman jo hautautui ja jäi odottamaan enemmän aikaa.

Uusi idea sitten syttyi Mark Balch:in kytkennästä, jossa pulssinleveys modulaattori oli toteutettu peruskomponenteilla, eli täysin analogisesti. Kytkentä löytyy osoitteesta
http://www.completedigitaldesign.com/articles/web_pwm.pdf pdf dokumenttina. Kytkentää hieman jatkojalostettiin, ja siihen rakennettiin tehoyksikkö feteillä, sekä virranrajoitin, ettei jokaiselle ledille tarvita omaa virranrajoitusta.


Kuva1. Kytkentäkaavio

LM555 piirin antaa saha-aaltoa ulos. Sen taajuus pitäisi olla noin 100 hz:n luokkaa. Tätä jännitettä käytetään komparaattorissa toisena vertailu jännitteenä. Toinen vertailujännite saadaan potentiometriltä nollan ja käyttöjännitteen (5V) väliltä.

Alkuperäisessä kytkennässä on komparaattorin perään laitettu suoraan ledi, kytennän komparaattori ei myöskään tarvi ylösvetovastusta, koska komparaattorin sisäisessä kytkennässä on transistorit sekä käyttöjännitteeseen, että maihin päin. Näin ollen komparaattorin lähtö ei jää koskaan "kelluvaksi". Tässä kytkennässä komparaattoriin rakennettiin tehoyksikkö perään, ja koska kytkentä tehtiin eri komparaattorilla, piti fetiin laittaa ylösvetovastus. Nyt komparaattorin tehtäväksi jäi vain maadoittaa fettiä, sisääntulojen (saha aaltoinen referenssijännite ja potentiometrin jännitteen) suhteessa.

Samaiseen kytkentään rakensin vielä virranrajoituksen ledeille. Virranrajoittimen toimintaperiaate on hyvin yksinkertainen, ja yleiskäyttöinen. Tämä siksi, koska ledeille voidaan laittaa sisään meno jännitteeksi teoriassa mitä tahansa. Virranrajoittimen toimintaperiaate on seuraava: Kun transistorin kannan ja emitterin välillä olevaan vastukseen jää noin 0.6 voltin jännite, alkaa transistori muuttua johtavaksi, jolloin fetin kantajännite putoaa voimakkaasti. Teoriassa, ja käytännössäkin on testattu, että fetin läpi kulkeva virta voidaan oikosulkea, tällöinkään virta ei ylitä arvoa, joka saa jäämään vastukseen 0,6 voltin jännitteen.

Mitoitin vastuksen koon seuraavalla tavalla. Ledin läpikulkevaksi virraksi halusin 20mA. Äskeisen teorian mukaan vastuksien R10-R12 läpi kulkeva virta siis on 20mA, tällä virralla haluttiin vastukseen jäävän 0.6 voltin jännite. Eli virtaa rajoitetaan kun läpikulkeva virta kasvaisi -> vastukseen jäävä jännite kasvaa yli 0.6 voltin -> transistori muuttuu voimakkaasti johtavaksi -> transistori maadoittaa fetin kantaa -> feti rajoittaa ledin läpi kulkevaa virtaa. Eli teoriassa vielä kerran: Jos ledi nyt oikosuljetaan, feti rajoittaa virran niin että se nousee vain siihen arvoon, missä vastukseen jää 0.6 voltin jännite. Tässä tapauksessa 20mA. Virranrajoittimen ansiosta teoriassa on mahdollista syöttää ledeille mitä jännitteitä haluaa (huomioitava kuitenkin fetien maksimi jännite), niin periaatteessa virranrajoitin rajoittaa virran. Toinen tärkeä seikka on tarkistaa, vastuksen (R10-R12) tehonkesto, tämä tulee vastaan, jos sen läpi kulkee yli 40mA virtoja.

Vastuksen koko siis lasketaan R=U/I, eli 0.6V / 0.020A = 30ohm. Itse rakensin ensimmäisen version yhdellä ledillä, joten virraksi piti asettaa juuri tuo edellä mainittu 20mA.

No mitä alkuperäiseen ideaan tulee, piti himmennys saada tehtyä kolmelle eri värille, punaiselle, vihreälle ja siniselle. Näitä värejä sitten sekoittamalla on teoriassa mahdollisuus heijastaa mitä väriä hyvänsä.

Alkuperäinen idea oli jyrsiä RGB-himmentimeen piirilevy, koululla olevalla piirilevyjyrsimellä. Kuitenkin jyrsimestä oli ilmeisesti servomoottori kärynnyt, eikä siksi levyä päästy vielä jyrsimään. Tämän vuoksi kytkentä on kasattu nauhakuparoidulle reikälevylle.



Kuva2. RGB-himmennin menossa koteloon.



Kuva3. Laitteen kokonaiskuva.



Kuva4. RGB-Himmennin kotelossa etupaneelin puolelta.


Kuva5. RGB-Himmennin kotelossa takapaneelin puolelta.


lauantai 4. helmikuuta 2012

Ledille vakiovirta

Rakennettiin veljen kanssa jälleen kerran jotakin ledi vilkutinta, olisiko peräti ollut Atmelli -pohjainen PWM ohjaus ledeille. Muistelisinpa että peräti RGB ohjainta suunniteltiin. Ohjauksessa taisi olla teho RGB ledi. Googlettelujen jälkeen löytyikin sitten ratkaisu, miten ledille voitaisiin tarjoilla vakiovirta. Ledit kun sellaista kaipaavat. Tämä kytkentä siis on löytynyt suoraan netistä, aikoja sitten, mutta sitä on muistaakseni vähän muokattu. Koska kytkentä toimi erinomaisesti ja mielestäni siinä on jotakin erittäin nerokasta, ajattelin kirjoitella sen ylös.


Kytkennän voisi purkaa vaikka seuraavalla tavalla:

Ledit D1 ja D2, sekä fetti Q1 ja vastus R1 ovat kaikki sarjassa. Jos fetti Q1 johtaisi täysin se voitaisiin ajatella pois tästä kytkennästä. Näin jäljelle jää periaatteessa perinteinen ledi kytkentä, jossa kaksi lediä ja vastus. Tämän sarjan päissä vaikuttaa jännite ja koko sarjan läpi kulkee näin virta. Koska sarjan läpi kulkee virta, sama (saman suuruinen) virta kulkee jokaisen sarjassa olevan komponentin läpi. Virran suuruus määräytyy jännitteestä sekä komponenttien resistanssista tässä sarjassa.

Ajatellaan asia toisin päin. Jos ledi kytketään vaikka säädettävään laboratorio virtalähteeseen, jännitteellä voi säätää ledille haluamansa kirkkauden. Koska ledin resistanssi on kiinteä, jännitettä nostamalla ledin läpi kulkeva virta kasvaa ja ledi loistaa mukavasti.

Tässä sovelluksessa ei käytännössä oteta kantaa siihen, mikä ledin jännite on, vaan siihen kuinka suuri virta ledien läpi voi mennä. Jännite kiinnostaa tietenkin siinä määrin, että jos yksi ledi tarvii palaakseen 3,2 voltin jännitteen ja ledejä on kaksi sarjassa, täytyy ledeille saada vähintään 6,4 voltin jännite. Mutta palataan tähän myöhemmin. Oletetaanpas, että näiden ledien maksimi virta on vaikkapa 80mA ja me haluamme ledeistä pitkäikäiset kulkuvalot vaikkapa pienois- linja-autoon penkkien alle. Märitellään halutuksi ledin virraksi esimerkiksi 50mA. Kuten jo äsken pohdittiinkin, tämä sama 50mA:n virtahan kulkee molempien ledien, fetin, sekä vastuksen R1 läpi aiheuttaen jokaiseen näistä jännitehäviön. Vastuksen R1 jännitehäviön suuruushan määräytyy nyt vastuksen koosta. Määritellään vastuksen koko niin, että siihen jää 0,6V:n suuruinen jännitehäviö. R=U/I, eli R=0,6V / 50mA, R=12 Ohm. 12 Ohm:n vastuksen läpi kun johdetaan 50mA:n virta siihen syntyy 0,6V:n  jännitehäviö. Miksi juuri 0,6V?

Sen vuoksi, että transistori alkaa johtamaan noin 0,6V:n kohdalla. Nyt kun katsoo kytkentää, niin R1 on piirretty transistorin kannan ja emitterin välille niin, että kun vastuksen jännite nousee yli 0,6V:n transistori alkaa johtamaan.

Ledien läpikulkeva virta on 50mA tai alle:
Myös vastuksen R1 virta on alle 50mA ja jännite jää alle 0,6V. Tässä tapauksessa transistorikaan ei johda. Tässä tilanteessa fetin kannassa on täysi käyttöjännite, koska käyttöjännite on kytketty vastuksella R2 fetin kannalle. Koska feti ei ole virtaohjattu komponentti, sen kanta ei käytännössä ota virtaa laisinkaan, jolloin vastukseen R2 ei myöskään jää jännitehäviötä. Tässä tilanteessa fetin kannalla pysyy siis käyttöjännitteen suuruinen jännite ja fet johtaa.

Ledien läpikulkeva virta nousee yli 50mA:in
Myös vastuksessa virta nousee. Tämän virran nousun myötä, vastuksen yli oleva jännitehäviö nousee yli 0,6V:n ja transistori alkaa johtamaan. Transistorin alkaessa johtamaan, fetin kannalla olevaa jännitettä aletaankin johtamaan transistorin läpi maihin (syntyy virta), jolloin fetin kannan jännite laskee. Kun fetin kantajännite laskee feti ei johdakaan enää kokonaan vaan se alkaa rajoittamaan ledisarjassa kulkevaa virtaa. Kun ledisarjan virta pienenee -> vastuksen R1 läpi kulkeva virta pienenee -> vastuksen jännitehäviö pienenee -> transistori ei johda -> fetin kantajännite pääsee nousemaan. Ja sitten kierros alusta. Feti johtaa kokonaan jolloin virta kasvaa jne.

No lopputulos on sitten se, että tämä kaikki tapahtuu niin nopeaa, että loppujen lopuksi feti johtaa juuri sen verran, että vastukseen R1 jää noin 0,6V:n jännite, joka siis tarkoittaa, että ledisarjan virta on noin 50mA:n luokkaa.

Sitten se jänniteasia. Kuten aiemmin olikin mainittu, jokaiseen sarjan komponenttiin jää jännitehäviö. Ledeissä se oli 3,2V ja vastuksessa suurimmillaan 0,6V joten eikös sarjan yhteisjännitteeksi saada 7V. Kytkentä siis toimii tässä tapauksessa pienimmillään noin 7V:n jännitteellä.

Entäpä jos kytkennän jännitettä nostetaan yli 7V:n vaikkapa 12V:in. Tästähän aiheutuu heti ledisarjan + fetin + R1:n läpi kulkevan virran kasvaminen ja siitä seuraa sitten edellä kuvatut toimenpiteet virran laskemiseksi jonka jälkeen ledisarjan läpikulkevan virran suuruus on kiinteä 50mA. Tämä siis tarkoittaa sitä, että sisääntulojännite voi olla käytännössä mitä vain, niin ledisarjan läpi kulkeva virta on aina 50mA. Kytkentähän siis soveltuu mainiosti juurikin vaikkapa autokäyttöön, jossa startatessa jännite voi laskea hurjasti ja taas ladatessa se voi nousta kovasti.

Joku raja kuitenkin tulee vastaan. Käytännössä virran pysyessä 50mA:ssa, syöttöjännitteestä jakautuu yhteensä 6,4V ledeille, 0,6V vastukseen ja loppu jännitehäviö jää fetiin. Luonnollisesti feti ei voi kadottaa jännitettä taivaan tuuliin.  Tai, noh... niin jännite ei katoa mihinkään vaan feti muuttaa sen "ylimääräisen" energian lämmöksi joka sitten johtuu taivaan tuuliin jäähdytysrivasta. Kuten selvää, mitä enemmän feti joutuu kadottamaan jännitettä lämmöksi, sitä enemmän feti kuumenee. jäähdytyksestä siis kannattaa pitää huolta.

Ainiin, vielä yksi huomio. Laskettaessa vastusta R1, myös sen tehonkesto kannattaa ottaa huomioon. Tässä läpikulkeva virta oli 50mA ja jännite 0,6V joka tarkoittaa että (50mA * 0,6V = 30mW) vastuksen tehon keston on siis oltava 30mW. Suurilla teholedeillä virta saattaa olla paljon suurempi, jolloin vastuksen tehonkeston on siis oltava myös suurempi.


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.