Skocz do zawartości

HC-05 i łazik gąsienicowy na PWM uno


VLAD

Pomocna odpowiedź

Cześć, z zawodu jestem alpinistą przemysłowym i pracując na konstrukcji (ścierając kurz ) z racji już średniego wieku stwierdziłem, że będzie mi łatwiej, przyjemniej i ciekawiej jeżeli pomogę sobie jakimś pojazdem zdalnie sterowanym :). W sprawach elektroniki jestem raczej zielony, ale zacząłem i w miarę upływu czasu okazuje się, że można, i jest jakiś mglista szansa, że mi się uda :).  Mózgiem operacji jest płytka PWM UNO, pojazd gąsienicowy z 2-ma silnikami 12V(chińskimi-brak jakichkolwiek informacji o prądzie maksymalnym). Sterownik silników to L293d, moduł bluetooth to HC-05. Sterowanie z komórki. Pojazd ma się poruszać po wąskiej konstrukcji ~20cm szerokości, która nachylona jest pod kątem +-45 stopni do poziomu, dlatego używam też magnesu pod spodem oddalonego o jakieś 5 mm od "gruntu". Magnes powoduje, że będę potrzebował sporej mocy, żeby poruszać się łazikiem. I tak rzeczy, o których wiem, że nie są ok to :

1. Sterownik silników powinien być ( w mojej ocenie ) mocniejszy-choć ten się jeszcze nie spalił, ale nie chcę ryzykować i chciałbym kupić inny ( pytanie jaki?)

2. Moduł bluetooth powinien przechodzić przez około 3,5V, u mnie jest 5V, ale nic się nie dzieje.

3. Kod jest bardzo toporny i mi się nie podoba 🙂 ale póki mi działa też się tym nie przejmuję.

Nie radzę sobie z :

Sytuacją, w której z jakiegoś powodu tracę połączenie z łazikiem, nie chcę żeby stanął i się zrestartował.

Chciałbym też zamontować prosty wskaźnik (czerwoną diodę) do sygnalizacji spadku napięcia poniżej pewnego progu (potencjometr dioda i rezystor wystarczą?)

Zasilanie- póki co 2 akumulatory połączone szeregowo 7,4V x 2. Na jednym też działa. Chciałbym nie przesadzić, wiem że jest spadek napięcia na sterowniku ale nie wiem do jakiego napięcia mogę dojść (pewnie już przesadziłem :))

 

 

Wszelkie informację o kardynalnych i nie tylko, błędach oczywiście mile widziane- pamiętajcie także, że jestem

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

Zbudowałem kiedyś robota gąsienicowego, ale po stalowej belce 45st. by nie podjechał - gąsienice by się ślizgały.

Czy nie powinien on mieć czujników krawędzi belki, by nie spadł w razie błędu sterowania.

4 godziny temu, VLAD napisał:

u mnie jest 5V, ale nic się nie dzieje.

Jest to jednak igranie z ogniem  (jeśli chodzi o sygnał, bo zasilanie może być).

4 godziny temu, VLAD napisał:

nie chcę żeby stanął i się zrestartował.

a co ma zrobić w tej sytuacji?

4 godziny temu, VLAD napisał:

prosty wskaźnik (czerwoną diodę) do sygnalizacji spadku napięcia

Sama dioda z opornikiem nie zda egzaminu - trzeba by dołożyć np. diodę Zenera + tranzystor. Najlepiej jednak wykorzystać przetwornik AD w UNO by mierzyć napięcie zasilania i przekazywać jego wartość do aplikacji.

4 godziny temu, VLAD napisał:

nie wiem do jakiego napięcia mogę dojść

Przy sterowaniu PWM pełne napięcie pewnie będzi na silniku rzadko, więc te 14,8V dla silnika 12 voltowego powinno być ok.

Link do komentarza
Share on other sites

45 minut temu, jand napisał:
5 godzin temu, VLAD napisał:

nie chcę żeby stanął i się zrestartował.

a co ma zrobić w tej sytuacji?

Chciałbym żeby stanął i się zrestartował- niezrozumiale to poprzednio ująłem.

 

46 minut temu, jand napisał:
5 godzin temu, VLAD napisał:

nie wiem do jakiego napięcia mogę dojść

Przy sterowaniu PWM pełne napięcie pewnie będzi na silniku rzadko, więc te 14,8V dla silnika 12 voltowego powinno być ok.

Póki co mam sterowanie 0-1 bez PWM. Pewnie ustawię docelowo na 70% i ustawię sobie jakieś przyciski na zwiększenie/zmniejszenie o 5%.

 

51 minut temu, jand napisał:

Zbudowałem kiedyś robota gąsienicowego, ale po stalowej belce 45st. by nie podjechał - gąsienice by się ślizgały.

Mój chrzestniak powiedział "Wujek a jak założysz gumki recepturki na gąsienice to nie zadziała?" i zadziałało 🙂 . Na lodówce zjadę, nie podjadę (za mało mocy). Na 45stopniową blachę podjadę ( ale tylko z gumkami).

Jeżeli chodzi o czujniki, to wolę bez - jazdę po belce zabezpieczę mechanicznie.

kod poniżej:

#include <SoftwareSerial.h>
SoftwareSerial MyBlue(2, 3); // RX | TX
int flag = 0;
int LED = 13;
int motor1_L = 7;
int motor1_R = 8;
int motor2_L = 12;
int motor2_R = 11;
int PWM1 = 6;
int PWM2 = 10;
void setup()
{
  Serial.begin(9600);
  MyBlue.begin(9600);
  pinMode(LED, OUTPUT);
  //pinMode(PWM1, HIGH);
  //pinMode(PWM2, HIGH);
  pinMode(motor1_L, OUTPUT);
  pinMode(motor1_R, OUTPUT);
  pinMode(motor2_L, OUTPUT);
  pinMode(motor2_R, OUTPUT);


  Serial.println("Ready to connect\nDefualt password is 1234 or 000");
}
void loop() {
  Serial.println(flag);
  Serial.println("pozalinia");
  
  if (MyBlue.available()>0)
    flag = MyBlue.read();
    //else flag = (int)'k';
 
  if (flag == 119)//-------forward char 'w'
  {
    digitalWrite(LED, HIGH);
    digitalWrite(motor2_L, HIGH);
    digitalWrite(motor2_R, LOW);
    digitalWrite(motor1_L, HIGH);
    digitalWrite(motor1_R, LOW);
    
    Serial.println(flag);
    delay(25);
  }
  else if (flag == 115)//----------tyl
  {
    digitalWrite(LED, LOW);
    digitalWrite(motor1_L, LOW);
    digitalWrite(motor1_R, HIGH );
    digitalWrite(motor2_L, LOW);
    digitalWrite(motor2_R, HIGH);
    Serial.println(flag);
    delay(25);
  }
  else if(flag == (int)'k')//-------STOP
  {
    digitalWrite(LED, LOW);
    digitalWrite(motor1_L, LOW);
    digitalWrite(motor1_R, LOW );
    digitalWrite(motor2_L, LOW);
    digitalWrite(motor2_R, LOW);
    Serial.println(flag);
    delay(25);
  }
  else if(flag == (int)'l')//-------left
  {
    digitalWrite(LED, LOW);
    digitalWrite(motor1_L, HIGH);
    digitalWrite(motor1_R, LOW );
    digitalWrite(motor2_L, LOW);
    digitalWrite(motor2_R, HIGH);
    Serial.println(flag);
    delay(25);
  }
  else if(flag == (int)'r')//-------right
  {
    digitalWrite(LED, LOW);
    digitalWrite(motor1_L, LOW);
    digitalWrite(motor1_R, HIGH );
    digitalWrite(motor2_L, HIGH);
    digitalWrite(motor2_R, LOW);
    Serial.println(flag);
    delay(25);
  }
}

 

Link do komentarza
Share on other sites

Cześć, w zasadzie mam już tylko problem z tym, że w przypadku braku łączności "łazik" nie reaguje i wgrany program wykonuje ostatnie polecenie przekazane przez moduł bluetooth. Chciałbym żeby się restartował a łazik stawał. Jeżeli ktoś ma jakiś pomysł to prośbą o pomoc. Pozdrawiam

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

Dnia 26.01.2023 o 23:01, jand napisał:

Moduł HC-05 posiada wyprowadzenie STATE, odczytując które można sprawdzić, czy jest z czymś połaczony, czy nie.

Co prawda, nie mogę sprawdzić teraz pinu STATE, bo mi IDE nie może przesłać programu na UNO, ale jak tylko wgram nowego bootloadera to dam znać jak poszło.

 

Dnia 25.01.2023 o 12:19, H1M4W4R1 napisał:

https://en.wikipedia.org/wiki/Keepalive wprawdzie dotyczy TCP, ale to skuteczne rozwiązanie w wielu innych przypadkach

Dzięki kolego ale póki co to dla mnie czarna magia, wydawało mi się, że jest jakieś banalne rozwiązanie i faktycznie jeżeli tak jest jak kolega jand pisze to będą 2 linijki kodu 🙂 pozdrawiam.

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.