Skocz do zawartości

Bezprzewodowy układ sterowania silnikiem krokowym


hatchet23

Pomocna odpowiedź

Potrzebuje zmontować układ, polegający na bezprzewodowym sterowaniu silnikiem krokowym. Generalnie mam do zrealizowania taki układ (ogólny schemat całościowy projektu [źródło własne]:

Jednak chciałbym się w tym momencie skupić tylko i wyłącznie na układzie bezprzewodowym tego projektu (schemat ogólny układu bezprzewodowego [źródło własne]:

Chciałbym, abyście zaproponowali poszczególne elementy do realizacji tego projektu. Jako laik w sterowaniu bezprzewodowym nie wiem jakie podzespoły najlepiej zastosować, tzn jaki moduł nadawczo odbiorczy najlepiej przypasować, co ze sterownikiem silnika krokowego, itp. Sterownik ma sterować silnikiem w następujący sposób: w lewo, w prawo, wolniej, szybciej oraz stop. Na schemacie celowo w pozycji pilota zaznaczyłem 5 przycisków, które użytkownik miałby do dyspozycji tj:

1.Lewo- włącza obroty silnika w lewo;

2.Stop- zatrzymuje silnik;

3.Prawo-włącza obroty silnika w prawo;

4.Wolniej- zmniejsza zadaną prędkość;

5.Szybciej- zwiększa zadaną prędkość;

Nie wiem jakie sygnały miałbym podać, aby uzyskać taki efekt. Oczywiście podkreślam tutaj, że owe sygnały do tego sterownika trzeba podać w sposób bezprzewodowy (najlepiej fale radiowe).

Jeśli chodzi o dobór elementów do realizacji proszę kierować się skrajnościami mianowicie proszę o podanie elementów jakościowo najlepszych (czyli nie liczyć się z ceną) jak również elementów najtańszych, które zrealizują zadany problem.

Licze na jakąś odpowiedź ze strony bardziej zaawansowanych forumowiczów. Serdecznie pozdrawiam:)

Link do komentarza
Share on other sites

Luko - istnieje olbrzymia masa różnych rodzin mikrokontrolerów i kilka języków programowania dotyczące robotów. Mój projekt opiera się na podobnym działaniu- domniemam, iż na poziomie odbiornika znajduje się jakis mikrokontroler odpowiedzialny za sterowanie silnika krokowego w tym projekcie. Do tego dochodzi prosty program napisany w jakims języku. Chodzi o to żebyście pomogli mi to zweryfikować.

Sobal44. Dzięki za zainteresowanie 🙂 Chciałbym Cię poprosić o bardziej szczegółowe instrukcje, gdyż jak podkreślam jestem kompletnym laikiem jeśli chodzi o sterowanie bezprz. i wszystkie związane z nim aspekty. Szukam po sieci różnych rozwiązań, ale nie mogę tego skleić do kupy 🙁 na temat uarta znalazłem to http://www.societyofrobot...ller_uart.shtml ale nie wiem jak mam sie do tego odnosić. Prosze o pomoc .

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Zgadzam się z sobal44, najprościej użyć układów z mobot-u. Po stronie sterowania podłączyć laptopa i moduł po usb.

Do sterowania silnikiem wykorzystać gotowy moduł. Takie moduły najczęściej wymagają tylko dwóch sygnałów: kierunku i impulsu generującego ruch.

Wystarcz wiec jakikolwiek mały procesorek, np. atmega8. Uart spiąć z modułem mobota, sterownik silnika krokowego podpiąć pod dowolne piny IO i napisać program.

Link do komentarza
Share on other sites

"Moduł radiowy MOBOT-RCR-V2" ma 5 wyprowadzeń, ciebie interesują tylko 4(Vcc,Gnd,Rxd,Txd) Rxd podłączasz do Txd w uC, Txd modułu do Rxd uC, Vcc i gnd chyba jasne. a drugi moduł podpinasz pod usb i z Hyperterminala możesz sterować czym chcesz.

poniżej kod do obsługi UART'a

#define F_CPU 16000000UL         // częstotliwość zegara w Hz
#define UART_BAUD 57600               // prędkość transmisji bit/s
#define UART_CONST 16     
nsigned char fodznak = 0; //flaga odebranego znaku



//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%55%
/*------------------------------------------------------------------------------

------------------------------------- UART -------------------------------------

-------------------------------------------------------------------------------
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/

//odbieranie znaku z uart na przerwaniu
SIGNAL(SIG_USART_RECV)
{
  fodznak = 1;
  return UDR;

} 


// inicjalizacja portu szeregowego
void UART_init(void)
{



 UCSRA &= ~(1<<U2X); //kasuje bit u2x w rejestrze ucsra
 /* Ustawianie prędkości*/
 UBRRH = (unsigned char)(UART_CONST >>8);
 UBRRL = (unsigned char)UART_CONST ;
 UCSRB=0x98;//załączenie odbiornika i nadajnika rxen/txen/rxcie
 UCSRC=0x86;//ustawienie ramki danych 8bitow brak parzystosci i 1 bit stopu


}




// wysyła znak
void wyslij_znak(unsigned char c)
{
 while ( !( UCSRA & (1<<UDRE)) ) ;// albo jeżeli się nie myle to loop_until_bit_is_set(UCSRA,UDRE)
 UDR = c;
}

//wyslij słowo
void wyslij_slowo(char dana)
{
  unsigned char i;

  for(i=0; i<8; i++)
  {
        wyslij_znak(dana & 0x80 ? '1' : '0');
        dana<<=1;
  }
}




// odbiera znak z portu szeregowego i zwraca go jako wartość funkcji
char odbierz(void)
{
 loop_until_bit_is_set(UCSRA,RXC);        // czekaj na zakończenie odbioru
 cbi(UCSRA,RXC);                                // skasuj bit RXC w rej. USR
 return UDR;                                // zwróć zawartość rejestru UDR
}

//------------------------------------------------------------------------------------

odbieranie znaku w tym wypadku jest na przerwaniu wiec nie trzeba korzystać z fukcji "odbierz()"

później w pętli głównej można sprawdzać w "case'ie" odebrane znaki

a w hypertermianlu ustawiasz predkośc 57600, 8bitow brak parzystosci i 1 bit stopu sterowanie przepływem brak

pozdrawiam

  • Lubię! 2
Link do komentarza
Share on other sites

Układ został zmontowany w sposób następujący: https://www.forbot.pl/forum/upload_img/obrazki/IMG_4ba7489d370f31259.jpg Tak jak napisał sobal44 układ oparto o moduły bezprzewodowe MOBOT RCR, z której jeden podłączony do komputera (USB), a drugi podłączony bezpośrednio do mC Atmegi 16 przez interfejs UART. Do mikrokontrolera należy również podłączyć sterownik silnika krokowego (w tym przypadku zalecany sterownik do SSK- B01) Za pilota posłuży nam komputer, do którego wgrywamy bezpłatny program HyperTerminal, służący nam jako komunikator z naszymi modemami... Jako, że moduły radiowe MOBOT ustawiamy w tryb pracy modem jest to idealne rozwiązanie, aby wysyłać polecenia sterujące (w ASCII) do nich właśnie za pomocą HT. Następnie odpowiednio zapisujemy program w jezyku C, dzięki czemu możemy przy użyciu tego całego zwartego układu sterować odpowiednio silnikiem krokowym w w/w sposób... To wszystko... Chciałem szczególnie podziękować użytkownikowi- sobal44, bo to On opowiedział mi konkretnie o tym jak zmontować coś takiego...

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.