Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Mikrokontrolleri-projekti

18 views
Skip to first unread message

Jaakko Holster

unread,
Dec 26, 2000, 7:56:39 AM12/26/00
to
Ajattelin väsätä tommosen tietsikkaan liitettävän LED-näytön, josta
näkee parhaillaan soivan biisin nimen ja mahdollisesti muutakin
huipputärkeää. Data liikkuu sarjaportin kautta ja näyttöä ohjastaa
mikro-ohjain. Ideana on kirjoittaa pc:n mp3-soittimeen (xmms) plugin,
joka lähettää näytölle dataa freimi kerrallaan. Mikro-ohjaimen
tehtäväksi jää siis vain lukea freimi ja sytyttää LED-pikselit. Koska en
ole ennen värkännyt näiden mikro-ohjainten kanssa ja olen pelkkä
amispelle, muutama kysymys on avoin:

Ajattelin mikro-ohjaimeksi jotain PIC16x84 -piiriä. Näitä käsittääkseni
voi ohjelmoida PC:n rinnakaisportin avulla ja ilmainen C-kääntäjäkin
löytyy, right?

Jos piiri sykkii ~12Mhz:n taajuudella, riittääkö potku lukea
sarjaliitännästä 14 kbit/s? (olettaen että näytössä 700 lediä ja
virkistystaajuus 20Hz -> 700*20=14000)

Edulliset led-pistematriisit edelleen hakusessa...

--
Jaakko Holster
yaggo at kaamos.org


Sent via Deja.com
http://www.deja.com/

Ari Laitinen

unread,
Dec 26, 2000, 2:05:57 PM12/26/00
to

"Jaakko Holster" <ya...@kaamos.org> kirjoitti viestissä
news:92a4i6$9d7$1...@nnrp1.deja.com...

> Jos piiri sykkii ~12Mhz:n taajuudella, riittääkö potku lukea
> sarjaliitännästä 14 kbit/s? (olettaen että näytössä 700 lediä ja
> virkistystaajuus 20Hz -> 700*20=14000)
>
> Edulliset led-pistematriisit edelleen hakusessa...

Ei sarjaportista tiedon luvun pitäisi olla ongelma, ledien ohjaaminen (jos
se on kontrollerin tehtävä) voi olla hankalampi toteuttaa ilman
lisäohjaimia.

Taitaapa noissa isoissa näytöissä olla niin että yksi kontrolleri ohjaa vain
pientä osaa näyttöä ja näitä palasia on sitten kiinni toisissaan. Yhteisesti
kaikki voivat kuunnella jaettua sarjaväylää ja toimia sen ohjeiden
mukaisesti synkronissa.

veha...@dlc.fi

unread,
Dec 27, 2000, 10:20:00 AM12/27/00
to
On Tue, 26 Dec 2000 12:56:39 GMT, Jaakko Holster <ya...@kaamos.org>
wrote:

>Ajattelin väsätä tommosen tietsikkaan liitettävän LED-näytön, josta
>näkee parhaillaan soivan biisin nimen ja mahdollisesti muutakin
>huipputärkeää. Data liikkuu sarjaportin kautta ja näyttöä ohjastaa
>mikro-ohjain. Ideana on kirjoittaa pc:n mp3-soittimeen (xmms) plugin,
>joka lähettää näytölle dataa freimi kerrallaan. Mikro-ohjaimen
>tehtäväksi jää siis vain lukea freimi ja sytyttää LED-pikselit. Koska en
>ole ennen värkännyt näiden mikro-ohjainten kanssa ja olen pelkkä
>amispelle, muutama kysymys on avoin:

Aika lailla liikennettä synnytät tuolla tavalla. Itse laittaisin dataa
siirtymään vaikkapa pystyrivi kerrallaan ja kontrolleri sitten
siirtäisi puskuriaan oikealta vasemmalle tarpeen mukaan.

Puhumattakaan tarvittavan elektroniikan määrästä ledien ohjaamiseen

>Ajattelin mikro-ohjaimeksi jotain PIC16x84 -piiriä. Näitä käsittääkseni
>voi ohjelmoida PC:n rinnakaisportin avulla ja ilmainen C-kääntäjäkin
>löytyy, right?

Ohjelmointi laitteiden kytkentöjä ohjelmineen löytyy netistä.
Jonkinlainen ilmainen c-kääntäjä kyllä. Itse suosin assemblyä.

>Jos piiri sykkii ~12Mhz:n taajuudella, riittääkö potku lukea
>sarjaliitännästä 14 kbit/s? (olettaen että näytössä 700 lediä ja
>virkistystaajuus 20Hz -> 700*20=14000)

Vilkkuisi aika pahasti 20hz virkistys taajuudella.
Ja se riittäkö potku riippuu toteutuksesta ja softasta.

Kuulemma 4 MHz piirillä päästy jopa 36.6 kb/s vastaannotossa.

>Edulliset led-pistematriisit edelleen hakusessa...

Ehkä kannattaisi kuitenkin käyttää vaikkapa lcd-näyttöä? Helpompi
ohjattava, ei tarvitse tehoajureita, yms...

J.M. Vehasmaa

Eero Alkkiomäki

unread,
Dec 27, 2000, 1:58:55 PM12/27/00
to

"Jaakko Holster" <ya...@kaamos.org> kirjoitti viestissä
news:92a4i6$9d7$1...@nnrp1.deja.com...


Olen itsekin tehnyt pari vuotta sitten oman ledimatriisin, joten heittelen
tässä omia näkemyksiäni tuollaisen toteuttamisesta.

> Ajattelin mikro-ohjaimeksi jotain PIC16x84 -piiriä. Näitä käsittääkseni
> voi ohjelmoida PC:n rinnakaisportin avulla ja ilmainen C-kääntäjäkin
> löytyy, right?
>

Tuo on hyvin yleinen mikro-ohjain, mutta uskaltaisin väittää sen olevan
liian pieni tällaiseen projektiin. Niin muistin kuin porttienkin kannalta.
Suosittelisin tutustumaan Atmelin AVR-sarjaan.

> Jos piiri sykkii ~12Mhz:n taajuudella, riittääkö potku lukea
> sarjaliitännästä 14 kbit/s? (olettaen että näytössä 700 lediä ja
> virkistystaajuus 20Hz -> 700*20=14000)

Kyllähän tuota dataa saa kulkemaan nopeamminkin, mutta jos samalla pitäisi
päivittää 700 lediä, niin eipä oikein onnistu. Mielestäni tuo esittämäsi
toteutusvaihtoehto on kaikkein vaikein ja kaamein (masokistit tykkää ;)
Paljon fiksummin ja pienemmällä datamäärällä tuollaisen näytön tekee
seuraavasti:

Näytölle tulevat merkit lähetetään sarjaportin kautta ASCII-muodossa (siis
ihan kirjaimina) mikrokontrollerille, joka pistää niitä puskuriin.
Puskurista luetaan merkkejä ja ne esitetään näytöllä. Tämä siis on
toimintaperiaate oikein yksinkertaistettuna.

Elektronisesti homma onkin jo vaikea. Vaikeus johtuu ledien älyttömästä
määrästä. Yleensä yksi merkki koostuu 5x7-matriisista, joita sitten
pistetään jonoon tarvittava määrä. Yksi merkki siis vie 5 pystyriviä. Kun
merkkejä halutaan 20, tarvitaan pystyrivejä 100 kpl! Itse toteutin
pystyrivien ohjauksen käyttämällä Allegron UCN5832-ohjainpiiriä. Yksi
tuollainen piiri kykenee ohjaamaan 32 pystyriviä ja yhden rivin
enimmäiskuorma on 150mA. Tämä on siis varsin mainio piiri ledien
ohjaamiseen - ei tarvita erillisiä transistoreita! Liitäntä
mikrokontrolleriin tapahtuu ainoastaan kolmella datalinjalla (strobe, data
ja clock) ja UCN5832:ia voidaan ketjuttaa yhteen yhdellä datalinjalla (data
out). Käyttämällä neljää UCN5832:a ovat kaikki pystyrivit ohjattavissa.

Vaakarivit ovatkin jo sitten helppo homma - niitähän on vain seitsemän.
Fetit tai transistorit vain mikrokontrollerin datalinjoihin. Ohjelmointi
onkin sitten vaikeampi urakka ja en siihen hirveästi puutu, koska siitä
saisi tarinoida yöhön asti ;)

700 lediä kuulostaa suurelta määrältä, mutta virtaahan tuollainen hässäkkä
ei paljoa vie, koska vain yksi pystyrivi on kerralla päällä. Ledien
virtalähteeksi riittää säädettävä regulaattori (esim. L200 tai LM317), mutta
vaakarivejä ohjaavien transistoreiden kanssa sarjaan pitää laittaa sopiva
etuvastus. Säädettävällä regulla tehdään vain hienosäätö.

Jostain syytä en omassa matriisissani käyttänyt valmiita moduuleita, vaan
juotin ledit käsin verolevylle. Vaikka ledejä olikin vain 140 (neljä
merkkiä), oli niiden juottamisessa kova homma. Toivotan onnea ja
kärsivällisyyttä, koska jo pelkkien johtojen kuoriminen ja juottaminen 700
ledille on tajuton urakka!

EA


Jaakko Holster

unread,
Dec 28, 2000, 6:42:36 AM12/28/00
to

> Vilkkuisi aika pahasti 20hz virkistys taajuudella.
> Ja se riittäkö potku riippuu toteutuksesta ja softasta.

Selostukseni oli hiukan puutteellinen: näyttö virkistetään 20 kertaa
sekunnissa, mutta ei ledejä suinkaan sammuteta noiden virkistyksien
välissä - uusi kuva ikäänkuin piirretään vanhan päälle. Tuo 20Hz tulee
ihan siitä että sillä saisi jo esitettyä sulavaa animaatioita.

> Kuulemma 4 MHz piirillä päästy jopa 36.6 kb/s vastaannotossa.

Tämä on kiva tieto.

> Ehkä kannattaisi kuitenkin käyttää vaikkapa lcd-näyttöä? Helpompi
> ohjattava, ei tarvitse tehoajureita, yms...

Näinhän se olisi. LED-näyttö on vaan niin jumalattoman komea
kokonsa/kirkkautensa takia verrattuna piskuiseen ldc-näyttöön.

Ari Laitinen

unread,
Dec 28, 2000, 8:31:42 AM12/28/00
to

"Jaakko Holster" <ya...@kaamos.org> kirjoitti viestissä
news:92f8vc$3no$1...@nnrp1.deja.com...

> > Kuulemma 4 MHz piirillä päästy jopa 36.6 kb/s vastaannotossa.
>
> Tämä on kiva tieto.

Atmelin 2313:lla ja 2051:llä pääsee ottamaan dataa vastaan 115200bps
ongelmitta.

Jaakko Holster

unread,
Dec 28, 2000, 11:04:19 AM12/28/00
to
(Damn!! Tällä dejan sivulla on bugi, joka saa Netscapen syömään
vähitellen kaiken muistin -> kone jumii. Kirjoitan tätä vastausta
kolmannen kerran, tällä kertaa javascript disabloituna)

> Suosittelisin tutustumaan Atmelin AVR-sarjaan.

Kattelin netistä infoa, ihan näppäriltä vaikuttavat, samalla tulisi
opeteltua RISC-ohjelmointiakin. Tai no eihän tuolla merkitystä ole jos
C:llä koodailee.

PC-ohjelmointilaitekin näytti löytyvän, monimutkaisen näköinen tosin.
Ajattelin tätä LED-näyttö-projektia amitsun päättötyöksi, mutta varmaan
jo pelkkä tuollainen ohjelmointilaitekin kelpaisi =)

> Mielestäni tuo esittämäsi toteutusvaihtoehto on kaikkein vaikein ja
> kaamein (masokistit tykkää ;)
>
> Paljon fiksummin ja pienemmällä datamäärällä tuollaisen näytön tekee
> seuraavasti:
>
> Näytölle tulevat merkit lähetetään sarjaportin kautta ASCII-muodossa

Mietin itsekin tuota, mutta koska tarkoitus on esittää myös grafiikkaa
(kirjaimet räjähtelee/liukuu esiin ym. coolia), päädyin ratkaisuun jossa
ledejä ohjaa vain "tyhmä" mikro-ohjain valmiin PC:ssä muodostetun
bitmapin mukaan. Eli PC on systeemin aivot, onhan se helpompi
ohjelmoitavakin ja muistia riittää käytännössä rajattomasti.

> Elektronisesti homma onkin jo vaikea. Vaikeus johtuu ledien
> älyttömästä määrästä.

Nyt vasta täysin tajuan ledien määrän.. minä kun luulin aluksi
selviäväni yhdellä mikro-ohjaimella ja erillislogiikalla :D

> Itse toteutin pystyrivien ohjauksen käyttämällä Allegron
> UCN5832-ohjainpiiriä.

Kuulostaa lupaavalta, kiitti vinkistä. Tämä piirien valinta onkin
minulle projektin vaikein osa-alue, täyttä salatiedettä suorastaan.

Oliko muuten kalliitakin nuo piirit ja missä moisia kaupataan?

> Toivotan onnea ja kärsivällisyyttä, koska jo pelkkien johtojen
> kuoriminen ja juottaminen 700 ledille on tajuton urakka!

Taidan kuitenkin pysyä niissä moduuleissa.. =)

Mikkola

unread,
Dec 28, 2000, 11:46:10 AM12/28/00
to
En tiedä onko tästä hyötyä mutta tuolla on yhdellä PIC16F64 piirillä ohjattu
350 lediä


http://www.ee.oulu.fi/~ilari/elkerho/ ja sieltä ledinäyttö.


Reba

Eero Alkkiomäki

unread,
Dec 29, 2000, 4:17:29 AM12/29/00
to

"Mikkola" <re...@saunalahti.fi> kirjoitti viestissä
news:92fqmq$kq7$1...@tron.sci.fi...

> En tiedä onko tästä hyötyä mutta tuolla on yhdellä PIC16F64 piirillä
ohjattu
> 350 lediä

Idea näyttää olevan sama kuin esitin. Toteutettu vain erilliskamalla eli
siirtorekistereillä ja transistoreilla.

EA


Arto Niskanen

unread,
Dec 29, 2000, 7:15:28 AM12/29/00
to
Yksi 8031 riittää ohjaamaan 128*8 matriisia 41 Hz:n virkistystaajuudella
ja scrollaamaan samalla tekstiä. Sarakeohjaimina siirtorekisterit
74HC595, riviohjaimena 74HC595 plus ULN(UCN?)2803 ja fetit. Tuollaisen
väänsin inssityökseni. Fettien hilajännite 12 V, törkeää. TTL-tasoiset
P-kanavaiset fetit ovat pop, samoin UCN5832.

8031 antaa tuossa sarjamuotoisen datan ulos ohjelmallisesti. Datan
nopeus on 41*128*8 eli noin 41 kb/s. Yhden bitin lähetykseen menee pian
kymmenen konekäskyä eli 1 MIPS:n lutikasta 400 KIPS = 40 % menee
sarakedatan lähetykseen. Jos haluaa virittää, mahdollisuuksia
löytyy. 8031:n sarjaportin saa myös synkroniseen tilaan, jolloin dataa
lähtee 12 MHz:n kiteellä 1 Mb/s. Ellei sarjaportista halua luopua, voi
datan lähetystä kiihdyttää laittamalla koko 8 bittiä rinnakkaisena
piiristä ulos vaikka piiriin 74HC165 eli PISO-siirtorekisteri. Sitten vain
softalla kello ylös, kello alas, kello ylös... jos tästäkin haluaa
kiihdyttää, XOR:lla, vastuksella ja konkalla saa aikaan piirin, joka
tuplaa kellotaajuuden. Siis kello ylös, kello alas ja lähti jo kaksi
bittiä.

Ensimmäisen ledimatriisini tein porakoneen kanssa. Polykarbonaattia,
siihen mitoitin reikien paikat, miniporalla millin alkureikä ja sitten
Isolla Koneella 4.8 mm:n reiät, joissa ledit pysyvät kiinni ilman
liimaakin. Sitten langat jalkoihin ja juotos.

Nämä vain huomioina matriisien rakentajalta matriisien rakentajille.

-A

--
Niin tapahtui heidän siellä ollessaan, että Marian synnyttämisen aika
tuli. Ja hän synnytti pojan, esikoisensa, ja kapaloi hänet ja pani hänet
seimeen, koska heille ei ollut sijaa majatalossa.
(Luuk. 2:6-7)

Eero Alkkiomäki

unread,
Dec 29, 2000, 1:55:44 PM12/29/00
to

"Jaakko Holster" <ya...@kaamos.org> kirjoitti viestissä
news:92fo9v$f77$1...@nnrp1.deja.com...

> Kattelin netistä infoa, ihan näppäriltä vaikuttavat, samalla tulisi
> opeteltua RISC-ohjelmointiakin. Tai no eihän tuolla merkitystä ole jos
> C:llä koodailee.

No ei hirveästi ole merkitystä. Assemberilla saa kyllä nopeampaa koodia kuin
ceellä, mutta jos osaa optimoinnin, niin eipä eroa paljoa tule.

>
> PC-ohjelmointilaitekin näytti löytyvän, monimutkaisen näköinen tosin.
> Ajattelin tätä LED-näyttö-projektia amitsun päättötyöksi, mutta varmaan
> jo pelkkä tuollainen ohjelmointilaitekin kelpaisi =)
>

Riittäisi varmaan, mutta pitäähän sitä haastetta vähän olla ;)

> Mietin itsekin tuota, mutta koska tarkoitus on esittää myös grafiikkaa
> (kirjaimet räjähtelee/liukuu esiin ym. coolia), päädyin ratkaisuun jossa
> ledejä ohjaa vain "tyhmä" mikro-ohjain valmiin PC:ssä muodostetun
> bitmapin mukaan. Eli PC on systeemin aivot, onhan se helpompi
> ohjelmoitavakin ja muistia riittää käytännössä rajattomasti.

Ongelmia on luvassa, jos PC:stä tehdään systeemin aivot. PC:n ajoitukset
vaihtelevat Windowsin alla suuresti ja luvassa on taatusti tökkivä matriisi.
Kannattaa siis vielä harkita tuon suoran ohjauksen käyttöä. Skrollauksia saa
näppärästi tehtyä myös mikrokontrollerille ja ne voitaisiin kytkeä päälle
esimerkiksi lähettämällä joku erikoismerkki ohjaimelle. Toinen merkki taas
palauttaisi ohjaimen tavalliseen tilaan.

> Nyt vasta täysin tajuan ledien määrän.. minä kun luulin aluksi
> selviäväni yhdellä mikro-ohjaimella ja erillislogiikalla :D

Kyllähän sitä selviää, mutta tuota erillislogiikkaa on oltava aika paljon.
PIC16F84 kelpaa kyllä nopeutensa ja ehkä porttiensa puolesta, mutta muisti
loppuu auttamattomasti kesken. Esimerkiksi AT90S8515:lla tuollainen projekti
onnistuu varmasti. Yhdellä mikrokontrollerilla selviää siis erittäin hyvin.


> Oliko muuten kalliitakin nuo piirit ja missä moisia kaupataan?

Eivät ole kovin kalliita, muutama kymppi ehkä. Noita piirejä saa hyvistä
komponenttikaupoista, kuten Elfa, YE ja onpa noita Bebekilläkin näkynyt
SMD-kotelossa.

> Taidan kuitenkin pysyä niissä moduuleissa.. =)

Kannattaa ehdottomasti.

>
> Sent via Deja.com
> http://www.deja.com/

EA


Jaakko Holster

unread,
Jan 8, 2001, 4:09:07 AM1/8/01
to

> Ongelmia on luvassa, jos PC:stä tehdään systeemin aivot. PC:n ajoitukset
> vaihtelevat Windowsin alla suuresti ja luvassa on taatusti tökkivä matriisi.
> Kannattaa siis vielä harkita tuon suoran ohjauksen käyttöä. Skrollauksia saa
> näppärästi tehtyä myös mikrokontrollerille ja ne voitaisiin kytkeä päälle
> esimerkiksi lähettämällä joku erikoismerkki ohjaimelle. Toinen merkki taas
> palauttaisi ohjaimen tavalliseen tilaan.

Tätä on pakko kommentoida. Windows.. hyhhyh :P Ihan Linux-friikkejä tässä
ollaan :) Minulla ei ole aavistustakaan jostain Linuxin sarjaporttien
ajoituksista(?), mutta luulisi että Pentium tuollaista matriisia pyörittää,
jos ei muuten niin prioriteetta säätämällä.

--
Jaakko Holster
yaggo at kaamos.org

Juha Linna

unread,
Jan 8, 2001, 2:26:22 PM1/8/01
to
Täällä ois yksi ledmatriisi projekti
http://www.student.oulu.fi/~vmsalmen/elek/projekteja.html


Jaakko Holster <ya...@kaamos.org> wrote in message
news:93c03h$4qc$1...@nnrp1.deja.com...

0 new messages