Close

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.
Aktuálně je na stránce zobrazeno 15 příspěvků - 1. až 15. (celkem z 18)
  • Autor
    Příspěvky
  • #8443
    honzakono
    Účastník

    Gentlemen,

    vi nekdo jak cist servo pozice z SSC32?
    potrebuju byt schopen nacist pozice zpet do Arduina.

    dik.

    #8444
    Aleš
    Úč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?

    #8445
    honzakono
    Účastník

    Ano, 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.

    #8456
    Zbyšek Voda
    Správce

    Pokud 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.

    #8459
    honzakono
    Účastník

    diky 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.

    #8460
    Zbyšek Voda
    Správce

    To „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?

    #8461
    honzakono
    Účastník

    omlouvam 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.

    #8462
    Zbyšek Voda
    Správce

    Díky za upřesnění.
    Jaká serva používáte?

    #8465
    Aleš
    Účastník

    Ně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/d0lvegUDVYE

    #8472
    honzakono
    Účastník

    pouzivam 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.

    #8473
    honzakono
    Účastník

    vas 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.

    #8474
    Aleš
    Účastník

    Tak 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.

    #8475
    honzakono
    Účastník

    aha, 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.

    #8476
    Aleš
    Úč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 🙁

    #8477
    honzakono
    Účastník

    mrknete 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.

Aktuálně je na stránce zobrazeno 15 příspěvků - 1. až 15. (celkem z 18)
  • Pro reakci na toto téma se musíte přihlásit.