Skocz do zawartości
Dalton22

Pojazd na magnesach - sterowanie silnikiem i serwem

Pomocna odpowiedź

Powinien, ale nie dam gwarancji. Stosuję podobne (ESP-12E), jest trochę kombinowania ale o ile nie potrzebujesz więcej pinów niż ESP ma na pokładzie - powinien wystarczyć.

Zresztą co tu dużo mówić - kup taką płytkę, spróbuj, drogie to nie jest, a jak się nie sprawdzi to wykorzystasz do czegoś innego.

Udostępnij ten post


Link to post
Share on other sites

Raspberry Pi Zero W 512MB RAM - WiFi + BT 4.1 plus Wtyk goldpin 2x20 dla Raspberry Pi - kolorowe oznaczenia

Wybrałem chyba takie coś, tylko pytanie mam - czy obsłuży to co mam czyli dwa serwa, sterownik silnika, sterowanie za pomocą wifi i ewentualnie kamerę?

już nie za bardzo chciałbym kombinować 🙂

 

 

Udostępnij ten post


Link to post
Share on other sites

WiFi i kamerę dedykowaną obsłuży od strzału.

Co do serw i silników: serwa prawdopodobnie dałoby się obsłużyć programowo przez servoblastera, ale z przyczyn technicznych nie mogłem tego zastosować (gryzie się z I2S). Silniki pewnie też... ale zajrzyj sobie tutaj - masz pełen wybór sterowników. Przemyśl tylko dobrze, czy sobie z tym poradzisz - czy nie lepiej jednak będzie pójść w stronę ESP i jakiejś kamerki od latadeł (paru magików od tych spraw na forum mamy, któryś Ci doradzi).

 

 

Udostępnij ten post


Link to post
Share on other sites

ok, zamówiłem zatem  WiFi Shield Arduino ESP8266 WEMOS D1 UNO R3, bo R2 już nie ma, jak przyjdzie i nie poradzę sobie z zaprogramowaniem będę prosił o wsparcie drobne.

dziękuje puki co

Udostępnij ten post


Link to post
Share on other sites

No i znalazłem czas ... 

WEMOS D1 R3 ESP8266 udało mi się podłączyć, nawet skompilowałem program żeby pojazd znowu zaczął jeździć 🙂

i jest niestety parę błędów ... ale może to wina płytki (ten typ tak ma?)

#include <Servo.h> //Biblioteka odpowiedzialna za serwa

Servo serwo1;  //Tworzymy obiekt, dzięki któremu możemy odwołać się do serwa
Servo serwo2;  //Tworzymy obiekt, dzięki któremu możemy odwołać się do serwa

void setup()
{
  serwo2.attach(D12);  //Serwomechanizm podłączony do pinu 6 - odpowiada za pracę ramienia z sondą
  serwo1.attach(D11);  //Serwomechanizm podłączony do pinu 11 - odpowiada za kierunek podróży
  pinMode(D4, OUTPUT); //Sygnał PWM silnika nr 1
  digitalWrite(D4, HIGH); //Ustawiamy (na stałe) stan wysoki na pinie 6

  pinMode(D5, OUTPUT); //Sygnały sterujące kierunkiem obrotów silnika nr 1
  pinMode(D6, OUTPUT);
  serwo2.write(150); //Wykonaj ruch - podnieniesienie sondy
  serwo1.write(130); //Wykonaj ruch ewentualna ręczna korekta kierunku
  digitalWrite(D5, HIGH); //Silnik nr 1 - obroty w prawo (do przodu)
  digitalWrite(D6, LOW);
  delay(3000);  //czas jazdy pojazdu (np do przodu) do korekty napewno
  digitalWrite(D5, LOW); //Silnik nr 1 - obroty w STOP
  digitalWrite(D6, LOW);
  serwo2.write(50); //Wykonaj ruch - dotkniecie sondą powierzchni po której jedziemy
  delay(2000); //czas pomiaru sondy
  serwo2.write(150); //Wykonaj ruch - podnieniesienie sondy
  delay(500); //Opóźnienie dla lepszego efektu
  digitalWrite(D5, LOW); //Silnik nr 1 - obroty w STOP
  digitalWrite(D6, LOW);

  
}

void loop()
{
  delay(500); //a dlaczego nie ...
}

podczas komendy serwo2.write(50) silnik pracuje ?!?! a nie powinien ... nie jest to pełna praca, ale buczy ...

podczas wgrywania programu do płytki silnik wchodzi w pracę na pół sekundy ...

po zakończeniu podnoszenia sondy musiałem dodać komendę na sterownik silnika STOP mimo to że pięć linijek wyżej już ona jest ...

ale jak jej nie było to silnik pracuje (w przeciwnym kierunku) na jakieś 5%.

Co to za licho jakieś ... 🙂 

no i proszę o jakiś kierunek gdzie mogę szukać sterowania tym przez Wifi 🙂

 

Udostępnij ten post


Link to post
Share on other sites

Serwa ciągłej rotacji mają z tyłu taką śrubkę, do ustawiania pozycji neutralnej — upewnij się, że poprawnie je wycentrowałeś.

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

tak szczerze to wcale ich nie centrowałem ... ale serwa pracują poprawnie ... tylko silnik coś niekoniecznie, właściwie z tym problemem może to pracować.

W moich serwach:

Serwo Redox L360 - standard - 

Specyfikacja

Napięcie zasilania: od 4,8 V do 6,0 V

Zakres ruchu: od 0 ° do 180 °

nie zaobserwowałem z tyłu śrubki żadnej 🙂 a praca serw (podawane kąty w szkicu) jest raczej z praktyki co widzę niż z obliczeń.

 

Dotarłem do OTA i wszystko by było grało tylko brakuje mi conieco - u mnie nie ma tych portów sieciowych ... ! ? co mam uczynić żeby się pojawiły ?

 

 

screen porty.jpg

 

 

I jeszcze weselej się zrobiło - po wgraniu basicOTA w monitorze portu szeregowego mam takie eleganckie zapisy:

"""

18:47:06.668 -> ?⸮⸮x⸮⸮D
18:47:06.668 -> ⸮⸮⸮H⸮⸮!⸮⸮D⸮⸮⸮⸮

"""

nawet przez chwile było nowe połączenie sieciowe, ale nie udało się z tym nic zrobić ...

 

 

Edytowano przez Dalton22
kolejne niespodzianki

Udostępnij ten post


Link to post
Share on other sites

Teoretycznie port powinien się pojawić chwilę po włączeniu urządzenia, ale nie zawsze mu się chce. Mnie pomaga restart Arduino IDE

 

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

własnie nie chce mu sie wcale... dokładnie raz pojawiło mi się to i koniec...

nie ma portow sieciowych, mimo że widzę że na routerze sie loguje elegancko...

 

Wyłączyłem zaporę, wira nie mam wcale.

Edytowano przez Dalton22

Udostępnij ten post


Link to post
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!

Gość
Napisz odpowiedź...

×   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...