SSC32 servo kontroler
Úvodní stránka › Fórum › Hardware › Ostatní typy desek › SSC32 servo kontroler
- Toto téma obsahuje celkem 17 odpovědí. Do diskuze (3 diskutující) se naposledy zapojil uživatel Aleš a poslední změna proběhla před 8 roky a 2 měsíci.
-
AutorPříspěvky
-
19.9.2016 v 9:23 #8443honzakonoÚčastník
Gentlemen,
vi nekdo jak cist servo pozice z SSC32?
potrebuju byt schopen nacist pozice zpet do Arduina.dik.
19.9.2016 v 9:42 #8444AlešÚčastníkŘekl bych, že to nejde. Ale podle mne, když si někam nastavíte servo, tak ho tam máte, a víte, kam jste si ho nastavil. Nebo ne?
19.9.2016 v 11:07 #8445honzakonoÚčastníkAno, kdyz si nekam nastavim servo, tak vim kde je :))))
… tedy pokud tam skutecne doputovalo, a to je prave ten problem, co potrebuji resit.
jednim z tech duvodu proc bych potreboval zjistovat pozice servo motoru je kontrola/debugovani.
Cteni pozice serva primo z Arduino boardu je mozne a celkem snadne.
Predpokladam, ze to same by melo byt mozne i z SSC32, jinak by byl tenhle servo kontroler
dost retardovany, cemuz se mi nechce verit, uvazime-le, ze se jedna o jeden z nejpouzivanejsich.19.9.2016 v 17:46 #8456Zbyšek VodaÚčastníkPokud chcete mít přehled o poloze serva, musíte mít servo, které je na to přizpůsobené a má na sobě například nějaký přídavný senzor. Třeba na tomhle servu: https://www.adafruit.com/product/1404 je vyvedený potenciometr, takže měřením analogové hodnoty máte přehled, kam až servo dojelo.
I kdyby šla informace o nastaveném úhlu z desky SSC32 získat zpátky (což myslím nejde), bude tato informace stejně irelevantní, jako kdybyste si jenom pamatoval hodnotu, kterou jste na servu nastavil – neměl byste reálný feedback o poloze serva, ale jenom domnělou hodnotu, kterou si SSC32 myslí, že servo má nastaveno.
19.9.2016 v 18:08 #8459honzakonoÚčastníkdiky za info.
SSC posila do pocitace (skrze SSC-sekvencer) informaci o tom jestli servo jiz dosahlo zadanou pozici, nebo jeste ne. pravda je, ze to dela na vyzadani skrze USB pripojeni.
dokaze takto udajne posilat i udaje o pozici. doufal jsem, ze by mohlo umet stejne informace posilat i do ridiciho boardu (Arduino, v mem pripade) skrze TX / RX, kdyz
timto zpusobem pokyny prijima.
takze by to naznacovalo, ze je SSC nejmene alespon pro sebe schopne pozice zjistit.
je to divny, ze Arduino umi cist pozici serva, ktere je k jeho pinu pripojeno,
ale dedikovany servo kontroler to same neumi.
tohle cteni pozic je z mnoha duvodu dost potrebna vec (zvlaste kdyz ma clovek 18 servo motoru na hexapodu) nejen pro pripadne korekce za chodu.19.9.2016 v 18:37 #8460Zbyšek VodaÚčastníkTo „dosažení zadané pozice“ podle mě znamená to, že vy pošlete do SSC32:
„nastav servo 1 na úhel 100°“
Není ale možné, aby servo bylo okamžitě z 0° nastaveno na 100°, takže řídící elektronika s určitou rychlostí odesílá „nastav 1°“, „nastav 2°“, …, „nastav 50°“, …, „nastav 100°“ a v tento moment dojde k potvrzení, že je servo na požadované pozici.To je ale pouze potvrzení, že řídící elektronika odeslala servu, aby se nastavilo na 100°. Jestli tam ale servo skutečně je, to nikdo neví. Většinou ale na těch 100° skutečně je.
Podle původní otázky jsem myslel, že chcete mít skutečnou informaci o poloze serva (zjištěnou například nějakým senzorem). Teď to ale vypadá, že se jenom ptáte, jak získat z SSC32 informaci, že už servo bylo nastaveno na zadanou pozici. Jak to tedy myslíte?
19.9.2016 v 19:10 #8461honzakonoÚčastníkomlouvam se, jestli jsem se nevyjadril srozumitelne.
tak tedy: … vim docela jiste kdy byl poslan prikaz k pohybu na pozici (dokonce i jak dlouho by mel trvat pohyb nez pozice dosahne). vetsinou je od pohledu i docela jasne ze serva dosahla cilovych pozic.
nekdy se ale stane (z rady duvodu), ze jedno nebo vice servmotoru proste nedojdou kam maji. napriklad kdyz hexapod zakopne. v takovem pripade by bylo treba zjistit pozici serva
a pracovat s ni v nasledujicich vypoctech casu a rychlosti pohybu serva k nasledujici regulerni pozici, pripadne korekci pozice, …. nebo i korekce zbytku hexapoda …
nehlede na to, ze by se s tim daly pohodlneji delat prechody mezi sekvencemi pohybu.
cili, nejde mi o to sledovat pozice motoru celou dobu, ale spise byt schopen
kontrolovat (a pripadne korigovat) pozice periodicky, a zjistovat je kdykoliv jindy,
kdy je jejich znamost potrebna k vypoctum nasledujicich zmen pohybu/sekvence.19.9.2016 v 19:22 #8462Zbyšek VodaÚčastníkDíky za upřesnění.
Jaká serva používáte?19.9.2016 v 19:55 #8465AlešÚčastníkNějak si nedovedu představit, jak může hexapod zakopnout? 🙂 Já mám tohoto robota: https://drive.google.com/open?id=0B7XOvzuvJTLKXzE2YjREWE52QVU a v něm ta nejlevnější serva SG90. Serva jsou připojena přímo na Arduino Nano. Nikdy se nestalo, že by servo nedošlo do nastavené polohy. To by spíš něco prasklo. Jak jsem se do serva díval, tak je tam na motorek přivedené napájení, a na motorku je převodovka z několika plastových koleček. Myslím, že by asi prasklo některé z koleček, kdybych nohu nějak zablokoval.
Vám se stává, že servo nedojde na zadaný úhel?
Tady je ještě video: https://youtu.be/d0lvegUDVYE20.9.2016 v 8:08 #8472honzakonoÚčastníkpouzivam serva HS-645MG.
to „zakopnuti“ mozna nebyl tak uplne nejlepsi priklad :))) ,
ale stane se napriklad to, ze nekdy dostane servo z nejakeho duvodu povel k pozici driven nez staci dokoncit predeslou.20.9.2016 v 8:31 #8473honzakonoÚčastníkvas quadped je moc peknej a roztomilej.
zrovna jsem zacal integrovat ultrazvukovy senzor a dela mi problem
namotat ho do kodu tak, aby fungoval soustavne v pozadi.
v tomto smeru jste nejspise daleko predemnou, mozna byste mi mohl poradit.20.9.2016 v 8:36 #8474AlešÚčastníkTak to spíš 🙂
Ten hexapod je vlastní výroba, nebo koupené jako stavebnice?https://forum.arduino.cc/index.php?topic=4705.0
Tady píšou, že příkazem servo.read() se přečte jenom poslední hodnota, která byla do serva odeslaná. Skutečnou pozici serva prý přečíst nejde. Píšou, že by se musela udělat nějaká mechanická úprava – vytáhnout ze serva drát od potenciometru.20.9.2016 v 9:05 #8475honzakonoÚčastníkaha, diky,
… tak to bych chtel neco co neexistuje. no, neni to poprve a jiste ani naposled :))))muj hexapod je postavenej z nakoupenejch soucastek.
v zivote jsem byl schopen si „naprogramovat“ maximalne vlastni web-stranku ve Flashi.
takze mi programovani hezapoda trva uz rok. ale docela to davam.
nijak se nesetrim, zadnej tripod gait, ale rovnou six gait.
ted kdyz uz mam vsechny pohyby a zacal jsem pridavat HCSRO4, aby
se mohl hexapod pohybovat sam kam chce, tak jsem se rozhodl
prepsat zpusob vypoctu pozic do dokonalejsi formy.20.9.2016 v 10:32 #8476AlešÚčastník🙂
Já jsem to neprogramoval. Kroky jsem použil z hotového programu. Jenom jsem doplnil ovládání a ty věci okolo.
Dálkoměr měří jenom před krokem dopředu, jestli ho může udělat, jestli před ním není překážka. Potom měří vzdálenost stále dokola když stojí, a nic nedělá. Takže když dám před něj v tu chvíli ruku, tak udělá krok dozadu. Chůzi ovládám přes BT z telefonu. Chci ještě dodělat joystick s vysílačem z druhého arduina, ale nemám joysticky. Budu muset vykuchat nějaké dálkové ovládání od nějaké hračky 🙁20.9.2016 v 11:23 #8477honzakonoÚčastníkmrknete na dealextreme (dx.com).
je tam hromada joysticku do dvou stovek korun.
shipping je zadarmo, takze to vyjde nakonec nejspis levneji nez ta kanibalizovana hracka.20.9.2016 v 11:35 #8478AlešÚčastníkZkoušel jsem toto:
http://www.ebay.com/itm/162200559397
A to je naprosto nepoužitelné. Dráha potenciometru je tak krátká, že funguje spíš jenom jako on/off Nastavit něco mezi je takřka nemožné.20.9.2016 v 11:50 #8479honzakonoÚčastníkco muze clovek chtit a ocekavat od cehokoliv za 30Kc 🙂
20.9.2016 v 12:27 #8480AlešÚčastníkO to ani nejde, že stojí 30kč. Ono by to fungovat mohlo, ale páčka má výchylku 50″ (25+25), je moc krátká a potenciometr 10k (5+5). Tím se toho moc nastavit nedá. Ale mechanicky to není špatně udělané. V hračkách je většinou něco podobného, ale větší výchylka, a delší páčka. Proto jde nastavit i nějaká poloha mezi středem a dorazem.
-
AutorPříspěvky
- Pro reakci na toto téma se musíte přihlásit.