Rušení

Chcete si postavit robota, ale tak nějak nevíte kudy do toho?
Odpovědět
haas

Rušení

Příspěvek od haas » 05 led 2014, 21:35

Dobrý den,
vím že toho píši mnoho, ale popisuju zde vše co jsem vypozoroval ohledně problému.PROSÍM PORAĎTE MI.

postavil jsem si robota na podvozku tank 02, který se prodává ve snail instruments.Základní deska s elektronikou je z větší části shodná s touto http://www.josefnav.cz/RCB.html vpodstatě to byla předloha ze které jsem vycházel.Moje úprava spočívá v napájecím stabilizátoru.Zvolil jsem spínaný zdroj lm2576-T, který je zapojen takto http://www.hobby-hour.com/electronics/l ... ulator.php .Napájení je 8ks NiMH akumulátory o kapacitě 2500mAh.
Dále jsem kvůli nedostatku vstupú/výstupů vytvořil pomocnou desku.Jako mozek je na každé desce mikrokontroler atmega 328, které komunikují po sběrnici I2C.

Mikrokontroler na hlavní desce slouží k řízení motorků pomocí H můstku L293D(mám i náhradu SN754410NE).Motorky , které se dodávají k převodovce tamyia jsem nahradil jinými motorky kvuli daleko menšímu odběru proudu.Provozní napětí mají 6V a na volnoběh 80mA, při zablokování 800mA.Dále je zdeLCD displej,IR přijmače sfh 5110-38 a vstupy enkoderů od motorů.

Na pomocné desce je vstup ultrazvukového dálkoměru srf 05, serva pro otáčení dálkoměru a vstupy od reflexních závor pro sledování čáry.

Můj zásadní a snad neřešitelný problém zpočívá pravděpodobně v rušení od motorů.CELÁ ELEKTRONIKA I MOTORY JSOU NAPÁJENY Z JEDNOHO ZDROJE.Toto řešení není asi úplně vhodné, ale u menších robotů jsem se s ním často setkával a tak jsem to použil také u mého robota.Napájení motorů jde napojit na stabilizovaných 5V(zdroj to v pohodě utáhne jeho proud je max 3A což vůbec nedosahuju), nebo je můžu připojit přimo na baterii nebo lze použít úplně SAMOSTATNOU baterii jen pro motory.

Problém se projevuje při následujícím programu: MCU na pomocné desce změří vzdálenost překážky utrazvukem a naměřená data odešle po I2C do hlavního MCU, ten vyhodnotí data a podle nich spustí motory dopředu nebo dozadu.Čili má udržovat konstantní vzálenost od překážky.

CO DĚLÁ ROBOT PO ZAPNUTÍ NAPÁJENÍ:proběhne změření vzálenosti(na srf blikne dioda signalizující měření),data se odešlou do hlavního MCU, spustí se motory.Nyní zůstanou motory neustále běžet, nebo po pár vteřinách se jeden motor zastaví a druhý běží.Následně většinou ještě jednou problikne dioda na ultrazvuku, ale to je konec jakékoliv činosti robota.Utrazvuk dále vůbec neměří motory neustále točí jedním směrem a nic nereaguje.NĚKDY ROBOT FUNGUJE CCA15 VTEŘIN jeNže pak opět přeStane fungovat.POKUD ODPOJÍM MOTORY A NECHÁM ZAPLOU JEN ELEKTRONIKU VŠE PRACUJE!!!! MOTORY JSOU ODRUŠENY třemi kondezátory 100nF(1 mezi každý pol a obal a třetí mezi oba poly)

Podotýkám že při odpojených motorech a zaplém servomotoru, který se otočí doleva 1s pauza pak doprava zde proběhne měření ultrazvukem 1s pauza a neustále dokola VŠE FUNGUJE).Jaké odrušení má servo?

Zkoušel jsem dát přímo na baterie kondenzátor(low esr) 1000uF jestli náhodou nedochází k prudkému chvilkovému poklesu napětí, ale bezvýsledně.Také jsem ke káždémů mcu a h můstu dal co nejblíže keramický kondenzátor 100uF opět bezvýsledně.
Celého robota jsem za 4dny rozebral a složil nesčetněkrát a probdil nad problémem několik nocí.
Také jsem našel doporučení pro měření srf05, aby po měření byl stup přepnut na výstum(používám senzor ve 3 pinovém režimu) tato úprava programu se zdála být funkční, ale po necelé minutě provozu se problém znovu objevil.

Dnes jsem zkušebně provedl následující.Nechal jsem zaonutý hlavní mcu, který po vteřině zapl motory a po vteříně opět vypl. Toto fungovalo bezchybně( ikdyž včera toto samé dělalo stejný problém-po pár cyklech zastali motory běžet a hotovo)NECHÁPU.
Následně jsem nahrál program1 a nechal pomocné mcu vysílat po vteřině signály po I2C pro zapnutí a vypnutí motoru-EJHLE ono to fungovalo.Tak jsem použil původní program pro měření s ultrazvukem a ZASE TO NEŠLO.ZNOVU JSEM NAHrÁL PROGRAM1 PRO CYKLICKÉ ZAPÍNÁNÍ MOTORŮ A TEN UŽ ZASE NEFUNGOVAL.

MOC VÁS PROSÍM PORADTĚ JAK JEŠTĚ MÁM ODRUŠIT MOTORY NEBO KDE MŮŽE BÝT PROBLÉM.JE TO SPÍNANÝ ZDROJ?OPRAVDU JSEM ZOUFALÝ.

Vetšinou robot funguje tak půl minuty po delší odstávce třeba 5 minut.Přikládám i fota.Podotýkám že kondenzátory na motorech nejsou k obalu mototru přípájeny přímo, ale jsou připájeny na měděný plech, který je natlačen na obal motoru.(kontak byměl být 100%)měřil jsem ho.
JEDINÁ MOŽNOST KTERÁ SE MI OSVĚDČILA JE SAMOSTATNÉ NAPÁJENÍ MOTORŮ. ALE TO NENÍ TAK JEDNODUCHÉ, PROTOŽE BATERIÍ BY BYLO MOC A NENÍ JE KAM DÁT A TAKÉ ZVYŠUJÍ HMOTNOST.
Přílohy
pohled zboku.jpg
spínaný zdroj.jpg
odrušovací kondenzátor..jpg

Uživatelský avatar
Dex
Administrátor
Příspěvky: 886
Registrován: 16 úno 2013, 14:26

Re: Rušení

Příspěvek od Dex » 05 led 2014, 22:25

Celkové schéma by nebylo?

Na I2C jsou předpokládám pull-up odpory?

Já na malých robotech používám jen jednu baterii běžně (na třech různých robotech) a nikdy jsem neměl problém. Napájení pro motory ale odebírám přímo z baterie před stabilizací pro elektroniku. Pak mám tlumivku a až pak stabilizuji.
"all your robots are belong to us"
robodoupe.cz | rxd.cz | codetory.cz

Uživatelský avatar
jrt
Příspěvky: 1334
Registrován: 17 úno 2013, 17:13

Re: Rušení

Příspěvek od jrt » 05 led 2014, 22:44

Problémů může být spousta, takže to zkusíme krok za krokem.
1. Projevuje se problém, i když napájíte motory přímo z baterie?
2. aby odrušení motorů správně fungovalo, musí být nejen připojeny kondenzátory na jeho kostru, ale kostra motoru musí být spojena vodičem se záporným pólem baterie, aby kovový obal motoru vytvořil stínění.
3. je vhodné vložit do obou vodičů, vedoucích k motoru, malou tlumivku, třeba tuhle.
4. spínané zdroje jsou velice citlivé na správný návrh plošného spoje, především je zcela nutné, aby byly všechny zemní vývody spojeny samostanými vodivými cestami do jednoho bodu, nejlépe na záporný pól (0V) výstupního konektoru. Předpokládám, že jste použil správný typ rekuperační diody a elektrolytický kondenzátor C2 je v provedení low ESR, určený pro spínané zdroje.
5. Pokud motory řídíte obvodem L293D, pak zařaďte mezi výstup procesoru a jeho řídící vstupy (I1, I2, EN) rezistory, přibližně 1k (viz zde). Obvod L293D se jinak zasekáva a přestává pracovat.

Tolik pro dnešek a pokud se nic z těchto zásahů neosvědčí, budeme pokračovat příště...
jrt
hobbyrobot.cz, profirobot.cz
edurobot.cz, robodoupe.cz

haas

Re: Rušení

Příspěvek od haas » 06 led 2014, 06:48

Ano, pull up rezistory na I2C jsou.
Problém je ikdyž napájím motory přímo z baterie a následně upravuji napětí pwm.
Spojit obal motoru s kostrou jsem jednou zkoušel, ale bez výsledků.Ještě to vyzkouším.
Vodivé cesty jsou spojeny nejkratšími možnými cestami v jednom bodě.Dioda je také správná i kondonzátor.
Ty odpory mezi mcu a L293D už jsou přímo na plošném spoji, při studování L293D před návrhem spoje jsem náhodou narazil na informace o problémové funkci.Rezistory jsou 1kohm.Ono se problém vyskytuje ikdyž použiji sn754410, který by měl mít neřesti L293D vyřešeny.

Určitě vyzkouším tlumivku.Ta indukčnost tlumivky je nějak přesně daná?

Děkuji za rychlou reakci, jak to bude možné, tak to vyzkouším.

Uživatelský avatar
adamh
Příspěvky: 62
Registrován: 24 úno 2013, 23:10
Bydliště: Opava / Praha
Kontaktovat uživatele:

Re: Rušení

Příspěvek od adamh » 06 led 2014, 10:51

U MCU nevidím 100nF kondíky (ale to jen tak ze cviku, problém bude spíš jinde).
“We’re all pathetic and creepy and can’t get girls. That’s why we fight robots.” –Kripke (TBBT)
Osobní web: adamh.cz

Uživatelský avatar
jrt
Příspěvky: 1334
Registrován: 17 úno 2013, 17:13

Re: Rušení

Příspěvek od jrt » 06 led 2014, 12:28

Určitě vyzkouším tlumivku.Ta indukčnost tlumivky je nějak přesně daná?
Není, stačí indukčnost v řádu jednotek mikrohenry, tedy třeba i jen pár závitů drátu na feritové tyčce.

Pokud nepomohlo nic z toho, co jsem radil, pak se domnívám, že je chyba někde ve špatně propojených deskách. Nechybí vám někde zemní spoj, případně není někde přerušený spoj na plošném spoji?

Pokud nepomůže vůbec nic, pokusil bych se na robota podívat v Hobbyrobotu, ale musíme se předem domluvit na termínu.
jrt
hobbyrobot.cz, profirobot.cz
edurobot.cz, robodoupe.cz

Uživatelský avatar
Dex
Administrátor
Příspěvky: 886
Registrován: 16 úno 2013, 14:26

Re: Rušení

Příspěvek od Dex » 06 led 2014, 16:55

Já tam mám 22 uH ale ta hodnota není myslím kritická.
"all your robots are belong to us"
robodoupe.cz | rxd.cz | codetory.cz

haas

Re: Rušení

Příspěvek od haas » 06 led 2014, 19:56

Tak jsem dnes sehnal tlumivky 10uH na 1 A.Dal jsem na každý kabel z H můstku do motoru jednu a také jsem přidal ke každému integrovanému obvodu keramický kondenzátor 100nF.Bohužel problém se okamžitě po zapnutí projevil znovu.Opravdu ztrácím sílu to řešit.Nemáte PROSÍM nějaké další nápady?

S tou zmínkou o špatném kontaktu:je možné že je by se špatný kontakt projevoval jen při společném napájení motorů a elektroniky?Při samostatném napájení se zdá, že to funguje.
Ještě musím zmínit, že mikrokontroléry jdou spíš nejdou do patice vůbec narvat.Z výroby jsou nožičky tak roztahnuté, že je musím pořád přehýbat a rvát to tam na silu.Už se mi stalo, že data po sběrnici nešly a jak jsem trochu jednočip zamčkl do patice tak to chvíli fungovalo.Tedy se ptám, jestli by to mohlo být špatným kontaktem v patici.Ale když to chvíli funguje tak to tím nebude, nebo ano?
Také jsem spojil obal motoru se zemí.Pokud odpojím motory tak to funguje.

Prosím nějaké další nápady?

Hobbyrobot je v Praze a já jsem z moravy.To je už moc daleko :-)

Tak ještě něco doplním.Teď jsem zkoušel napájet motory přímo z baterie a použil jsem pwm,po zapnutí se ŠÍLENĚ rozblikala dioda na ultrazvuku a pak to znovu přestalo fungovat.Může to souviset s srf 05?

Uživatelský avatar
jrt
Příspěvky: 1334
Registrován: 17 úno 2013, 17:13

Re: Rušení

Příspěvek od jrt » 06 led 2014, 21:52

Poslední šance:
1. vytáhněte všechny obvody z patic, zkontrolujte, zda nemají ohnuté nebo jinak poškozené piny, narovnejte je zpět do správné polohy tak, že vždy jednu řadu opřete o hranu stolu a zatlačíte (na ten integráč, proboha! :D). Do patic musí jít zasunout jemným tlakem. Zkontrolujte, zda kontakty v paticích nejsou poškozené. U precizních patic při nešetrném zacházení rády praskají pájecí piny hned pod paticí, zkontrolujte to.
2. odpojte úplně ten spínaný zdroj a nahraďte ho provizorně lineárním stabilizátorem 7805. Nezapomeňte na keramiky 100n na jeho vstupu i výstupu.
3. proměřte všechny spojovací kabely, přes které teče napájecí proud, zda opravdu vedou.

Osobně jsem přesvědčen, že vám někde chybí zemní nebo napájecí spoj a proud teče přes vnitřní ochranné diody I/O portů integrovaných obvodů.

Teď mne napadlo - nemáte na L293 prohozené napájení logiky a výkonové, tedy pin 8 a 16, případně, nemáte je spojeny?
Hodně by pomohlo skutečné schéma zapojení, případně ještě fotografie plošného spoje ze strany spojů.

Úplně poslední šance je, že mi robot pošlete poštou a já se na něj podívám, ale - po pravdě řečeno - bez vaší asistence nemusím na závadu přijít.
jrt
hobbyrobot.cz, profirobot.cz
edurobot.cz, robodoupe.cz

petr-kubac
Příspěvky: 91
Registrován: 24 úno 2013, 15:43
Bydliště: Frydek - Mistek
Kontaktovat uživatele:

Re: Rušení

Příspěvek od petr-kubac » 07 led 2014, 18:28

Pokud je procesor a motory společně "až za stabilizátorem" tak je to špatně. Procesor by měl mít samostatný stabilizátor i kdyby v robotu měla být nějaká 7805 navíc.

Potom další věc znáte "protiresetovací diodu" - nechci si dělat reklamu ale to je věc, kterou každému opakuju od roku 2004 http://petr-kubac.blog.cz/1202/kubacova ... ad-opakuje

A potom další věc - jak máte napsanou obsluhu I2C - tam někdy stačí drobný puls navíc a obslužná procerudra "zabloudí" v nějaké smyčce - kdy čeká na signál, který nepřijde, protože za platný bit považovala zákmit na sběrnici.
"The best computer language is a solder" - "Nejlepší programovací jazyk je pájka" - Bob Pease
http://petr-kubac.blog.cz/

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 1 host