(vlastní) (společný projekt) MJ Brick

Založil milanv, 19.10.2017, 13:50:22

Předchozí téma - Další téma

0 Uživatelé a 1 Host prohlíží toto téma.

milanv

MJ Brick



MJ Brick - Arduino ovládání LEGO modelů


MJ Brick v akci

Zde bych vám rád představil naše ovládání LEGO modelů pomocí Arduino. Tuto "ovládací kostku" jsme vymýšleli spolu s Jirkou (jbohac) a každý máme ve výsledku mírně odlišný design. Já víc AFOLský (žádná modifikovaná kostka, čisté LEGO řešení, rozebíratelné), Jirka má design vhodný k dětem (např. na hraní u ovládání vláčků).

Inspirací nám byl samozřejmě Jonas se svým ovládáním. Ale potřebovali jsme verzi z hotových komponent, protože neumíme leptat tišťáky apod. Zároveň něco malého, schovaného v krabičce :) Takže co naše krabičky umí:


  • ovládat až 4 motory - libovolným, ale jedním stejným napájením (tedy buď si zapnete 4,5 V nebo 9 V ale ne obojí naráz)
  • ovládat až cca 10 LED v základní verzi
  • ovládat LED s různou úrovní jasu pomocí PWM
  • připojit senzory LEGO i jiné. Jak psal Jonas, je jich spousta legálních z Číny.
  • bluetooth - na programování krabičky i ovládání modelů
  • displej - na ladění programu apod.
  • připojit zařízení přes I2C sběrnici

Poslední bod si zaslouží vysvětlení, protože vypadá magicky, ale přitom je to úžasná a praktická věc: I2C je standard komunikace pro taková maličká zařízení jako je toto. V obchodech pro elektrokutily tak lze sehnat na to všechno možné: teploměry, tlakoměry, dotyková čidla, barevná čidla... Co si vymyslíte. A také tzv. "rozšířující GPIO desky" - což je sada dalších 8 nebo 16 "kontaktů" (pinů) na ovládání dalších LED apod. Navíc se tato zařízení dají na I2C sběrnici řetězit za sebe, takže můžete mít klidně 64 LED různě blikajících apod. Nebo rozšiřující deska poskytující 16 PWM pinů, takže můžete ovládat plynule zhasínající LEDky nebo třeba servomotorky, až 16 a dalších 16 zřetězit na další desce...

Chytré osvětlení modelů

Na betlému jsou motory ovládané přímo LEGO ovladačem, MJ Brick není na ně potřeba. Co tam MJ Brick dělá, je ovládání světýlek. A právě jakých světýlek, to je to, oč tu běží - aneb můj druhý dětský sen se po 30 letech splnil:




MJ Brick a mikrosvětýlko


MJ Brick s mikrosvětýlkem v akci

Hlavní vlastností těchto miniaturních světýlek je totiž to, že se vejdou do téměř libovolného modelu bez jakýchkoliv úprav LEGO. Žádné vrtání průchodů kabelů, žádné řezání kostek. Drátky jsou tak tenké, že se dají secvaknout mezi dvě kostky nebo plate, volně projdou škvírou mezi dvěma bricky vedle sebe apod. LED je tak malá, že se vejde do prostůrku mezi vrškem studu spodní plate a plate nad ní. Takže vše je zcela secvaklé, nikde se nic neřeže, nevrtá, nebrousí. Barvu LED si dá každý jakou si koupí, drátek si protáhne kudy potřebuje. Tak třeba v betlémě svítí kometa nebo lucernička v ruce minifiga v dole.

Inspirací mi byl projekt JK Brickworks na jejich ovládací kostku (místo SBrick). V propagaci na ní ukázali podobná světýlka, koupená někde v Kanadě. Jsou větší, takže se nevejdou úplně všude (např. děravým studem se myslím neprotáhnou), a hlavně jsou nekřesťansky drahá. I na poměry, co jsou AFOLové ochotní dávat za LEGO. Takže tohle je má vlastní výroba, za veliké pomoci a výuky od mého kamaráda Vojty.
Pán na Žlutém hradě

Martins


linhi


Jonas

Skvělé. Jsem rád, že jste se nechali inspirovat a těším se na nějaké hezké aplikace.

Jinak, pokud jde o desku plošných spojů, tak ještě jednu nebo dvě neosazené mám. Nenabízel jsem je, protože se mi zdálo, že téma Arduino a Lego moc Kostkařů neoslovilo.
Jonas - Můj Brickshelf

milanv

#4
Arduino a lego dohromady dává úplně netušené možnosti! Já ti dík, žes nám to takhle ukázal a "pošťouchnul" nás.
Snad se mi povede najít si někdy čas i na různé miniaturní projekty, které by důstojně navázaly na dobu, kdy i firma LEGO uměla dělat malá, hezká zajímavá elektrická oživení stavebnic a ne jenom PF, kde i jeden konektor zabere místa víc než půlka počítače. Proto se snažíme dělat řešení založená na Arduino Pro mini. Krásné by bylo umět udělat shield na něj, ale na to fakt nemám :) Sám to nezvládnu a výroba na zakázku by se vyplatila až od několika tisíců kusů, co jsem se tak koukal. Takže to skládám z klasických modulů, co se dají koupit k Arduinu: bluetooth modul HC-05, motor shieldy Pololu DRV8835, miniaturní spínaný zdroj.
Pán na Žlutém hradě

milanv

#5
Technický popis MJ Brick a napojení osvětlení

Pod pojmem MJ Brick je myšlená mechanická záležitost, jak vše poskládat do co nejmenší "krabičky" z LEGO, aby se nemusely žádné kostky lepit, řezat, vrtat ani nic takového. Tím se teď zabývat nebudu, popíšu jak to funguje:

základ

Základ je Arduino, konkrétně tady Arduino mini běžící na 3.3V (existuje i varianta na 5V). Arduino je mikropočítač určený pro výuku programování a robotiky, takže je snadné se s ním naučit, nepotřebuje žádné speciální laboratorní vybavení na programování a internet je plný návodů i přímo výukových materiálů pro začátečníky, včetně Arduino prostředí pro PC, kde si jednoduše napíšete program a kliknete na "upload". Ovládání svítivé diody je hned mezi úkoly pro začátečníky. Samozřejmě i tak musí člověk počítat s tím, že se bude mít dost co učit - odměna je pak, že člověk není limitovaný tím, co kdo prodává (jen jeden typ blikače apod.) a může si užít novou úroveň zábavy s LEGO, vymýšlet jak naprogramovat blikání plamínku atp. Úkol ztlumit osvětlení, aby nezářilo příliš, je pak vyloženě triviální - zatímco s prodávanými "stavebnicemi" často nemožný. K tomu vlastní ovládání přes Bluetooth a další "legrácky" - to všechno je odměna.

osvětlení

Na osvětlení modelu jsem si určil stejná pravidla jako pro MJ Brick: co nejmenší a použitelné bez vrtání a řezání kostek. Samozřejmě ideálně tak, aby se dalo světýlko dát už na hotový model bez jeho rozebírání (nebo s co nejmenším) a na - pro diváka - i na nejnečekanější místa jako třeba do ruky panáčka.

Vybral jsem tedy LED v pouzdře 0603 - vejdou se i mezi dvě secvaklé plate. V ČR se dají koupit např. v GM, na e-bay se dají pořídit už naletované na tenké smaltované drátky, jako z cívek. Já si ten drátek koupil zvlášť, v tloušťce 0.15 mm, ay se pohodlně vešel do škvíry mezi dvěma bricky (0.2 mm). Jiná řešení používají miniaturní destičky s LED a odporem. Já využil výhody Arduina, které má na svých výstupních pinech už rovnou omezený proud, takže vhodně zvolená LED se nespálí ani přímo připojená. Je potřeba tady uvážit variantu Arduina (3.3V nebo 5V) a mít základní znalosti elektriky.

konektory

Tak, máme miniaturní LED na tenoučkých drátcích. Dá se dát kamkoli a krásně svítí. Jen jak ji spojit se zbytkem systému, aby se dala opakovaně použít na výstavách atp.? To se nakonec ukázalo jako největší úskalí a se zvoleným řešením nejem ještě úplně spokojený. Miniaturní konektory se dají koupit až od tisícových kusů, na zakázku. Tak jsem jako jednotlivec moc možností neměl. Nakonec jsem tedy použil řešení nejjednodušší, tj. hřebínky (kolíky na drátky k LED se zapichují vedle sebe do "panelu" jako např. tento). Je to velmi skladné, napojí se tak mnoho LED vedle sebe a mohou se přímo ovládat tím Arduinem. Jediná nevýhoda je mizerná mechanická trvanlivost těch kolíků: často se utrhávají ty drátky od kolíku, kolíky se začnou viklat ve svém černém plastu atp. Chce to lepší řešení - a do té doby opatrnost :)

osvětlení - pokročilé

Arduino samo o sobě dokáže ovládat jen asi 10-15 LED (podle typu Arduina) a jen 4-6 z nich umí stmívat pomocí PWM. Pokud chceme ovládat pohodlně více LED, je potřeba tzv. rozšiřující desku a vyřešit napájení. Např. PCA9685 nabízí 16 konektorů pro PWM ovládání. Navíc se k ní snadno přivede nezávislé napájení, silnější než kolik zvládne Arduino (to má limit cca 100 mA celkem, to jsou vlastně jen 4 LED). Deska je připojená k Arduinu pomocí I2C, takže se dají řetězit za sebe a můžeme takto ovládat mnoho LED nezávisle: naprogramovaná různá poblikávání ala plamínek atp.

ovládání motorů

Jeden druh rozšiřujících desek k Arduinu jsou tzv. ovladače motorů. Fungují tak, že malým napětím a malým proudem (co leze z Arduina) ovládají větší napětí a proud, které potřebuje motor. Můj oblíbený miniaturní (pro dva motory) je DRV8835 od Pololu. Tak můžeme ovládat programově motory v LEGO, stačí si vyrobit kabel/redukci z PF konektoru např. na ten hřebínek.

Zároveň lze tyto ovladače lze využít na větší řetězy sériově zapojených LED.

programování Arduina

Když už bude Arduino, např. v podobě MJ Brick, součástí modelu, nastane otázka, jak ho snadno programovat v případě nutných změn v ovládání (přidání světýlka atp.). Buď se nechá přístupný konektor (USB nebo "čtyřpin" sériové linky, na který se připojuje konvertor na USB ("USB to Serial")) nebo se na sériový konektor připojí modul Bluetooth. Pak můžeme Arduino přes BT jak programovat, tak ho dokonce využívat k ovládání programu. Přepínat na dálku různé módy osvětlení i ovládat autíčko.
Pán na Žlutém hradě

Foton

Kdo chce hledá způsoby, kdo nechce hledá důvody.

Jonas

Milane, jak se bráníš záměně polarity, když máš symetrický konektor a navíc oba přívodní drátky stejné barvy? A jak se ti daří pájení drátků k SMD vývodům LED?
Jonas - Můj Brickshelf

milanv

#8
Polaritu jsem si říkal, že si budu označovat na ty kolíky - z jedné strany plastu červenou tečku. Ale v praxi je jednodušší s tím malým počtem, co mám (cca 12), to prostě zkusit.

Pájet ty LED není tak strašné, jak se zdá: pocínuju nejdřív plošky na LED, pak odizolovaný konec drátku a ty dvě pocínované věci už se pak spojí snadno. Paradoxně nejtěžší pro mě je to co by mělo být asi nejsnazší: pocínovat ten drátek. Nějak se mi ten cín často chytá špatně (asi špatně škrabu ten smalt).

Vybavení mám primitivní: na kusu kartonu mám nalepenou kaptonovou pásku lepidlem vzhůru. Na tu položím LED a můžu pájet - drží přilepená celkem dobře, takže simuluje třetí ruku. Podobně při letování drátků ke kolíkům: v kartonu mám zapíchnutou řadu dutinek, do té zastrčím ten dvojkolík a zase mi drží sám a simuluje třetí ruku.
Pán na Žlutém hradě