BuTank a dlaczego nie.

auta...

Moderatorzy: moderatorzy2014, moderatorzy

Awatar użytkownika
Burakko
Posty: 2231
Rejestracja: czwartek 14 cze 2012, 20:55
Lokalizacja: Dąbrowa Górnicza

BuTank a dlaczego nie.

Post autor: Burakko »

Witam i przedstawiam pojazd zainspirowany projektem kolegi MAX2.

Wykorzystałem troszkę aluminium 4 silniczki od wycieraczek ze stilo. Problem który miałem to to iż po przerobieniu silników w jedną stronę kręcą się szybciej. Ale problem do rozwiązania bo musiałem wykorzystać mixer V-tail który sam zbudowałem. Lekka przeróbka programu i powinna działać. Na dodatek sterowanie z telefonu bo czemu nie... Resztę opisu później....

Obrazek

Obrazek

Obrazek

Obrazek

Obrazek
Mapka ŚL http://maps.google.com/maps/ms?ie=UTF&m ... bcc46646ee

Kontroler lotu: "Widoczność pionowa zero."
Pilot: "W stopach czy w metrach?"

Nie pisz "Dron" moje dzieci mogą to czytać...
Awatar użytkownika
AviVma
Posty: 163
Rejestracja: czwartek 16 paź 2014, 05:55
Lokalizacja: Skalmierzyce / Kalisz / Ostrów

Re: BuTank a dlaczego nie.

Post autor: AviVma »

Witaj!

Bardzo fajny projekt, ja obecnie jestem w trakcie budowy mniejszego łazika z projektu "FPV rover by markusp" z pewnymi modyfikacjami.

Jaki link planujesz? Sprzęt będzie FPV?
Czym planujesz sterować silnikami?
FPV : X-Alien 500 / BadCat / ZMR250 / Delta 120 / Phantom 1.1.1 / Quadro S500 / Pioneer 1400 eleres AP
Classic: Delta 120 EDF / STS Awionetka / B737 / Lama v3 / CX10 / Hubsan i inne badziewie :)
Awatar użytkownika
Burakko
Posty: 2231
Rejestracja: czwartek 14 cze 2012, 20:55
Lokalizacja: Dąbrowa Górnicza

Re: BuTank a dlaczego nie.

Post autor: Burakko »

Link za pomocą Wi-Fi i telefonu. Już działa. Ale w każdej chwili można zastosować typowy RC. To był priorytet. Regulatory szczotkowe 16V 320A. Czekam na ich dostawę. Video 1,2GHz Fox 700m. Wymiary 410x310 by pasowała skrzynka piwa. Łazik piwny na wakacje nad jeziorem.

Projekt którym chcesz się zająć jest dla mnie zbyt skomplikowany bo nie mam drukarki 3d ani tak dużego parku maszynowego. I chodziło mi o możliwości czegoś wożenia .
Mapka ŚL http://maps.google.com/maps/ms?ie=UTF&m ... bcc46646ee

Kontroler lotu: "Widoczność pionowa zero."
Pilot: "W stopach czy w metrach?"

Nie pisz "Dron" moje dzieci mogą to czytać...
Awatar użytkownika
Burakko
Posty: 2231
Rejestracja: czwartek 14 cze 2012, 20:55
Lokalizacja: Dąbrowa Górnicza

Re: BuTank a dlaczego nie.

Post autor: Burakko »

Program w mixerze przerobiony. Postanowiłem dodać wyłącznik główny na przekaźniku 4PDT na podtrzymaniu by była możliwość w późniejszym czasie na montaż odcięcia zbyt niskiego zasilania. Zastanawiam się tylko czy lipo czy mniej problemowe akumulatory 7.2Ah 12V PB.

- edit -

Mam pytanie do tych co maja styczność z uC. Problem mam z drganiami na wyjściu do sterowania ESC. Po testach na serwach - drgają. Pod monitorem portu szeregowego wartość środkową 1500 oscyluje +/- 20. Moim zdaniem problem leży w komendzie "PulseIn". Jest zbyt mało dokładna. Jak wyfiltrowac to programowo ? Albo nie wiem czy dobrze myślę zastosować liczenie timerami. Problem w tym iż nie wiem jak to zrobić w ardu. Dajcie znać czy potraficie takie myki.
Mapka ŚL http://maps.google.com/maps/ms?ie=UTF&m ... bcc46646ee

Kontroler lotu: "Widoczność pionowa zero."
Pilot: "W stopach czy w metrach?"

Nie pisz "Dron" moje dzieci mogą to czytać...
Awatar użytkownika
JSt
Posty: 137
Rejestracja: wtorek 14 kwie 2015, 12:13
Lokalizacja: Kraina Kwitnącej Bulwy

Re: BuTank a dlaczego nie.

Post autor: JSt »

Burakko pisze: Jak wyfiltrowac to programowo ? Albo nie wiem czy dobrze myślę zastosować liczenie timerami. Problem w tym iż nie wiem jak to zrobić w ardu. Dajcie znać czy potraficie takie myki.
Wydaje mi się, że najprościej przyjąć coś takiego - jeśli wartość pulsein różni się o mniej niż np. 21 od poprzednio odczytanej - nic nie rób - tzn utrzymuj na wyjściu to, co było.
Pozdrawiam
Janusz

Ostatnio zamęczam: S800 na Omnibus F4
Awatar użytkownika
Burakko
Posty: 2231
Rejestracja: czwartek 14 cze 2012, 20:55
Lokalizacja: Dąbrowa Górnicza

Re: BuTank a dlaczego nie.

Post autor: Burakko »

a w innych pozycjach nadal będzie drgało... nic to nie da. A nie wiem jak zrobić np: Zapisywać np 4 ostatnie pomiary i je uśrednić. Czy ktoś wie jak ?
Mapka ŚL http://maps.google.com/maps/ms?ie=UTF&m ... bcc46646ee

Kontroler lotu: "Widoczność pionowa zero."
Pilot: "W stopach czy w metrach?"

Nie pisz "Dron" moje dzieci mogą to czytać...
Awatar użytkownika
xq_operator
Posty: 441
Rejestracja: czwartek 05 wrz 2013, 12:10
Lokalizacja: pomorskie

Re: BuTank a dlaczego nie.

Post autor: xq_operator »

Burakko pisze: Mam pytanie do tych co maja styczność z uC. Problem mam z drganiami na wyjściu do sterowania ESC. Po testach na serwach - drgają. Pod monitorem portu szeregowego wartość środkową 1500 oscyluje +/- 20. Moim zdaniem problem leży w komendzie "PulseIn". Jest zbyt mało dokładna. Jak wyfiltrowac to programowo ? Albo nie wiem czy dobrze myślę zastosować liczenie timerami. Problem w tym iż nie wiem jak to zrobić w ardu. Dajcie znać czy potraficie takie myki.
wyłącz pulsein i zastąp stałymi - jeśli nadal będzie drgało to problem w sterowaniu wyjść. a może już to wiesz po sterowaniu wifi.
pulsein zastąp np. przerwaniem z kodu multiwii. jak wprowadzisz sobie taki deadband na 20 jak opisał kolega powyżej to będziesz miał mega skokową reakcję (rozdzielczość pewnie ~50 zamiast ~1000)
Awatar użytkownika
JSt
Posty: 137
Rejestracja: wtorek 14 kwie 2015, 12:13
Lokalizacja: Kraina Kwitnącej Bulwy

Re: BuTank a dlaczego nie.

Post autor: JSt »

xq_operator pisze:jak wprowadzisz sobie taki deadband na 20 jak opisał kolega powyżej to będziesz miał mega skokową reakcję (rozdzielczość pewnie ~50 zamiast ~1000)
Zgadzam się - to nie jest piękne rozwiązanie, ale dla testów, na szybko zaproponowane. Mając rozdzielczość 25 do przodu i 25 do tył można całkiem sprawnie sterować takim "ustrojstwem"... a może nie...
a w innych pozycjach nadal będzie drgało...
Tak samo będzie drgało jak na środku - nie masz się odnosić do 1500 tylko do odczytanej wcześniej wartości... Nie nalegam na to rozwiązanie - jest tandetne, ale sam jestem ciekawy jak by się sprawdziło :-)
Pozdrawiam
Janusz

Ostatnio zamęczam: S800 na Omnibus F4
Awatar użytkownika
Burakko
Posty: 2231
Rejestracja: czwartek 14 cze 2012, 20:55
Lokalizacja: Dąbrowa Górnicza

Re: BuTank a dlaczego nie.

Post autor: Burakko »

xq_operator to nie wina wejścia tylko przeliczania pulein. Podpinam pod zwykły odbiornik drga pod tester serw i drga. A jak pisałem wyżej dałem na terminal zmienna odczytywaną z pulsein i już ona drga. Tak jak by to była wina obliczeń komendy pulse (brak dokładności).

JSt ty chcesz by było co 25 sterowane ? to będę musiał narobić pełno IF ? if 1500 to 1525 then 1500, if 1526 to 1550 then 1525 itd... ?
Mapka ŚL http://maps.google.com/maps/ms?ie=UTF&m ... bcc46646ee

Kontroler lotu: "Widoczność pionowa zero."
Pilot: "W stopach czy w metrach?"

Nie pisz "Dron" moje dzieci mogą to czytać...
Awatar użytkownika
JSt
Posty: 137
Rejestracja: wtorek 14 kwie 2015, 12:13
Lokalizacja: Kraina Kwitnącej Bulwy

Re: BuTank a dlaczego nie.

Post autor: JSt »

Nie tak...
Przepisujesz sygnał z wejścia na wyjście tylko wtedy kiedy różnica była większa niż 20.

pierwszy odczyt pulsein - 1510 - na wyjściu defaultowo ustawione przy inicjalizacji 1500 - stoi silnik.
kolejny odczyt pulsein - 1519 - na wyjście nic nie puszczasz - więc jest 1500,
trzeci odczyt - 1530 - przepisujesz na wyjście jedzie do przodu i zachowujesz 1530 do porównywania
czwarty odczyt 1520 - nic nie przepisujesz itd
Coś takiego - oczywiście eksperymentalnie...

Kod: Zaznacz cały

if (pulsein_value > pulsein_value_poprzednie+20) OR (pulsein_value < pulsein_value_poprzednie-20)
{
Przepisz pulsein_value na wyjście;
Przepisz pulsein_value do pulsein_value_poprzednie;
}
mielisz tego ifa ciągle w main i tyle...
Pozdrawiam
Janusz

Ostatnio zamęczam: S800 na Omnibus F4
Awatar użytkownika
Burakko
Posty: 2231
Rejestracja: czwartek 14 cze 2012, 20:55
Lokalizacja: Dąbrowa Górnicza

Re: BuTank a dlaczego nie.

Post autor: Burakko »

mój program to:

Kod: Zaznacz cały

#include <Servo.h> 

Servo servo1; 
Servo servo2; 
int gain1 = 2;
int gain2 = 2;
int s1= 0;
int s2= 0;
int s11= 0;
int s12= 0;

void setup() 
{ 
Serial.begin(115200);
servo1.attach(9); // ESC 1 - pin 9
servo2.attach(10); // ESC 2 - pin 10
pinMode(3, INPUT); // Wejście 1 pin3 
pinMode(4, INPUT); // Wejście 2 pin4 
} 

void loop() 
{ 
s1 = (pulseIn(3,HIGH)-1500)/gain1;
s2 = (pulseIn(4,HIGH)-1500)/gain2;

s11 = (s1+s2+1500);
s12 = (s1-s2+1500);

 if (s11 > 1500)  // Doregulowanie strony silnikow
{
  s11 = (s11*1);  // Mnoznik
}

if (s12 < 1500)   // Dregulowanie strony silnikow
{
  s12 = (s12*1);  // Mnoznik
}

servo1.writeMicroseconds(s11);
servo2.writeMicroseconds(s12);
Serial.println(s11); 
Serial.println(s12); 


}
Nie bardzo wiem co mam wstawić jako pulsein_value_poprzednie ?? I jak tak modyfikujemy program to mam pytanie jak zrobić rampę akceleracji silników by nie startowały tak na max moment tylko niech się rozpędzają ? Nie chodzi mi by ktoś napisał to za mnie... ale chociaż tą przysłowiową wędke :D

a tu screan jak bardzo drga wyjście

Obrazek
Mapka ŚL http://maps.google.com/maps/ms?ie=UTF&m ... bcc46646ee

Kontroler lotu: "Widoczność pionowa zero."
Pilot: "W stopach czy w metrach?"

Nie pisz "Dron" moje dzieci mogą to czytać...
Awatar użytkownika
JSt
Posty: 137
Rejestracja: wtorek 14 kwie 2015, 12:13
Lokalizacja: Kraina Kwitnącej Bulwy

Re: BuTank a dlaczego nie.

Post autor: JSt »

Masz wyjście s.bus w odbiorniku ? Jeśli tak - daj proszę znać. Robiłem odczyt na Arduino z Taranisa i X8R przez rx Arduino - wygląda znacznie, znacznie lepiej - dryft o 1, max 2 miałem.
Sterowanie - możesz rzucić okiem w gotowce ardupilot (rower) np.TU i pozostałe pliki z github - może coś wyszukasz na wzór.
A rozpędzanie silników prościej możesz zrobić od strony sterowania - na telefonie lub przy odpowiednim machaniu drągami apki :-)
A i jeszcze jedna ważna sprawa PulseIn blokuje pracę procka i czeka na sygnał: Please also note that if the pin is already high when the function is called, it will wait for the pin to go LOW and then HIGH before it starts counting.
Pozdrawiam
Janusz

Ostatnio zamęczam: S800 na Omnibus F4
Awatar użytkownika
Burakko
Posty: 2231
Rejestracja: czwartek 14 cze 2012, 20:55
Lokalizacja: Dąbrowa Górnicza

Re: BuTank a dlaczego nie.

Post autor: Burakko »

Wiem bo to tak jak by cos podobnego do bitwait. I nie mam s.busa bo odbiornikiem jest Wi-Fi esp8266-12
Mapka ŚL http://maps.google.com/maps/ms?ie=UTF&m ... bcc46646ee

Kontroler lotu: "Widoczność pionowa zero."
Pilot: "W stopach czy w metrach?"

Nie pisz "Dron" moje dzieci mogą to czytać...
Awatar użytkownika
DzikuVx
Posty: 322
Rejestracja: niedziela 26 kwie 2015, 21:38
Lokalizacja: Szczecin / Berlin

Re: BuTank a dlaczego nie.

Post autor: DzikuVx »

Jeśli mogę swoje 3 grosze: Generalnie, można dosyć dokładnie odczytać wartość kanałów używając przerwań i wygładzania.
Awatar użytkownika
Burakko
Posty: 2231
Rejestracja: czwartek 14 cze 2012, 20:55
Lokalizacja: Dąbrowa Górnicza

Re: BuTank a dlaczego nie.

Post autor: Burakko »

channel_length[] - to zmienna wyjściowa z czasem ? dobrze rozumiem ?
Mapka ŚL http://maps.google.com/maps/ms?ie=UTF&m ... bcc46646ee

Kontroler lotu: "Widoczność pionowa zero."
Pilot: "W stopach czy w metrach?"

Nie pisz "Dron" moje dzieci mogą to czytać...
ODPOWIEDZ