dron na arduino - zawiesza się

Masz problem z Arduino? Tutaj możesz szukać pomocy.
ODPOWIEDZ
twardek1
Młodszy majsterkowicz
Posty: 7
Rejestracja: 8 gru 2015, 22:08

dron na arduino - zawiesza się

Post autor: twardek1 » 14 maja 2016, 22:13

Witam
Postanowiłem zrobić na arduino drona. W tym celu zmontowałem 2 shieldy na UNO [klony]. W pilocie mam 2 joysticki i chwilowo zasilam go z kompa. Do komunikacji używam modułów nrf24l01. W dronie mam 4 silniki szczotkowe. Są zasilanie przez mosfety z PWM-ów arduino. Dodatkowo między pin a tranzystor dałem zwykłą diodę prostowniczą. Całość (włącznie z arduino przez VIN) jest zasilana z lipo 7.4V. Problem jest w tym że arduino się zawiesza :
-gdy bardzo szybko zwiększam moc na silnikach
-gdy włączam odbiornik, a nadajnik na dzień dobry nadaje na pół mocy silników
Dodam że bez diod silniki w ogóle nie chciały ze sobą i z arduino współpracować, w trybie PWM.

Czy to może być wina diod, tzn. czy nie powinienem wmontować diod shottky'ego?
Może problem jest w zasilaniu arduino?
Ewentualnie może wina klona?

Jeśli ktoś wie co się dzieję to bardzo proszę o pomoc.

Co miesiąc do wygrania nagrody o wartości ponad 1600 zł!


Awatar użytkownika
Zbycho_GL
Majsterkowicz
Posty: 51
Rejestracja: 11 kwie 2016, 19:54
Lokalizacja: Gliwice

Re: dron na arduino - zawiesza się

Post autor: Zbycho_GL » 15 maja 2016, 20:44

Za mało danych.
Może przyczyną są zakłócenia pochodzące z silników ?
Wrzuć chociaż schemat połączeń.
twardek1
Młodszy majsterkowicz
Posty: 7
Rejestracja: 8 gru 2015, 22:08

Re: dron na arduino - zawiesza się

Post autor: twardek1 » 15 maja 2016, 21:18

Już odrabiam zaległości ;) Niestety nie mogę pokazać schematu, bo nie mam go na komputerze (a w zasadzie nie mogę go znaleźć).
Zaobserwowałem jeszcze, że gdy włączam tylko jeden silnik, szybka zmiana prędkości nie robi problemów, a gdy wszystkie-zacina się.
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
darecki258
Majsterkowicz
Posty: 81
Rejestracja: 3 sty 2014, 19:39

Re: dron na arduino - zawiesza się

Post autor: darecki258 » 16 maja 2016, 10:31

Kiedys przy swoim projekcie tez mialem problem z zacinajacym sie arduino.
Tez było zasilanie z lipo 7 . 4V
I okazało się ze bateria miała za mała wydajność pradową przez co arduino dostawalo zbyt mało prądu i sie zawieszalo

Podobnie może byc tu
zarówno przy szybkim zwiekszaniu mocy jak jednoczesnym uruchomieniu 4 silników na połowę mocy chwilowy pobór prądu może być zbyt duży dla lipo przez co adruino ma go za mało i sie zawiesza

Dla testów podłącz jakis w miare mocny zasilacz i zobacz czy wtedy tez bedzie się zawieszac jesli nie problem leży po stronie lipo ( za mala wydajność ) jesli to nie zadziała trzeba szukać problemu gdzie indziej

Wysłane z mojego GT-N7100 przy użyciu Tapatalka
razorxx100
Starszy majsterkowicz
Posty: 329
Rejestracja: 1 sie 2014, 22:57

Re: dron na arduino - zawiesza się

Post autor: razorxx100 » 16 maja 2016, 15:17

Na 90% jest to wina zasilania.
Daj jakis wiekszy kondensator zeby dal rade utrzymac arduino z 2-3s przy chwilowych skokach poboru mocy.
twardek1
Młodszy majsterkowicz
Posty: 7
Rejestracja: 8 gru 2015, 22:08

Re: dron na arduino - zawiesza się

Post autor: twardek1 » 16 maja 2016, 20:10

Witam
Próbowałem podłączyć drona i do kompa i do zasilacza, ale zawiesza się jeszcze bardziej. Wtedy nie działa zupełnie.
Nie mogę wklejać linków, więc musicie wklepać w YouTube w wyszukiwarce: "video 2016 05 16 18 11 16" i zobaczycie jak sprawa wygląda bez USB. Z lipo mogę wyciągnąć 20C czyli 60A, a silniki (bez obciążenia) ciągną do 16A, więc zasilanie chyba nie jest problemem, ale mogę się mylić.

Przypomniałem sobie jeszcze bardzo ważną sprawę: zanim pomiędzy piny PWM a mosfety wsadziłem diody, nie mogłem sterować trzema silnikami w trybie PWM, a w zasadzie czasem działało, a czasem nie (włącz-wyłącz działało ok). To były piny 10, 9, 6, o dziwo na pinie 5 działało. Po wsadzeniu diod działają wszystkie.

Pomiędzy PWM a mosfety użyłem zwykłych diod prostowniczych, może powinienem dać diody shottky'ego?
może to wina "klonowatości" mojego arduino?

Z góry dzięki za pomoc ;)
Merlin14
Młodszy majsterkowicz
Posty: 8
Rejestracja: 16 maja 2016, 20:51

Re: dron na arduino - zawiesza się

Post autor: Merlin14 » 16 maja 2016, 21:04

Czyli według mnie na pewno wina nie stoi po stronie klona lecz po stronie odbiornika i nadajnika jakiego tam użyłeś po
prostu ma za wolny transfer danych i zacina się przy dużej ilości danych.
twardek1
Młodszy majsterkowicz
Posty: 7
Rejestracja: 8 gru 2015, 22:08

Re: dron na arduino - zawiesza się

Post autor: twardek1 » 16 maja 2016, 21:16

Raczej nie, przesyła tylko jedną zmienną, sprawdzałem je i działają dobrze, tym bardziej, że pojedynczy silnik działa.
Może to te diody.

Tak w ogóle, szukam i szukam w internecie i dalej nie rozumiem, jakie są możliwości, żeby zawiesić arduino? Może wiedząc to uda mi się znaleźć problem.
Merlin14
Młodszy majsterkowicz
Posty: 8
Rejestracja: 16 maja 2016, 20:51

Re: dron na arduino - zawiesza się

Post autor: Merlin14 » 16 maja 2016, 22:01

Więc raczej masz rację to przez te diody prostownicze mogą być zbyt wolne ale nie wiem ponieważ to jest bardzo niski prąd więc problem nie wiem czy nie jest w programie.
twardek1
Młodszy majsterkowicz
Posty: 7
Rejestracja: 8 gru 2015, 22:08

Re: dron na arduino - zawiesza się

Post autor: twardek1 » 16 maja 2016, 22:16

Program odbiornika:

Kod: Zaznacz cały

//odbiornik
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>

RF24 radio(7,8);

const byte rxAddr[6]="00001";

void setup()
{
  pinMode(5,OUTPUT);
  pinMode(6,OUTPUT);
  pinMode(9,OUTPUT);
  pinMode(10,OUTPUT);
  Serial.begin(9600);
  
  radio.begin();
  radio.openReadingPipe(0,rxAddr);
  radio.startListening();
}

void loop()
{
  int text[1]={0};
   if(radio.available())
   {
    radio.read(&text, sizeof(text));
    text[0]=map(text[0],0,1023,0,254);
    analogWrite(10,text[0]);
    analogWrite(9,text[0]);
    analogWrite(6,text[0]);
    analogWrite(5,text[0]);
    Serial.println(text[0]);
   }
   else
   { 
    Serial.print("blad");
   }
}   

Program nadajnika:

Kod: Zaznacz cały

#include <SPI.h>
#include <RF24.h>
#include <nRF24L01.h>
RF24 radio(9,10);
const byte rxAddr[6]="00001";
int text[1];

void setup() {
  Serial.begin(9600);
  radio.begin();
  radio.openWritingPipe(rxAddr);

}

void loop()
{

text[0]=analogRead(A1);
radio.write(&text,sizeof(text));
Serial.println(text[0]);

}
Merlin14
Młodszy majsterkowicz
Posty: 8
Rejestracja: 16 maja 2016, 20:51

Re: dron na arduino - zawiesza się

Post autor: Merlin14 » 16 maja 2016, 22:37

Więc teraz na myśl mi przyszło że jak jeden wcześniej działał to z programem nie ma problemu więc problem może być z zasilaniem z batri jaką masz sprubuj dać stabilizator albo kondensator i sprubuj odciąć jeszcze zasilanie z bateri i podłączyć tylko z kompa.
Awatar użytkownika
Zbycho_GL
Majsterkowicz
Posty: 51
Rejestracja: 11 kwie 2016, 19:54
Lokalizacja: Gliwice

Re: dron na arduino - zawiesza się

Post autor: Zbycho_GL » 16 maja 2016, 23:00

Możesz spróbować wykorzystać 2 akumulatory. Jeden zasilający Arduino, drugi zas wyłącznie silniki. Nie zapomnij jednak, aby masy (bieguny ujemne) obydwu baterii były połączone razem. W ten sposób wykluczysz ewentualny wpływ gwałtownego i krótkotrwałego spadku napięcia zasilania spowodowanego nadmiernym obciążeniem przez napęd, a mogącego mieć wpływ na poprawne dzialanie mikrokontrolera.
razorxx100
Starszy majsterkowicz
Posty: 329
Rejestracja: 1 sie 2014, 22:57

Re: dron na arduino - zawiesza się

Post autor: razorxx100 » 17 maja 2016, 00:18

Merlin14 pisze:Więc teraz na myśl mi przyszło że jak jeden wcześniej działał to z programem nie ma problemu więc problem może być z zasilaniem z batri jaką masz sprubuj dać stabilizator albo kondensator i sprubuj odciąć jeszcze zasilanie z bateri i podłączyć tylko z kompa.
Na co ci dodatkowy stabilizator?
"Spróbuj"
Polecasz podlaczyc maszynke ktora ciagnie 16A do portu usb?
Merlin14
Młodszy majsterkowicz
Posty: 8
Rejestracja: 16 maja 2016, 20:51

Re: dron na arduino - zawiesza się

Post autor: Merlin14 » 17 maja 2016, 06:46

razorxx100 pisze:
Merlin14 pisze:Więc teraz na myśl mi przyszło że jak jeden wcześniej działał to z programem nie ma problemu więc problem może być z zasilaniem z batri jaką masz sprubuj dać stabilizator albo kondensator i sprubuj odciąć jeszcze zasilanie z bateri i podłączyć tylko z kompa.
Na co ci dodatkowy stabilizator?
"Spróbuj"
Polecasz podlaczyc maszynke ktora ciagnie 16A do portu usb?
Chodzło mi raczej to żeby samo arduino podłączył do USB a same silniki do bateri. A po drugie jak na filmiku to nie jest możliwe żeby bez śmigieł ciągnęły 16A.
twardek1
Młodszy majsterkowicz
Posty: 7
Rejestracja: 8 gru 2015, 22:08

Re: dron na arduino - zawiesza się

Post autor: twardek1 » 17 maja 2016, 23:12

Witam.
podłączyłem tego drona do baterii, do USB, potem do obu naraz i coś mnie tknęło, żeby sprawdzić serial monitor i wyobraźcie sobie jakie było moje zdziwienie, kiedy po jego włączeniu dron przestał się zawieszać, po tej operacji dron działa świetnie nawet przy 4 silnikach, w ten sposób mogę również odwiesić arduino (bardzo się starałem i raz albo dwa po wielu próbach udało mi się je zawiesić). Nawet po odłączeniu USB (pod warunkiem, że ma zasilanie z lipo) działa.
Niestety efekt jest jednorazowy i od razu po ponownym włączeniu (całkowicie odłączam zasilanie, a potem na odwrót) przestaje działać, tzn. znów się zawiesza.

Może przegapiłem jakiś bardzo podstawowy błąd, ale czy ktoś byłby w stanie mi to wytłumaczyć tak na chłopski rozum?
Merlin14
Młodszy majsterkowicz
Posty: 8
Rejestracja: 16 maja 2016, 20:51

Re: dron na arduino - zawiesza się

Post autor: Merlin14 » 18 maja 2016, 07:37

Może z programu który wgrywasz spróbuj usnąć komunikacje z portem szeregowym. Ale dlaczego ci to zadziałało to nie wiem.
jar800v
Młodszy majsterkowicz
Posty: 39
Rejestracja: 2 lut 2015, 11:09

Re: dron na arduino - zawiesza się

Post autor: jar800v » 18 maja 2016, 19:47

Merlin14 pisze:Ale dlaczego ci to zadziałało to nie wiem.
Zadziałało ponieważ otwarcie terminala resetuje Arduino poprzez linie DTR (jest ona podłączona do pinu RST przez kondensator) przejściówki USB-UART.
twardek1
Młodszy majsterkowicz
Posty: 7
Rejestracja: 8 gru 2015, 22:08

Re: dron na arduino - zawiesza się

Post autor: twardek1 » 18 maja 2016, 22:12

No dobrze ale, normalnie się zacina, a po otwarciu serial monitora działa poprawnie i nawet przy dużych staraniach nie chce się zawiesić.

1) dlaczego Serial monitor "uzdrawia" arduino (nie tnie się jak zwykle)?
2) co mogę zrobić, żeby w dronie zastąpić Serial monitor?
konstruktor
Majsterkowicz
Posty: 100
Rejestracja: 27 wrz 2015, 16:23

Re: dron na arduino - zawiesza się

Post autor: konstruktor » 19 maja 2016, 15:02

a po co ci ten serial monitor?
wyrzuć go z kodu może coś to da
Merlin14
Młodszy majsterkowicz
Posty: 8
Rejestracja: 16 maja 2016, 20:51

Re: dron na arduino - zawiesza się

Post autor: Merlin14 » 19 maja 2016, 19:42

Nie da on już próbował tak.
Awatar użytkownika
Zbycho_GL
Majsterkowicz
Posty: 51
Rejestracja: 11 kwie 2016, 19:54
Lokalizacja: Gliwice

Re: dron na arduino - zawiesza się

Post autor: Zbycho_GL » 20 maja 2016, 11:10

A może jest to związane z szybkością pracy Arduino. Odczytywanie seriala powoduje spowolnienie pracy układu, może niewielkie, ale jednak. Moze tu leży problem ?
ODPOWIEDZ

Strony partnerskie: