Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Laptop na kołach - podłączenie silników przez USB

MacFis 02 Gru 2007 19:08 1847 9
  • #1 02 Gru 2007 19:08
    MacFis
    Poziom 17  

    Po kilku nieudanych próbach z robotami postanowiłem pobawić się Laptopem. Myślałem o budowie podstawy z dwoma silnikami na którą położyłbym Laptopa który kierowałby pracą silników. Nie bardzo wiem jak te silniki połączyć przez USB.

    Proszę o pomoc.::

    0 9
  • #2 02 Gru 2007 19:31
    McRancor
    VIP Zasłużony dla elektroda

    Tak prosto jak pod LPT czy RS232 podłączyć się nie da. Ja na Twoim miejscu zastosowałbym konwerter USB<>RS232 i jakiś mikrokontroler odbierający komendy, sterujący stopniem mocy, realizujący algorytm regulatora prędkości/pozycji. Do tego kilka wyjść/wejść ogólnego przeznaczenia.

    0
  • #3 02 Gru 2007 19:38
    gumer
    Poziom 14  

    Rozwiązanie proste: przez przejściówkę USB-LPT podłącz ULN2803 a za nim przekaźniki do sterowania silnikami. Na LPT masz 8 wyjść, dzięki ULN2803 możesz podpiąć pod LPT jakieś urządzenie, gdyż samo LPT ma bardzo małą wydajność prądową. A za ULN2803 po dwa przekaźniki na silnik, jeden kręci w lewo, drugi w prawo, tylko trzeba uważać, żeby nie otworzyć obu naraz. Nie trzeba programować uC (bo nie ma).

    Rozwiązanie trudniejsze, jak wspomniał przedmówca: przejściówka USB-RS232 -> mikrokontroler -> mostek H -> silnik. Trzeba się bawić w programowanie uC, ale za to masz więcej możliwości, np. sterowanie prędkości przez PWM, do tego możesz podpiąć później inne urządzenia.

    Ja bym zrobił rozwiązanie pierwsze na początek

    0
  • #4 02 Gru 2007 20:00
    MacFis
    Poziom 17  

    Jak podłączyć ULN2803 z LPT

    0
  • #5 03 Gru 2007 13:45
    Fyszo
    Spec od GSM

    A to już przez LPT nie można PWM sterować ? Potrzeba do tego specjalne kontrolery? Po co bawić się w kontroler skoro mamy kombajn 1000 razy wydajniejszy? Można nawet 8xPWM zrobić z LPT!

    0
  • #6 03 Gru 2007 16:52
    gumer
    Poziom 14  

    Chodzi o to, że nowoczesne systemy operacyjne (Windows, MacOS, Linux) obsługują po kilka dziesiąt procesów same z siebie, a do tego jest nasza aplikacja i wcale nie ma najwyższego priorytetu. OS żongluje procesami, dając po troszkę czasu obliczeniowego każdemu. Nawet jak na najnowszym procku grasz w Crisis, czyli bardzo wymagającą aplikację, to OS wykrada nawet kilku-kilkudziesięcio milisekundowe kawałki dla innych procesów. No i nigdy nie wiadomo kiedy, i na jak długo stracisz kontrolę nad swoją aplikacją. Dlatego takie OS nazywają się niedeterministyczne. Taki PWM sterowany programowo to jest śliska sprawa, bo raz będzie działać, a innym razem, coś się OS'owi odwidzi (czytaj przywiesi) i na 500ms da full-power na silniki. No chyba że zasypiemy LPT ogromną ilością danych, aby podczas takich przeskoków ciągnął z bufora, ale to już teoretyzujemy.

    Istnieją linuxy bardzo specjalnego zastosowania, które mogą osiągać bardzo dużą dokładność (chyba poniżej 1ms).

    "Jak podłączyć ULN2803 z LPT?"

    Elektroda -> SZUKAJ (na górze po prawej, tłustym drukiem) -> wpisz: "ULN2803 LPT" -> Pierwszy post z góry :) ("Kontroler silnika krokowego na porcie LPT")

    0
  • #7 03 Gru 2007 23:11
    Fyszo
    Spec od GSM

    Przecież można napisać aplikację w real mode. Bez systemu operacyjnego. Lub nawet w dosie, kiedyś używało się sprzętowych zegarów i odpowiednich przerwań dla nich (sygnał 1/18s) do synchronizacji. Jest jeszcze na płycie coś takiego jak PIT (licznik) również z przerwaniem do synchronizacji. Wady to XP zabrania obsługi tak niskiego poziomu. Albo Win9x albo dos.

    0
  • #8 04 Gru 2007 14:29
    McRancor
    VIP Zasłużony dla elektroda

    Niech laptop się zresetuje, ktoś wie co będzie na wyjściach sterujących silnikami w tym czasie?

    Najniższą warstwę sprzętową lepiej zwalić na bardziej niezawodne rozwiązanie niż win98, czy inne systemy 32bitowe, które mogą mieć "przerwy w działaniu"

    DOS odpada, po co komu laptop z DOSem? Już lepiej odpalić tam jakiś 32-bitowy system, na nim OpenCV + kamerkę i dopiero wtedy pojawia się jakiś sens "mobilizowania" laptopa

    0
  • #9 04 Gru 2007 14:58
    Fyszo
    Spec od GSM

    McRancor napisał:
    Niech laptop się zresetuje, ktoś wie co będzie na wyjściach sterujących silnikami w tym czasie?


    W przypadku sterowania PWM i po zanegowaniu linii LPT to bedzie brak sygnału czyli nic.

    McRancor napisał:
    Najniższą warstwę sprzętową lepiej zwalić na bardziej niezawodne rozwiązanie niż win98, czy inne systemy 32bitowe, które mogą mieć "przerwy w działaniu".
    DOS odpada, po co komu laptop z DOSem? Już lepiej odpalić tam jakiś 32-bitowy system, na nim OpenCV + kamerkę i dopiero wtedy pojawia się jakiś sens "mobilizowania" laptopa


    To najpierw są propozycje dorabiać kontroler pod LPT zapominając o procesorze w laptopie. A potem marudzenie że laptop z dosem jednak za mało wydajny. Zawsze można wrócić do atmegi i jego paru MIPSów. Zrobiłem wiele rzeczy w dosie i zawsze wspominam te czasy z nostalgią - tam to dopiero dało się wszystko zrobić ze sprzetem (przy XP i Viście można tylko pomarzyć).

    Są metody synchronizacji czasowej wątków procesora. Ktoś dobrze oblatany to dostanie się na niższy poziom ring windy i zrobi wszystko na przerwaniach. Albo pisanie sterowników - to też sposób na niskie zasoby. Dla chcącego nic trudnego nawet w dosie biblioteki DirectX wykorzysta. Na pewno jak chce wykorzystywać laptopa to musi wiedzieć co to EAX, bo bez znajomości takich rzeczy nic nie napisze.

    0
  • #10 04 Gru 2007 23:37
    Magicjakub
    Poziom 15  

    Co do konwerterów USB<->LPT to mam pewne zastrzeżenia, ponieważ nie pracują one (przynajmniej kilka egzemplarzy które posiadam) jako zwykłe porty równoległe, lecz jako łącza do drukarek i oprogramowanie dołączone nie realizuje pewnych komend.

    Wiem to stąd że przerabiałem kamerkę internetową do zastosowań w astrofotografii, a do jej pracy jest potem potrzebny port LPT. Nie mając takowego w laptopie wykorzystałem konwerter który musiał coś rozwalić w kamerce, bo przestała działać...

    0