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

Polecam moduł bezprzewodowej komunikacji radiowej z mobot'u, bardzo łatwo go zastosować do komunikacji uC - uC jak i również uC -PC.

  • Lubię! 1
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

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • 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.