Author Archives: Ondřej Píštěk

Oživení levné 3D tiskárny Rebel 2

Dostala se mi na stůl jedna nefunkční 3D tiskárna, která vlastně nikdy nefungovala. Majitel si nakoupil díly a stavba se mu trošku vymkla z rukou. Potíže neustávaly a už si nevěděl rady. Tiskárna Rebel 2 je sice dobrá, ale kombinace levných dílů a malých zkušeností se může nejednomu kutilovi vymknout. Sám jsem si prošel spoustou slepých cest a zničil spoustu vybavení. Vím tedy jak může taková konstrukce jednomu zatopit.

Pro mě byla tato zkušenost taky trochu nová, protože jsem zatím neměl tu čest s nejlevnější variantou 3D tiskárny Rebel. Rozhodl jsem se tedy sepsat článek pro ty, kteří by chtěli touto cestou jít. Zádrhelů není zrovna málo a podobných uživatelů myslím taky ne.

  1. Nešetřete na elektronice: elektronika RAMPS má v základním provedení nevyhovující výkonové tranzistory a pojistky. Pojistky budou způsobovat náhodné vypínání v průběhu provozu. Výkonové tranzistory se budou přehřívat a po čase odejdou úplně. Vsaďte raději na českého dodavatele, který vám buď zaručí dobře dimenzované díly a nebo správné součástky alespoň přibalí. Sám jsem šel cestou dražší elektroniky Smoothieboard, ale to asi není pro každého.
  2. Věnujte pozornost návodu při sestavování. Je to těžké, protože funkce některých dílů vám může unikat, dokud nezačnete tiskárnu kalibrovat. Například plastové matky u vyhřívané podložky slouží k jejímu výškovému nastavení a podle toho musí být sestaveny.
  3. Pravoúhlost a tuhost konstrukce je základním kamenem. Pokud odfláknete kostru, zbytkem už to nedoženete.
  4. Konstrukce na pojezdových tyčích musí jezdit maximálně volně. Pokud vám v pojezdech bude něco drhnout se časem poškodí povrch tyčí a na kvalitě tisku to poznáte. U levných konstrukcí přijdou chyby rychleji, protože neobsahují povrchově kalené tyče. Pohyblivé části je vhodné mazat olejem, aby vám déle vydržely.
  5. Ventilátor chladiče trysky musí být vždy v provozu. Nezapojujte jej přes ovládané piny, ale přímo na napájecí zdroj. Ušetříte si zapečený plast v trysce pokaždé, když se vám zasekne elektronika.
  6. Ozubené řemeny musí být napnuté tak, aby při zastavení motoru neumožňovaly konstrukci pohyb. Některé 3D tiskárny k tomu používají i pružinové napínáky. U 3D tiskárny Rebel se řemeny napínají pomocí šroubů u motoru, které jsou osazeny v oválných otvorech.
  7. K tiskárně si kupte požární senzor a ověřte si, kde máte nejbližší hasičák či hydrant. Tohle doporučení nesouvisí s 3D tiskárnami Rebel, ale obecně s 3d tiskárnami a životem. Detektor kouře stojí třeba v Ikea pár korun a může vám zachránit spoustu peněz nebo možná i ten život. Kdokoliv provozuje tiskárnu bez ochrany je u mě hazardér.

Celá oprava dobře dopadla, tiskárně se dostalo několika vylepšení a majitel může začít tisknout. Teď už pro něj bude snadnější naučit se co je potřeba. Když máte mrtvý stroj, na kterém je tisíc chyb, tak je nedovedete často ani identifikovat. Špatně sestavená konstrukce vám dokola podráží nohy, pojistky vám náhodně vypínají stroj a vy nevíte odkud vlastně začít. Když se pokazí funkční tiskárna, tak snadněji najdete tu jednu, dvě věci co umřely.

Na závěr malá reklama na dokonalé vylepšení tiskárny od JRC. Nechali vyrobit řemenice vysoustružené z kluzného plastu. Tyto řemenice jsou za dlouho dobu nejlepší investice, co jsem do tiskárny dal. Pokud jsem na nějakou radu zapomněl, tak to s radostí solte do komentářů. Pokud máte ve skříni nefunkční tiskárnu, tak to s radostí solte do emailu ondrej@pistek.eu. Něco vždycky vymyslíme.

Pozor na DX.com EU direct

Dnešní článek bude o tom jak jsem si nabil hubu s Deal Extremem. Objednával jsem si před vánocemi dárek. Našel jsem si na DX USB mikroskop odhadem použitelný na moje bastlení. DX mi nabídlo další volby  “is available in EU direct with Free Expedited delivery” a já skočil přesně na to na co jsem skočit měl. Domníval jsem se, že DX konečně omezené množství produktů handluje rovnou z nějakého EU skladu. Teď když ty weby procházím tak vidím co jsem byl za jelito. 2-4 business days vypadá hezky, ale není to shipping neboli dodání, nýbrž handling tedy odeslání. Cha, to dělá i klasické DX.com. Na webu eud.dx.com se při hledání dozvíte o skvělých výhodách tohoto webu a v informacích taky to, že odesílají z číny.

Suma sumárum tedy zaplatite za produkt o cca dolar navíc a nedostanete vůbec žádnou výhodu. Zboží jsem objednal 11.12.2014 a dnes 8.1.2015 aby toho nebylo málo, mi přišel dopis od proclívací pošty Praha 120. Takže se jako trouba korunuji nadruhou a ty dva maticové dipleje, které jsem přihodil, budou asi nejdražší co jsem kdy koupil.

Na recenzi mikroskopu si tedy musíte ještě chvíli počkat, než se s tím celníci nějak poperou. A než to já jako korunovaný trouba zacvakám.

Ulomený USB disk

Usb disky jsou dnes úplně všude. Dost pravděpodobně se vám v tašce či batohu taky nějaký válí. Schválně si představte, co by se stalo, kdyby zrovna tento disk dnes přestal fungovat. Máte tam taky jedinou kopii dat tak jako uživatel z dnešního příběhu.

V tomto případě to nebylo tak jednoduché, že by disk ležel v batohu a přestal fungovat. Většinou to bývá barvitější příběh. Viděl jsem už USB flashky ukopnuté od počítače položeného na zemi, viděl jsem flashky rozšlápnuté i flasku přiskřípnutou ve skříni. Znám i flashky které přestanou fungovat po pádu na zem.

V nejlepším případě máte k dispozici zálohu dat a tak vašim jediným problémem může být jak USB disk ekologicky zlikvidovat. Ke mně se většinou dostávají ty disky, které jsou plné data bez záloh. V lepším případě pomůže disk rozebrat a přepájet ohnutím poškozená spojení konektoru. Pokud je úder dostatečně silný jako tentokrát, tak je potřeba konektor nahradit novým. Pokud to ještě vylepší výrobce USB disku špatně navrženými spoji tak se celá akce stává lepším dobrodružstvím. Tentokrát jsem litoval, že nemám k počítači připojený mikroskop, abych se mohl o cestičky podělit. Disk dostal nový konektor napájený na nová místa na desce a data se podařilo zachránit. Výsledná sestava nevypadá jako něco k chlubení, ale data žijí a to se počítá.

Ulomený USB flash disk

Jaké si z toho vzít ponaučení? Zkontrolujte si svoje USB disky a hezky si odzálohute data, o terá nechcete přijít. Taky mě můžete kontaktovat a můžeme se domluvit na konzultaci na téma jak to dělat automaticky, bezpečně a pohodlně. Jako poslední možnost si uložte můj kontakt aby jste věděli komu se ozvat, až ti ten svůj elektronický paleček zničíte.

Falešné FTDI čipy a problémy okolo

Pokud vám tato kauza unikla tak zkusím nastínit proč by vás mohla nebo nemusel zajímat. Firma FTDI vyrábí několik populárních čipů na komunikaci s USB pomocí jednodušších sériových protokolů. Jeden z jejich čipů je součástí tak oblíbeného a populárního Arduina, konkrétně u mě varianty FT232RL.  Čip to není levný ani drahý, ale 137,- Kč (u Farnell.com) může cenu ultralevných čínských hraček docela ovlivnit. Samozřejmě tedy vznikly levné čínské klony/padělky. Tak jako u spousty jiných čipů se svět nezbořil. Vyskytly se články kde došlo k odhalení padělků, bastlíři se trochu ohnili, že křemík má horší kvalitu a je toho na něm málo,ale svět se točil spokojeně dál.

Situace se určitě nelíbila lidem z FTDI, kteří přicházeli o vývar. Chytré hlavy dumaly a přišly s dost sporným řešením. Firma FTDI vydala chytrou aktualizaci ovladače do počítače, která dokázala falešné čipy identifikovat a prakticky zničit (nastavením USB ID 0). Pokud jste tedy byli tím chudákem co někde přišel k padělku tak jste rázem měli nefunkční padělek. Nebo jako já 5 nefunkčních padělků Arduino Nano. Věřte mi poznat pouhým okem rozdíl mezi čipy není vůbec jednoduché. Na obrázku je pravý a falešný vedle sebe, lépe je vyfotit neumím.FTDI pravý a falešný

Problém se stal ještě palčivějším po té co FTDI protlačilo tohle svinstvo skrze Windows update. Rozhořela se velká diskuze jestli je to správně nebo špatně. Jestli je to etické chování ze strany FTDI. Co jsem četl tak firma vzala svůj krok zpět a do Windows se dostane verze ovladače, která s padělky pouze nekomunikuje, ale ale aktivně je neničí.

Co s tím pokud jste se stali obětí téhle legrácky? pro mě zatím neotestovaný postup je pomocí aplikace FTprog dostat zpět použitelné ID a použít starší verzi ovladačů, která čipy nevypíná. Tímto samozřejmě překročíte několik licenčních ujednání FTDI o způsobu použití jejich SW. Nebo vysvětlíte staršímu ovladači, aby kamarádil s čipem s USB ID 0, chrochro to je prasárnička. Já si příště rozhodně rozmyslím od koho budu kupovat arduino (vadné i dobré byly z dx.com). Taky zcela určitě budu sledovat diskuzi o tom, čím nahradit čipy firmy FTDI a budu upřednostňovat alternativy. Co kdyby je příště napadlo ovladačem falešný čip zapálit.

Doplnění 31.10.2014: narazil jsem na netu na informaci, že čip CY7C65213-28PVXI je prý ideální náhradou pro falešné FTDI, je pinově kompatibilní a nestojí mnoho. Problém je jeho špatná dostupnost při současné poptávce a taky šílené ceny poštovného. Pokud byste se někdo chystali k objednávce, nebo našli dodavatele bez poštovného za 40€ tak mi dejte určitě vědět.

Stavba 3D tiskárny 1: Proč, co, za kolik

Díl 1 z 1 v seriálu 3D print

3D tiskárnu považuji za velice užitečný nástroj pro každého kutila. Bohužel současný a možná trvalý stav do budoucna není úplně uspokojivý pro zájemce o koupi hotového bezproblémového řešení. 3D tisk je poměrně věda a je potřeba mu věnovat dost času a taky peněz, aby byl výsledek použitelný. Pokusím se popsat svoji cestu k 3D tisku, i když je stále na začátku, tak snad pomůžu ostatním začátečníkům a nerozhodnutým potencionálním uživatelům.

Do konstrukce 3D tiskárny jsem se dlouho nemohl odhodlat. Pořád jsem měl pocit, že používané konstrukce jsou punkové zvěrstvo, kterého se nechci účastnit. Situace se časem obrátila k lepšímu, až jsem narazil na konstrukci tiskáren Rebel. Základní konstrukce z relativně levných hliníkových profilů mě opravdu zaujala. Po lehkém průzkumu trhu jsem začal objednávat součátky a stavba se začala pomalu rýsovat. Pokud pod dojmem různých reportáží očekáváte stavbu jako podle návodu z IKEA tak jste na velkém omylu. Stavba tiskárny pořád skrývá dost komplikací, které musíte vyřešit. Tisk samotný taky není úplně srovnatelný s tiskem na tiskárně papírové. Nejde jednoduše připojit tiskárnu k počítači a tahat z ní výtisky jako králíky z klobouku.

Pokud vás zajímá co vše jsem již dokázal vytisknout tak si můžete projít galerii.

Co je třeba rozmyslet na začátku:

  1. Konstrukce 3D tiskárny
    Pokud pominu nákup tiskárny jako hotového celku, tak musíte zvolit konstrukci do které se pustíte. Já zvolil Rebel II a své volby nelituju. Stavba se mi zdá stabilnější než většina Reprap klonů a cena konstrukce není nijak závratná. Pro první tiskárnu rozhodně nedoporučuji opouštět standardní rozměr tiskové plochy 200×200 a jeden extruder.
  2. Elektronika
    Tady je výběr poměrně jednoduchý, protože většina lidí volí na adruinu založené desky s oddělenými drivery motorů. Po zkušenostech s malým CNC jsem na Kickstarteru objednal desku Smoothieboard , která nabízí několik zajímavých vylepšení. Popis elektroniky a Smoothieboardu má připravený do jednoho z dalších dílů.
  3. Smoothieboard
  4. Hotend
    Tady začíná magie.  Na výběr je velké množství hotových hotendů, celých extruderů, nebo jejich částí. S konstrukcí Rebel máte již posun filamentu vyřešený a zbývá vybrat hotend. Pro kompletní extruder by jste museli předělat konstrukci Rebela. Já zvolil DS hotend na filament 3mm s tryskou 0.4mm a nebyla to volba ideální.
    V základě vybíráte mezi dvěma rozměry filamentu 3mm a 1,75mm, kdy 1,75 myslím nabízí větším výběr materiálu a můj příští hotend bude tohoto rozměru. Velikost trysky rozhoduje o rychlosti a přesnosti tisku, pro začátek považuji 0,4 za dobrý základ, na druhém hotendu zkusím 0.3.
    Další patrametr výběru se dá zjednodušit na celokovové hotendy nebo hotendy s peek izolací. DS je celokovový, zvolil jsem jej kvůli dostupnosti a zdání odolnosti pro začátečníka. Nevýhodou celokovů je potřeba je aktivně chladit malým větrákem, dále je prý problematické s nimi tisknout PLA. Oproti tomu Peek hotendy prý nemají s PLA problém, ale pro změnu kladou prý větší odpor materiálu a proto je potřeba věnovat pozornost konstrukci a nastavení posuvu filamentu do trysky.

Pro lepší představu přikládám hlavní položky rozpočtu se kterými by jste měli počítat. Podle mých výpočtů se vedete do 10 tisíc. Pozor na to, že drobnosti jako spojovací materiál a kabeláž vás můžou nemile překvapit.

  • Plastové díly tiskárny 1200Kč
  • kovové profily 420Kč
  • vodící tyče 600Kč (koupíte i výrazně levnější když nebudete chtít přesnost CNC shopu)
  • ložiska na tyče 120Kč
  • ložiska do kladek 100Kč
  • Ozubené kladky 100Kč
  • ozubený řemen 120Kč
  • hotend 1500Kč (aktuálně koupíte http://www.3draty.cz/ za 800,-)
  • zubatice extruderu 200Kč
  • heatbed 450Kč
  • deska pod heatbed 100Kč
  • závitová tyč 40Kč
  • pružné spojky 120Kč (možno řešit hadicí nabo jinak)
  • elektronika arduino based 2260Kč (podle rebel obchodu, myslím že jde poskládat levněji), Smoothieboard 2800Kč(cena bez poštovného, objednával jsem výhodněji z kickstarteru, takže aktuální cenu přesně nevím)
  • termistory 140,-
  • zdroj (použil jsem ATX co se mi válel doma)
  • krokové motory 1000Kč
  • sklo na heatbed 50Kč
  • ventilátor extruderu
  • vypínače endstopů
  • konektory (zjednoduší práci, ale můžou znamenat výdaje na nářadí)
  • spojovací materiál
  • kabeláž

V dalších dílech se pokusím víc rozebrat mechaniku, elektroniku a první tisky. Pro ilustraci přikládám fotku jak to u mě aktuálně vypadá. Je jasné, že budete potřebovat prostor kde tiskárnu složíte.

Prostor pro 3D tiskárnu

Článek vychází z mých zkušeností a pokud máte na některou ze zmíněných věcí jiný názor podělte se o něj prosím v komentářích. Nepovažuji se zatím za žádného 3D tiskového guru :-).

3D tisk

Tak jsem to dokázal, dokončil jsem zase jeden projektík a máme doma funkční 3D tiskárnu. Je to Rebel2 s elektronikou Smoothieboard, má za sebou teprve první tisky, ale pochlubit se musím.

Na fotkách uvidíte, kalibrační schody na kterých se tisk dá testovat, funkční šroub s matkou pro malou na hraní a taky pár zmetků ať víte, že to není jenom tak :-).

2014-05-24 16.58.50 2014-05-25 10.16.54 2014-05-25 10.16.45 2014-05-24 16.59.35 2014-05-24 16.59.24 2014-05-22 22.06.51

Aktualizováno:
Postupně se učím taje a nastavení tiskárny. Na fotkách můžete vidět kameny pro hru Hive (fakt dobrá). A největší předmět jaký jsem navrhl a vytiskl, držák na kořenky do kuchyně. Jdou rozpoznat i selhání s příliš řídkou výplní v kombinaci s málo vrstvami povrchu. Pokoušel jsem se o co největší předmět s co nejmenší hustotou poloměr 8cm, tloušťka 15mm, váha pouhých 45 gramů. Budu muset trochu polevit, protože tenhle konkrétní výtisk budu muset před použitím dost opravovat, ale i tak to považuji za obrovský úspěch.

3D tištěný držák na kořenky 3D tisky

Arduino: Jak ho zničit

Tento článek není návod. Pokud se máte rizikům vyhnout musíte je znát. Žádný z popsaných způsobů nezkoušejte, dost pravděpodobně vám to může způsobit újmu na majetku a někdy i na životě. Soupis zveřejňuji proto, aby jste se popsaným chybám mohli vyhnout ve svých konstrukcích.
Propojení I/O pinů k zemi (GND)
Pokud by jste měli propojený pin přímo na zem a nastavili jej současně jakou výstupní s hodnotou logické 1, splníte podmínky pro překročení výstupního proudu na I/O portu a pravděpodobně zničíte arduino.
Důvod: Podle specifikace procesoru je maximální výstupní proud z I/O pinu 40mA s interním odporem 25ohmů na pin. Propojení mezi +5 a 0V v tomto případě může znamenat proud 200mA, což je dost na zničení procesoru.
Propojení I/O pinů mezi sebou
Když nastavíte dva piny jako výstupní, na jenom nastavíte logickou 0 a na druhém 1, opět dojde ke zničení portů.
Důvod: stejně jako v předchozím případu maximální výstupní proud z I/O pinu 40mA s interním odporem 25ohmů na pin. Propojení mezi +5 a 0V v tomto případě může znamenat proud 200mA, což je dost na zničení procesoru.
Překročení napětí na I/O pinu
Pokud připojíte k pinu napětí vyšší než 5,5V, tak jej poškodíte.
Důvod: na vstupu pinů jsou ochranné diody pro ochranu čipu před elektrostatickým výbojem. Tyto diody nejsou dimenzovány na dlouhodobé zatížení a proto při překročení napětí o 0,5V dojde k jejich zničení a nebudou dál chránit zbytek čipu a může tedy náledně dojít k poškození ostatních částí.
Otočená polarita napájení na Vin
Pokud by jste napájeli adruino pomocí pinu Vin a zapojili napětí obráceně tak dojde k poškození čipu.
Důvod: vstupní pin Vin není zapojen přes stabilizátor a je napojen rovnou na ATmega čip a ten není schopen otočené napájení přežít. Současně zničíte také regulátor na desce, protože na něj pošlete napětí z opačné strany.
Připojení napětí vyššího než 5V na port 5V
Pokud přivedete na port 5V libovolné větší napětí tak zničíte praděpodobně většinu součástek arduina a ohrozíte i USB port počítače.
Důvod: Na desce není žádná ochrana před zvýšeným napětím na 5V portu. Tento port je napojen přímo na procesor a čip USB. Je častou chybou domnívat se, že situaci zachrání stabilizátor arduina, ale ten slouží pouze ke stabilizaci napětí připojeného k napájecímu konektoru. Jakékoliv zvýšené napětí, které k němu přijde z desky, není schopen zachránit.
Připojení napětí vyššího než 3,3V na port 3,3V
Připojením zvýšeného napětí na port 3.3V můžete zničit připojené shieldy nebo vybavení připojené k tomuto portu. Pokud překročíte 9V zničíte regulátor arduina, ATmega čip a můžete poškodit USB port počítače.
Důvod: port 3,3V také není chráněn regulátorem a proto zvýšení napětí přímo ovlivní části napájené tímto napětím, Pokud překročíte 9V po zničení 3,3V regulátoru projde zvýšené napětí do dalších částí napájených 5V.
Propojení Vin a Gnd
Pokud propojíte piny Vin a Gnd tak dojde k poškození ochranné diody a může dojít i k roztavení cest na plošném spoji.
Důvod: pin Vin nemá žádnou ochranu proti vysokému proudu.
Napájení Arduina pinem 5V a používání Vin jako výstupního portu pro napájení periferií
Když chybně prohodíte používání portů Vin a 5V a přivedete napájení na 5V a odebíráte proud z Vin, spálíte regulátor arduina.
Důvod: arduino nemá žádnou ochranu proti zpětnému proudu přes regulátor
Překročíte 13V na vstupu reset
Pokud zapojíte víc jak 13V na vstup reset tak zničíte procesorový čip ATmega.
Důvod: maximální hranice napětí na reset vstupu je 13V
Překročíte maximální výstupní proud z arduina
Pokud nastavíte 10 I/O portů jako výstupní a zatížíte každý z nich proudem 20mA ( 10 svítících diod) tak překročíte celkvý výstupní proud a arduino zničíte.
Důvod: maximální výstupní proud pro celé ATmega čip je 200mA.
Přepojování výstupů za běhu
Tomuto se vyhněte vždy pokud to bude možné. Můžete zničit arduino a ledacos co je k němu připojené,
Důvod: pokud přepojíte pin když jím prochází proud, vygenerujete napěťovou špičku která může v krajním případě zničit Arduino,
Použití indukční zátěže(motor, relé, solenoid) bez ochranné diody
Pokud použijete indukční zátěž bez ochranné diody před zpětným proudem může dojít ke zničení procesoru.
Důvod: Indukční zátěže můžou vytvářet silné napěťové špičky, k jejichž odstranění slouží právě ochranná dioda zapojená paralelně k zátěži, když potom indukční zátěž vygeneruje zpětný proud, ten je zkratován diodou a neohrozí arduino.
Samozřejmě existuje spousta dalších kreativních způsobů jak arduino zničit, ale kdo by o to stál. Snad vám popsané způsoby umožní užívat si s arduinem déle a radostněji bez ztrát. Informace pro článek jsem bral ze stránek o rugeduinu (arduino které má zabudovanou ochranu před většinou těchto chyb, web obsahuje i vysvětlující schémata) a ještě jednoho anglického webu.

Arduino YÚN: vzhůru do oblak

ArduinoYunFront_2

Zdroj arduino.cc

Do oblak samozřejmě myslím do cloudu. Zatím poslední model arduina je totiž zaměřen hlavně na připojení k internetu a využití nejrůznějších služeb a cloudových řešení. Předchozí modely šlo samozřejmě také připojovat k síti pomocí ethernet shieldu, ale pro využívání internetových služeb chyběl Adruinům výpočetní výkon a také paměť. A tak to doposud vypadalo, že zajímavější konstrukce s využitím internetových služeb zůstanou doménou RaspberryPI, BeagleBone nebo podobných desek se silnějšími procesory. Na arduino zbývaly drobnosti, které neopustí bezpečí lokální síťě. Novým modelem však Arduino překračuje vlastní stín. Arduinu YÚN si bere na pomoc vestavěné rozšíření Atheros AR9331 pojmenovaného Linino. Na tomto rozšíření běží linuxová distribuce založená na OpenWRT. Zde možná někteří z vás možná zpozorněli, ano je to ten samý linux, který lze provozovat na wifi routerech a který se stal součástí sousty zajímavých konstrukcí. Linino kromě připojení k ethernetu poskytuje i WiFi(802.11b/g/n) a jako bonus slot na SD kartu a USB host.

Díky Lininu již nebude problém využívat libovolných internetových služeb, které byly doposud arduinům zapovězeny. Třeba s důvodů nezbytné autentizace, která je pro arduino ve spojení s ethernet shieldem hodně těžkým oříškem. OpenWRT je také schopný vašim konstrukcím nabídnout dodatečné zabezpečení. Nbudete se muset bát vystrčit do internetu třeba ovládání topení v domě. Nápad to rozhodně není nikterak nový, na internetu je spousta starších konstrukcí, která využívá ke komunikaci s okolním světem malý WiFi routr připojený k arduinu sériovou linkou a nebo pomocí ethernetu. Nové ardunino ovšem nabídne sjednocení řešení a tím snadnější sdílený těchto složitějších konstrukcí.

Cena 52EUR není nikterak přemrštěná za to co je k dispozici, uvidíme jak to bude vypadat u českých distributorů. Rád bych brzo nabídnul konstrukci založenou na této desce, ale na cestě z číny je malý routřík TP-LINK TL-WR703N a tak další konstrukce bude pravěpodobně založená na něm. Dvě síťové hračky v jednom měsíci by bylo i na mě dost 🙂

Doplněno: Díky upozornění kamaráda jsem se trochu víc kouknul na napájecí systém. Arduino YÚN již neobsahuje vestavěný regulátor, na což je potřeba myslet a přidat regulátor pokud budete chtít napájet arduino jinak než přes USB. Bonusem je příprava na napájení POE. Pokud nevíte tak POE (Power Over Ethernet) je způsob napájení zařízení přes ethernetový kabel současně s připojením k počítačové síti. Bohužel je Arduino YÚN na POE pouze připraveno a k využívání je nezbytné dokoupit modul. Pro jistotu ještě dodám, že na POE musíte mít vybaven router a nebo jiný síťový prvek, aby se napájení mělo jak do ethernetu vůbec dostat.
Rozhodně se jedná o užitečné rozšíření, díky kterému můžete mít například různé senzory rozmístěné po domě a připojovat je jenom a pouze ethernetovým kabelem.

Arduino 7: časování s millis() a více činností najednou

Díl 7 z 7 v seriálu Arduino

Jak někteří začínáte psát tak se mi začínají množit dotazy jak kombinovat více činností na jednom arduinu, případně jak vykonat nějakou část programu, když zrovna probíhá delay(). To totiž opravdu nejde, protože máme jednoduchý procesor a když dělá delay tak nebude současně dělat nic jiného. Nezoufejte, protože tu máme funkci millis() a když se naučíte pracovat s časem jinak tak toho arduino zvládne mnohem víc najednou.

Pokud bych měl rozdíl mezi těmi dvěma přístupy přirovnat k normálnímu životu tak, delay funguje tak, že se zastavíte uprostřed chodníku, koukáte na hodinky a dokud není 12 tak nic neděláte a čekáte na oběd. Naproti tomu millis funguje tak, že na hodinky kouknete, zjistíte, že je jedenáct a tak jdete dělat něco jiného, za čas na ně kouknete znovu a pokud už bylo dvanáct tak jdete na oběd. Z toho vyplývá výhoda i nevýhoda, můžete dělat i něco jiného než koukat na hodinky, ale taky možná přijdete na oběd o něco později než přesně ve dvanáct. To zpoždění ovšem pro většinu malých aplikací bude naprosto nepodstatné a pokud už budete psát ovládací program pro jaderný reaktor tak si na to dáte pozor.

Použití ukážu na příkladu ke kterému nebudeme potřebovat nic jiného než arduino připojené k seriovému portu. Dejme tomu, že potřebujeme aby co vteřinu blikla led dioda na půl vteřiny. S použitím delay jednoduchý úkol.

int led = 13;
void setup() {
  pinMode(led, OUTPUT);
}

void loop() {
  digitalWrite(led, HIGH);
  delay(500);
  digitalWrite(led, LOW);
  delay(1000);
}

A teď druhý úkol, pokud po sériovém portu něco přijde tak to vrátit zpět. Pro začátek to nebudeme spojovat s blikáním LED.

void setup() {
  //konfigurace rychlosti serioveho portu
  Serial.begin(9600);

  while (!Serial) {
    ; // cekani na pripojeni serioveho portu, pry nezbytne pouze u desky Leonardo
  }

  // Prvni vypis na seriovy port
  Serial.println("Seriovy port aktivni");
}
void loop(){
  if (Serial.available()) {
    int inByte = Serial.read();//nacti znak ze serioveho portu
    Serial.write(inByte); //vypis znak na seriovy port
  }
  //delay(1000); //pokusna pauza
}

Na příkladu si můžete snadno vykoušet jak drtivý dopad má použití delay na rychlost odezvy. Stačí vyzkoušet odeslání textu a potom zkusit druhý program s odkomentovaným řádkem s pauzou. A teď pokud si delay nahradíte blokem pro blikání diodou tak bude zpoždění ještě o polovinu delší a to obsluhujeme jedinou blikající diodu.

Po přepsání na millis a spojení obou úkolů, by program s blikáním LED mohl vypadat asi takhle.

unsigned long aktualniMillis; //aktualni cas
unsigned long predchoziMillis; //cas poseldni akce
boolean led_svetlo; // promenna pro stav LED
int led = 13; //port pro LED

void setup() {
  pinMode(led, OUTPUT);
 //konfigurace rychlosti serioveho portu
  Serial.begin(9600);

  while (!Serial) {
    ; // cekani na pripojeni serioveho portu, pry nezbytne pouze u desky Leonardo
  }

  // Prvni vypis na seriovy port
  Serial.println("Seriovy port aktivni");
}
void loop(){
  aktualniMillis = millis(); //podivam se na hodinky
  if(led_svetlo){ //potrebuju LED zhasnout nebo rosvitit?
    if(aktualniMillis - predchoziMillis > 500) { //pokud zhasnout ubehlu uz 500ms od posledni akce?
            predchoziMillis = aktualniMillis; //v tento cas jsem provedl posledni akci
            led_svetlo=LOW; //zhasni led
    }
  }else if(aktualniMillis - predchoziMillis > 1000) { //pokud zhasnout ubehlu uz 1000ms od posledni akce?
            predchoziMillis = aktualniMillis; //v tento cas jsem provedl posledni akci
            led_svetlo=HIGH; //rozsvit led
  }
  digitalWrite(led, led_svetlo); //aktualizace stavu LED
  if (Serial.available()) {
    int inByte = Serial.read();
    Serial.write(inByte);
  }
}

Program neobsahuje jediný delay a přesto obsluhuje dvě pauzy a plynule odbavuje tok na sériovém portu. Základní myšlenou je nechat cyklus funkce loop co nejrychlejší a brzdit jej pouze vykonáváním akcí pokud je to potřeba. Kód je o něco složitější, je potřeba proměnné na to aby si pamatovaly časy, ale běh je potom plynulý. V některém dalším díle se podíváme ještě na přerušení. Využití přerušení je postup, kterak donutit arduino obsloužit opravdu neodkladné akce bez ohledu na to co je právě rozdělané.

Arduino 6: Modelářská serva

Díl 6 z 7 v seriálu Arduino

Modelářské servo je velice zajímavá součástka pokud máte v úmyslu tvořit pohyblivé věci. Servo je v podstatě elektromotor s převodovkou a elektronikou, která za vás vyřeší řízení motoru. Na rozdíl od elektromotoru se klasické servo neumí kontinuálně otáčet, ale zvládá pohyb v rozmezí 180 stupňů. Pro kontinuální rotační pohyb se musí servo upravit a nebo koupit již upravené. K tomu se dostaneme později.

Noname servo z Dealextreme a servo značky Hitec

Serva koupíte v modelářských obchodech a nebo stejně jako většinou součástek přes eBay či DealExtreme z Číny za pár korun. Pokud si servo objednáte tak dostanete přibližně to co vidíte na fotkách. Modul serva a nějaké příslušenství, které se používá k přenosu síly v modelařině typicky na pohyb křidélek na letadle a podobně.

Po elektrické stránce se servo ovládá pomocí impulsů 1ms – 2ms. Kdy impuls dlouhý 1ms znamená 0° natočení , 1.5ms 90° a 2ms 180°. Doporučená frekvence je 50Hz. Pro řízení pomocí arduina ovšem použijeme již připravenou knihovnu a ta tyto detaily pohlídá za nás.
Ze serva vedou tři dráty: červený kladné napájení, černý záporné napájení (na čínských servech může být i hnědý), žlutý řídící impulsy. Typicky se serva fungují na 5V napájení, ale vždy si dejte pozor na specifikace toho co koupíte. Některá serva s větší silou potřebují vyšší napětí, aby dosáhly udávané síly. Pokud začínáte s obyčejným malým servem tak jej můžete napojit přímo na arduino podle následujícího obrázku.

Schéma připojení serva k Arduinu

Pro ovládání budeme potřebovat již slíbenou knihovnu, která je teda součástí instalačního balíku arduina, ale použití knihoven jsem v návodech ještě neukazoval.
Je to poměrně jednoduché na začátku  přidáme knihovnu.

#include <Servo.h>

To bude fungovat pokud je knihovna Servo.h správně přidaná v adresáři “libraries”. Dále v definicích vytvoříme proměnou typu “Servo”.

Servo mojeServo;

Pak v sekci “setup” nadefinujeme ke kterému portu máme servo připojené.

mojeServo.attach(9);

Následně můžeme libovolně volat metodu “write” a říkat pod jakým úhlem má být servo natočeno(0-180).

mojeServo.write(uhel);

Dohromady by tedy mohl celý příklad vypadat takto:

/*
Program na ovládání serva
www.pistek.eu
*/

#include <Servo.h>

Servo mojeServo;

void setup(){
   mojeServo.attach(9);//definice portu připojení serva
}

void loop(){
   mojeServo.write(0);//nastav servo na uhel 0
   delay(500);//počkej 500ms
   mojeServo.write(30);//nastav servo na uhel 30
   delay(60*1000UL);//pockej 60*1000ms
}

A co to bude dělat. Nadefinujeme servo připojené na port 9, jednou za vteřinu přejde na 50ms do úhlu 0 a pak se zase vrátí na úhel 180. Ještě vás na příkaldu může zarazit “UL” u výpočtu dlouhé pauzy. UL znamená Unsigned Long, neboli typ 32 bitů kladné číslo. UL dává vědět překladači, že výsledek výpočtu může být až takhle velký.  A celá tato konstrukce může sloužit přeba jako pravidelná spoušť fotoaparátu pro tvorbu takzvaných timelapse snímků.

Ještě poslední věc a tou je slibovaná úprava na kontinuální rotační pohyb. Takto se serva předělávají na pohonné jednotky pro jednodušší roboty. Šířkou impulsu potom neřídíte úhel natočení, ale rychlost a směr otáčení. Stačí tedy následně ke dvěma upraveným servům připevnit kolečka a máte jednoduchého robotka na diferenciální ovládání. Samotná úprava serva je možná jenom u některých serv a vyžaduje jeho rozebrání. Vevnitř je potřeba ubrousit zarážku na posledním ozubeném kole tak aby se mohlo otáčet o celou otáčku. V elektronice je potřeba nahradit potenciometr, který slouží jako zpětná vazba s informací o úhlu natočení, dvěma odpory které jsou polovičního odporu než původní dráha potenciometru. V některých servech je možné servo jenom mechanicky odpojit a nastavit na střed. Sám jsem úpravu ještě neprováděl, takže vlastní fotky nemám. Možná dodám později, zatím se můžete podívat třeba na tento návod.