Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

jak zrobić "goto"

SebaLama 24 Dec 2008 09:49 3881 14
  • #1
    SebaLama
    Level 10  
    Nie znam się na elektronice za bardzo, miałem tylko 1 rok w szkole, ale kilka dni temu zrobiłem pierwszy programator i mrugającą diodę. Powiedzmy , że umiem programować w c++, java, paskal, prolog, lips.

    A wracając do tematu to chciałbym zrobić "goto" czyli urządzenie które nakieruje się na dany punkt i będzie za nim podążało:
    statyw który będzie mógł się obracać w osi z (oś do góry) i na nim 2 statyw który będzie się obracał w osi x (poziomej), na nim będzie zamontowany celownik lub kamera. obrót w koło osi z miałby się odbywać cały czas pracy urządzenia z prędkością około 0,004 stopni/sekundę, tą prędkość można by zmieniać i regulować kąt od którego zaczynamy obrót.
    Natomiast oś x miała by zadany kąt w jakim ma się ustawić.

    Ja chciałbym ustawić to goto na polu i w domu obserwować obraz na laptopie.



    Miało by to być sterowane przez komputer (najlepiej z USB) na odległość jakieś 20m i z samego urządzenia.

    Jakie części musiałbym wykorzystać? Czy ATMega16 się nada bo z nim teraz zacząłem przygodę z elektroniką? I mam kilka serw to je chciałbym wykorzystywać do sterowania.

    Jakie części były by mi potrzebne do zrobienia sterowania na odległość, jak zrealizować przesyłanie obrazu z kamerki?

    Głównie miało by to być wykorzystane do śledzenia dowolnych obiektów na niebie.
    [28-30.06.2022, targi] PowerUP EXPO 2022 - zasilanie w elektronice. Zarejestruj się za darmo
  • #2
    krzychS
    Level 29  
    0,004 stopni/sekunde - czyli ponad 4 min/stopień ? Czyżby astronomia ?

    Jaką chcesz zastosować kamerę ?

    ATMega16 można spokojnie zastosować. Problem tylko z zasięgiem 20 m przez USB.
  • #3
    bogdan_p
    Level 39  
    zacznijmy od tego że typowe serwa modelarskie odpadają , pozostają silniki krokowe z przekładnią lub serwomotor z dobrym kontrolerem i przekładnią , proponuje zapoznaj się z tematem o silnikach krokowych i ich sterowaniu https://www.elektroda.pl/rtvforum/topic594106.html , przykład sterownika do serwomotoru DC masz tu http://elm-chan.org/works/smc/report_e.html
    zasadnicza sprawa czy dasz radę wykonać te sterowniki , później dochodzi sprawa sterowania z użyciem mikrokontrolera i napisania oprogramowania
    napisałeś o sterowaniu z 20m jeżeli przewodowe to pół biedy , przy bezprzewodowym musisz zastosować dobrej jakości moduły radiowe co również wymaga doświadczenia i wiedzy w tym temacie
    za bardzo nie wiem jak chcesz rozwiązać problem podążania za tak małymi obiektami , bardzo dobra optyka jakaś matryca i dobrze napisany algorytm sterowania mechaniką , na koniec czy zdajesz sobie sprawę jak precyzyjna musi być mechanika aby odpowiadała Twoim wymaganiom
    poczytaj , przemyśl to wszystko wiem że był na zagranicznych stronach projekt sterujący z PC teleskopem na silnikach krokowych nie był zbyt skomplikowany i możliwy do wykonania w amatorskich warunkach

    PS popraw błędy ortograficzne !
  • #4
    pawci0
    Level 13  
    Do zdalnego sterowania i przesyłania obrazu polecam transceivery RFM12 - stosunkowo łatwe w obsłudze, lub droższe CC1000PP - ich zasięg podobno sięga 1km, ale są z nimi większe problemy przy uruchomieniu. Oba moduły były już nieraz opisane na elektrodzie.
    Do obsługi z komputera przez USB najłatwiej będzie chyba użyć przelotki USB->RS232, potem MAX232 no i atmega, która będzie przekazywała otrzymane dane między UARTem i nadajnikiem/odbiornikiem. Zamiast przelotki i MAX232 można też użyć bezpośrednio mikrokontrolera z obsługą USB, np. PIC18F2550, na stronie microchip'a są gotowe stacki emulujące port COM.
    Aha weź również pod uwagę ograniczoną szybkość transmisji bezprzewodowej (w przypadku RFM12 około 115kbps). W związku z tym przesyłanie dużych obrazów z kamery będzie się wiązało z ograniczonym odświeżaniem. I odwrotnie - jeśli będziesz chciał przesłać więcej klatek w ciągu sekundy, to musisz ograniczyć rozdzielczość zdjęć.
  • #5
    McRancor
    VIP Meritorious for electroda.pl
    pawci0 wrote:
    Do zdalnego sterowania i przesyłania obrazu polecam transceivery RFM12 - stosunkowo łatwe w obsłudze, lub droższe CC1000PP - ich zasięg podobno sięga 1km, ale są z nimi większe problemy przy uruchomieniu. Oba moduły były już nieraz opisane na elektrodzie.
    Do obsługi z komputera przez USB najłatwiej będzie chyba użyć przelotki USB->RS232, potem MAX232 no i atmega, która będzie przekazywała otrzymane dane między UARTem i nadajnikiem/odbiornikiem. Zamiast przelotki i MAX232 można też użyć bezpośrednio mikrokontrolera z obsługą USB, np. PIC18F2550, na stronie microchip'a są gotowe stacki emulujące port COM.
    Aha weź również pod uwagę ograniczoną szybkość transmisji bezprzewodowej (w przypadku RFM12 około 115kbps). W związku z tym przesyłanie dużych obrazów z kamery będzie się wiązało z ograniczonym odświeżaniem. I odwrotnie - jeśli będziesz chciał przesłać więcej klatek w ciągu sekundy, to musisz ograniczyć rozdzielczość zdjęć.


    Nie ma sensu sobie tak życia komplikować, po co budować dodatkowe transceivery... CC1000PP to się stosuje jak się chce mieć dobry zasięg. Przy 20m w polu wystarczy w zupełności moduł Bluetooth SPP (Serial Port Profile) jak choćby tani BTM-222. Będzie taniej i znaaacznie prościej.

    Tak czy inaczej na razie możesz zapomnieć o elektronice, do tego co chcesz zbudować potrzebna jest na prawdę porządna mechanika, silniki krokowe, najlepiej z enkoderami i duuużo pracy, możesz też zrobić to na silnikach DC z enkoderami, o bardzo dużym przełożeniu. Da się takie kupić w miarę przyzwoitych cenach.
  • #6
    SebaLama
    Level 10  
    Podstawą goto będzie 500mm okrąg, który w moich założeniach ma być obracany przez silnik, i to serwo co mam to chyba wystarczy, bo powinno wykonać 1 pełny obrót na 20 sekund (jeśli dobrze pamiętam to tyle mi z obliczeń wyszło). 1 serwo mam przerobione tak że może wykonywać pełny obrót, ma przekładnie, to może może nie będę musiał kupować silnika krokowego do którego potrzeba jeszcze przekładnie, a najtańszy kosztuje około 50 zł (+ przesyłka) z tego co znalazłem w internecie.

    A co do przesyłania danych między komputerem a goto to bluetooth może byłby dobry tylko czy będzie zasięg przez kilka ścian z cegieł i potem jeszcze kilka metrów? Gdzie mogę to kupić i czy łatwo się je programuje jak dla kogoś co dopiero zaczyna z elektroniką? Głównie zależy mi na cenie żeby było tanio.
    Można na odległość około 20 metrów przesłać dane przez przewód? Wszędzie gdzie czytałem piszą żeby odległość od mikrokontrolera nie przekraczała 1-2 metra, a w domu mam przewód do rutera (z wi-fi) i ma 20m, a jak bym chciał na zewnątrz taką skrętkę wyciągnąć to by musiała mieć z 30 metrów i troche to kosztuje i jest niemobilne. Może za pomocą wi-fi można by to jakoś zrobić czy jednak bluetooth lepszy?

    Kamerę dopiero zamierzam kupić. Może będzie miała od razu bezprzewodową łączność z komputerem.

    Goto ma być przeznaczone głównie do śledzenia gwiazd, satelit, samolotów i może innych rzeczy.
  • #7
    bogdan_p
    Level 39  
    chyba nie zdajesz sobie sprawy z dokładności z jaką musi pracować mechanika w pozycjonowaniu teleskopu , zapomnij o przerobionych serwach układ musisz mieć praktycznie bezluzowy i samochamowny
    zostaw na później sprawy komunikacji , skup się nad mechaniką i napędem osobiście uważam że silniki krokowe są idealne do tego tylko jeżeli Ty już na etapie wstępnym robisz ograniczenia finansowe to wiele nie zrobisz , musisz sobie zdać sprawę że takie urządzenie będzie sporo kosztowało jeżeli ma zachować dokładność , precyzję , powtarzalność
    zobacz sobie ten projekt https://www.elektroda.pl/rtvforum/topic619395.html
    oraz kolejny projekt http://81.190.210.45/astronomia.htm
  • #8
    McRancor
    VIP Meritorious for electroda.pl
    Muszę Cię zmartwić, ale jeżeli uważasz że 50zł/silnik to dużo to nie znadziesz nic w niższej cenie. Serwo musiałoby napędzać układ pośrednio - ta 20cm tarcza mogłaby być napędzana z boku przez serwo ze znacznie mniejszej średnicy układem pasowym.

    W przypadku przerobionego serwa będzie problem z enkoderem, potencjometr na tej tarczy odpada bo jest za mało dokładny. Tarcza zamocowana na osi łożyskowanej, dodatkowo łożysko wzdłużne do podstawy. Napęd pośredni z silnikiem szczotkowym, z enkoderem i przekładnią o znacznie mniejszym przełożeniu. Enkoder oczywiście na wale silnika. Można to robić na silniku krokowym, ale porządnym, a nie jakimś demontażem ze starego złomu.

    W praktyce o tej precyzji i tak możesz zapomnieć, chyba że masz dostęp do solidnego parku maszynowego i fachowca od obróbki materiałów.
  • #9
    SebaLama
    Level 10  
    Żadnego "złomu"" u siebie nie mam to musiał bym wszystko kupić dlatego jeszcze nie wiem co zastosuje i nie pisałem że 50 zł to dużo tylko że to najtańszy silnik krokowy jaki znalazłem ale jeszcze nie wiem czy by wystarczył. Na razie zastanawiam się jak wszystko zorganizować to nie jest nic przesądzone czy będą serwa czy silnik krokowy, i tu mam pytanie czy jest jakaś różnica w dokładności ustalenia położenia lub ruchu obu tych urządzeń?

    Odnośnie tego linku wyżej to mniej więcej o takie coś mi chodzi tylko żeby współpracowało z komputerem bezprzewodowo + kamera. Tylko w tym przykładzie zastosowano 3 mikrokontrolery, a z jednym to by były jakieś duże rozbieżności czasowe?

    Konieczne były by np. enkodery do ustalania położenia? Nie można by tego zrobić programowo? czy to by było zbyt niedokładne?
  • #10
    bogdan_p
    Level 39  
    podałem Ci dwa linki opisujące oba rozwiązania , ciekawe czy zerknąłeś do nich bo tam są odpowiedzi na wszystkie Twoje pytania ........
    cechą charakterystyczną silnika krokowego jest parametr określający kąt obrotu przy jednym kroku silnika np 0,9° / krok czyli przy sterowaniu pełnym krokiem oś silnika wykona obrót o kąt 0,9° dla silników krokowych istnieje jeszcze możliwość sterowania z podziałem kroku 1/2 , 1/4 , 1/8 itp
    dla silnika DC musisz mieć układ z enkoderem na osi silnika , np przy motoreduktorze o przekładni 1:100 uzyskasz 360° obrotu osi po redukcji odpowiada 100 pełnym obrotom silnika tzn 1obrót silnika = 3,6° obrotu osi
    jeżeli chodzi o silnik krokowy to można liczyć programowo kroki , podobnie można liczyć obroty tarczy enkodera ale pozostaje jeszcze sprawa punktu odniesienia dla wartości początkowych , można je na bieżąco zapisywać do pamięci eeprom lub prościej wyznaczyć punkt początkowy i od niego zaczynać pomiar ewentualnie ręcznie wpisać po uruchomieniu wartości odniesienia dla danego połażenia napędów
    Quote:
    Żadnego "złomu"" u siebie nie mam

    a chcesz stosować podzespoły , które się do tego zupełnie nie nadają , masz przykład z gotowymi rozwiązaniami i z pewnością w sieci jest jeszcze więcej , zwróć uwagę że nie są to proste rzeczy pod względem mechanicznym , elektronicznym i programowym , przemyśl sobie czy dasz radę to wszystko samodzielnie zrobić bo tak jak wspomniał kol. McRancor bez dobrego parku maszynowego nie uzyskasz wymaganych parametrów , proponuje Ci rozwiązanie z silnikami krokowymi i przekładnią ślimakową ( projekt z Elektrody ) samohamowny układ , dość duże przełożenie , oczywiście kłania się warsztat bo samodzielnie tego nie zrobisz kolejna kwestia to elektronika i programowanie
    Quote:
    kilka dni temu zrobiłem pierwszy programator i mrugającą diodę. Powiedzmy , że umiem programować w c++, java, paskal, prolog, lips.

    to stanowczo za mało aby samodzielnie wykonać taki układ , a języki które umiesz nie wiele mają wspólnego z jezykami programowania mikrokontrolerów , dlatego skorzystaj z gotowych rozwiązań sprzętowych i programowych przy tej konstrukcji
  • #11
    Minner
    Level 18  
    A nie wystarczy Ci takie proste goto, że ręcznie nastawiasz teleskop na obiekt (np jakąś galaktykę) a dopiero po tym włącza się naprowadzanie? Jeżeli tak, to wystarczy do mocowania teleskopu przymocować silnik ze sterownikiem i już - przy mocowaniach jest zawsze pokrętło, które pozwala robić ręczne GoTo, do autoGoTo wystarczy się wpiąć w nie jakimś silnikiem.

    Radziłbym zamiast krokowca użyć wtedy mocnego silnika DC z dużym przełożeniem.
  • #12
    McRancor
    VIP Meritorious for electroda.pl
    SebaLama wrote:

    Konieczne były by np. enkodery do ustalania położenia? Nie można by tego zrobić programowo? czy to by było zbyt niedokładne?


    Pozycjonowanie będzie tak dokładnie, jak precyzyjne będą informacje ze sprzężenia zwrotnego. Nie uzyskasz dokładności większej niż da enkoder. W przypadku silników krokowych, zawsze jest możliwość zgubienia kroku i pomyłki, ważne jest też odpowiednie zerowanie wskazań. Osobiście nie lubię silników krokowych i dlatego radzę DC ;) Prawdą jest że "mocny" krokowiec może pracować bez enkodera - wystarczy kalibrator.

    Co do programowej realizacji sterownika inkrementalnego (o czym pisze bogdan_p) - zawsze może dojść do sytuacji gdzie kroki będą zgubione, np. przy ręcznym przestawieniu. Takie rozwiązania stosuje się w połączeniu z hamulcem sterowanym elektronicznie. (w robotach przemysłowych)

    Silnik nawet o niewielkim przełożeniu i dokładnym enkoderze, jest w stanie sterować bardzo dokładnie - stoją za tym skomplikowane algorytmy feed-forward, trudno to zrealizować, ale dobrze to obrazuje znaczenie sprzężenia zwrotnego.
  • #13
    bogdan_p
    Level 39  
    zgadza się McRancor że krokowy może zgubić kroki , dlatego bardzo ważne jest dobór "mocy" silnika ( momentu trzymania ) do obciążenia , co do programowego liczenia kroków to większość prostych konstrukcji CNC jest właśnie oparta na takiej zasadzie osiągając zadowalającą precyzje i powtarzalność
    stosując przekładnię ślimakową praktycznie bez dodatkowych hamulców mamy zapewnioną stała pozycję , którą może zmienić jedynie silnik dlatego poleciłem autorowi projekt z Elektrody ponadto uważam że powinien skorzystać z gotowych rozwiązań jakie są dostępne , zaczekajmy na wypowiedź autora tematu co o tym wszystkim sądzi
  • #14
    SebaLama
    Level 10  
    Silniki DC to są silniki szczotkowe?
    Przeglądnąłem te wszystkie linki i teraz zastanowię się czy zastosować ślimaka i jakąś małą zębatkę do obrotu czy przekładnie z silnika połączyć jakoś z tym 500mm kołem jakimś paskiem lub dużą zębatką. Poobliczał bym jakie moce są mi potrzebna na silniku, przełożenia i prędkości i może w 3w zrobię prototyp.

    Tylko co do silników to poszukałem i np. tu znalazłem:
    http://www.akcesoria-cnc.pl/?menu=grupa&kat2=10

    Tylko że do takiego silnika DC trzeba 24V, to jakie musiało by być zasilanie? A do krokowego kilka V chyba wystarczy.

    Jeszcze chciałem dopisać, że nie chodzi mi o kupowanie gotowych zestawów tylko o pobawienie się w zrobienie jakiegoś urządzenia, mechanizmu i zaprogramowanie go żeby czerpać z tego jakąś przyjemność, a co to za przyjemność kupić coś gotowego?
    Budować coś może zacznę na wakacjach, a teraz przydało by się wszystko zaprojektować, najgorzej pewnie dla mnie będzie od strony elektronicznej bo się nie znam jak się co podłącza (jeszcze).
    Na polibudzie studiowałem konstruowanie różnych urządzeń mechanicznych (nie elektrycznych) to najwyżej mogę mieć problem z wykonaniem lub dostępnością niektórych rzeczy.
  • #15
    bogdan_p
    Level 39  
    Quote:
    Tylko że do takiego silnika DC trzeba 24V, to jakie musiało by być zasilanie? A do krokowego kilka V wystarczy.

    24V to znamionowe napięcie pracy silnika , przy którym uzyskasz podane parametry mostek H na bipolarnych tranzystorach to spadek napięcia ok 1 - 2V na mosfetach praktycznie pomijalny
    24V bez względu na rodzaj mostka wystarczy do zasilania tego silnika , co do silników krokowych to ważny jest prąd a nie napięcie oczywiście musi być zapewnione znamionowe , dlatego do zasilania silników stosuje się napięcia kilkakrotnie wyższe co owocuje poprawieniem dynamiki silnika , odpowiedni układ elektroniczny kontroluje prąd tak aby nie został przekroczony , pozornie jest to skomplikowane ale w praktyce większość typowych sterowników dla silników krokowych ma wszystko w swojej strukturze , użytkownik tylko ustala prąd silnika i rodzaj sterownia np L297 + L298
    jeżeli chodzi o silniki z przekładnią to poza przełożeniem nie masz nic więcej podane tak więc trudno oceniać moment po przełożeniu , oczywiście jeżeli zastosujesz przekładnie ślimakową będą na pewno dobre , pamiętaj że muszą być z enkoderem bo później nie będziesz miał jak go zamocować , w cale nie wiem czy rozwiązanie na silnikach DC jest prostsze od silników krokowych ale to kwestia gustu