Kostky.org

Diskuse o stavebnicích => Technic => LEGO Robotics => Téma založeno: milanv kdy 19.10.2017, 13:50:22

Název: (vlastní) (společný projekt) MJ Brick
Přispěvatel: milanv kdy 19.10.2017, 13:50:22
MJ Brick


(https://farm5.staticflickr.com/4454/37741453786_2b6356152b_n.jpg) (https://flic.kr/p/Zv5Pjs)
MJ Brick - Arduino ovládání LEGO modelů (https://flic.kr/p/Zv5Pjs)

(https://live.staticflickr.com/4504/37758387772_12083fd974_n.jpg) (https://flic.kr/p/ZwzBcJ)
MJ Brick v akci (https://flic.kr/p/ZwzBcJ)

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 (http://www.kostky.org/forum/index.php?topic=49617.0). 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í:


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:



(https://live.staticflickr.com/4454/37741454316_6f1aa0cbbe_n.jpg) (https://flic.kr/p/Zv5PtA)
MJ Brick a mikrosvětýlko (https://flic.kr/p/Zv5PtA)

(https://live.staticflickr.com/4461/37741454006_b30ce84404_n.jpg) (https://flic.kr/p/Zv5Pof)
MJ Brick s mikrosvětýlkem v akci (https://flic.kr/p/Zv5Pof)

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.
Název: Re:(vlastní) (společný projekt) MJ Brick
Přispěvatel: Martins kdy 19.10.2017, 14:38:54
WOW!
Název: Re:(vlastní) (společný projekt) MJ Brick
Přispěvatel: linhi kdy 19.10.2017, 15:39:39
Super!!
Název: Re:(vlastní) (společný projekt) MJ Brick
Přispěvatel: Jonas kdy 19.10.2017, 16:32:46
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.
Název: Re:(vlastní) (společný projekt) MJ Brick
Přispěvatel: milanv kdy 22.10.2017, 18:38:13
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 (https://images.brickset.com/sets/images/6480-1.jpg) 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 (https://www.pololu.com/product/2135), miniaturní spínaný zdroj.
Název: Technický popis MJ Brick a možností osvětlení
Přispěvatel: milanv kdy 15.01.2019, 11:24:10
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 (https://www.gme.cz/led-0603-cool-white-60-130), 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 (https://www.gme.cz/oboustranny-kolik-zl201-02g) na drátky k LED se zapichují vedle sebe do "panelu" jako např. tento (https://www.gme.cz/dutinkova-lista-bl840gd)). 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 (https://arduino-shop.cz/arduino/1686-modulovy-driver-servo-motoru-pro-arduino-pca9685-16-kanalu-12-bit-pwm-1501231841.html) 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 (https://www.pololu.com/product/2135). 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.
Název: Re:(vlastní) (společný projekt) MJ Brick
Přispěvatel: Foton kdy 15.01.2019, 13:09:51
Zajímavé  8)
Název: Re:(vlastní) (společný projekt) MJ Brick
Přispěvatel: Jonas kdy 15.01.2019, 14:16:34
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?
Název: Re:(vlastní) (společný projekt) MJ Brick
Přispěvatel: milanv kdy 15.01.2019, 14:24:11
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.