Rosallbys – Led butterflies

Hi! Let’s try in English. Erh?

One day I stumbled upon some led fireflies. They were actually really cute! For a while I wondered the idea of them. Until I got this idea! The same principle, but butterflies!

In most cases, the most important thing in pcb is how well it works. Let’s make a beautiful pcb, which also works.

A few hours with KiCad.

Screen Shot 2013-05-09 at 11.32.36 PM

So simple. Litle ATtiny13, few leds and LDR.

3D view in KiCadFirst Rev.

Butterfly pulses a few times when it is dark enough. About 1-6 pulses every 4-12 minutes.

What do we get?

Rosallbys PCBs

Couple of weeks and iTead submitted the order. Of course, as white

Rosallbys pcbA closer look. Its called Rosallbys <3

Rosalbyss topFully assembled. Leds are at the top of wings.

Rosallbys bottomThe bottom side. Owl City – Fireflies played many times.

How about the code? Roughly timer 1 handle leds steering, and the watchdog to check brightness every 8 seconds. If the brightness is small enough and time has elapsed then turn on the leds. Otherwise, go to sleep!

They are SO SO cute! Just look at!

IMG_0681 IMG_0691 IMG_0690 IMG_0696 Rosallbys in hand IMG_0700

What is their functionally? Ornament! They are just cute. The light  of butterflies is comfortable to fall asleep.

Current measurements told us:

  • When leds are ON: 20-30 mA
  • Idle: 3 mA
  • Sleep: 1 mA

The next version will contain a dc-dc boost converter. LDR voltage divider spends too much current and it could be shut down with a transistor, when its not in use. Maybe synchronized?

You can download files of KiCad project here and schematic in PDF here. If you have any questions, you can contact me. You can also suggest better solutions.

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.

Posted in Jotain aivan muuta | Tagged , , , , | Leave a comment

Perunatykki!

Vihdoin ja viimein! Monta vuotta kyseisestä kapistuksesta janonnut ja vihdoin oli aikaa se toteuttaa. Mahtavaa.

TÄMÄ EI OLE LELU. JOS APINOIT, NIIN TEET KAIKEN OMALLA VASTUULLASI!

Elikkäs kyseessä on painetykki. Toimintaperiaate on hyvin simppeli. Palaessa kaasu laajenee ja sopivan paineen syntyessä panos ottaa tuulta alleen.

OsatVierailu läheisessä rautakaupassa. Mukaan tarttui hiukan viemäriputkea:

  • Kaksoismuhvi 110
  • Supistusyhde 110 -> 75
  • Haarayhde 75, 75, 50
  • 0.5m putki 50
  • 50 ja 110 tulpat

Harmiksi kierteellä olevat kannet 110 koossa olivat loppu. Vähän täytyy täyttöaukon kansi (110 tulppa) innovoida.

PerunatykkiKyseinen laitos siitä sitten syntyi. Liitokset kannattaa varmistaa ruuveilla tai liimalla. Kunhan pysyvät yhdessä! Paineella on jännä vaikutus.

Lakka ja sytytinJa näitä kuluu. Kaasuna tavallista hiuslakkaa, mallia halvin, mitä oli hyllyssä. Emppiirisen tutkimuksien seurauksean: 1-2 sekunnin suihkaus lakkaa ja annetaan 5-10 sekuntia sekottua ilman kanssa ja kaput. Ammuksina perunoita. Omenasatoa ootellessa :3

Posted in Jotain aivan muuta | Tagged , , , , | Leave a comment

LedCube 2.0?

Vuosi vierähtänyt kuutioprojektista ja sen kanssa on viime aikoina tullut vähän värkkäiltyä. Idea juolahti mieleen, että jos tekis parememman kontrollerin. Noh, sen enempää homman järkevyyttä ajattelematta KiCad auki ja hahmotelmaa miltä homma voisi näyttää.

Kontrollerilla on kaksi tehtävää.

  1. Laske efektin frame
  2. Puske framen data shiftrekistereille ja näytä oikea kerros

Mitä voisi tehdä paremmin? Nykyisessä versiossa shiftrekisterille syötettävät signaalit generoidaan softalla. Hidasta! Meillä kuiteskin on käytössä rautatason SPI. Toiseksi kerroksen valitsevia transistoreja ohjataan myös shiftrekisterillä. Hidasta! Voitaisiin pyhittää mikrokontrollerilta kokonaan oma portti sitä varten.

Kaivetaan kaapista hiukan tavaraa ja tutkitaan.

Nasha + ShiftregisterSeuraavanlainen setuppi: Nasha (AtMega32), 74HC595 Shiftrekisteri ja muutama ledi.

Ajetaan yksi tavu sisään softapohjasesti.


for(uint8_t i = 0; i < 8; i++) {
    PORTB &= ~(1 << CLOCK); //Clock LOW

    PORTB &= ~(1 << DATA); //Clear data bit
    PORTB |= (((0b10100010 >> i) & 0x01) << DATA); //Set data bit

    PORTB |= (1 << CLOCK); //Clock HIGH
}

PORTB |= (1 << LATCH); //Latch
PORTB &= ~(1 << LATCH);

Lopputulos näyttää seuraavalta

Softapohjanen shitrekisterin ohjausNasha sykkii 16 MHz kelloilla joten

Latex formula

Reilu viisikymmentä sykliä yhteen bittiin. Koko tavuun pyöreät 400 ja koko kerrokseen hiukan yli 2600. Kaikki kerrokset, kun on käyty läpi, niin syklejä on tuhlattu melkein 210 tuhatta. Eli 16 MHz kellotaajuudella yhdestä sekunnista kuluu 1.3% ledien vilkutteluun.

Datasheetistä löytyy SPI:n kohdalta seuraavanalinen taulukko.

SPI Clock

SPI Control Register – SPCR 

• Bits 1, 0 – SPR1, SPR0: SPI Clock Rate Select 1 and 0

These two bits control the SCK rate of the device configured as a Master. SPR1 and SPR0 have no effect on the Slave.

SPI Status Register – SPSR:

• Bit 7 – SPIF: SPI Interrupt Flag 

When a serial transfer is complete, the SPIF Flag is set. An interrupt is generated if SPIE in SPCR is set and global interrupts are enabled. If SS is an input and is driven low when the SPI is in Master mode, this will also set the SPIF Flag. SPIF is cleared by hardware when executing the corresponding interrupt handling vector. Alternatively, the SPIF bit is cleared by first reading the SPI Status Register with SPIF set, then accessing the SPI Data Register (SPDR). 

• Bit 0 – SPI2X: Double SPI Speed Bit

When this bit is written logic one the SPI speed (SCK Frequency) will be doubled when the SPI is in Master mode (see Table 58).

Eli asettamalla SPR1 ja SPR0 nollaksi sekä SPI2X ykköseksi saadaan SPI sykkimään kellotaajuudella, joka on puolet kontrollerin taajuudesta. SPIF kertoo meille, kun SPI on lopettanut hommansa.


SPCR = (1 << SPE) | (1 << MSTR) | (1 << DORD); //Enable SPI, Master Mode, LSB first
SPSR |= (1 << SPI2X); //Double speed

SPDR = 0b10100010; //Send byte
while(!(SPSR & (1 << SPIF))); //Wait for transfer is complete

PORTB |= (1 << LATCH); //Latch
PORTB &= ~(1 << LATCH);

SPI 8MHzSkooppi sen todistaakin. Nätisti jutellaan shiftrekisterille 8 MHz:n nopeudella. Eli tuhlamme kaksi sykliä yhteen bittiin, tavu = 16 sykliä, kerros = 1024 sykliä ja koko kuutio = 8192 sykliä. Säästettiin semmonen 200 tuhatta sykliä. Nyt käytämme sekunnista 0.05 prosenttia shiftrekisterien ohjailuun. Muutos on kuiteski reilut 90%. Ei paha parannus.

Katsotaan mihin tämä etenee.

Posted in Jotain aivan muuta | Tagged , , , , | Leave a comment

Companion Cube

Tämä on arkistodumppi wanhan blogin ainoasta postauksesta, joka sai kunnian säilyä.

Companion Cube

Serveri hyvän aikaa hyrrännyt hyllyllä paljaana ja sain vihdoinkin aloitettua kotelon teon! Taisin mainita aikaisemmassa postauksessa, että kotelosta tulisi Portalista tuttu Companion Cube. Continue reading

Posted in Jotain aivan muuta | Tagged , , | 1 Comment

Lotto ja satunnaisuus

Välillä tai oikeastaan usein kuulee ihmisten suusta sitä, että lottonumerot noudattaisivat jotain tiettyä kaavaa tai sääntöä. Esim. viimeksi tuli numero X, joten sitä ei voi tulla tällä kierroksella tai ei yleensä tule noin isoja lukuja jne. Lista on loputon.

Matematiikka olisi pahemmin rikki, jos edellinen kierros vaikuttaisi jotenkin todennäköisyyksiin loton tapauksessa. Jokainen rivi on yhtä todennäköinen. Jopa se että viime viikon voittorivi tulisi uudestaan.

Mutta jos kuitenkin uskotellaan vielä hetken aikaa, että olisi joitakin maagisia numeroita, niin tilastoissahan niiden pitäisi näkyä. Vai?

Miltäs näyttää?

Taikka Iso-Britannian loton (joo niillä on numeroita vähän enemmän) voittonumeroiden esiintymiset vuodesta 1994.

Joo-o. Tasasta on.

Posted in Höpinät | Tagged , , | Leave a comment