Światłolub - mnóstwo pytań i wątpliwości

Masz problem z Arduino? Tutaj możesz szukać pomocy.
ODPOWIEDZ
ZaiZu
Młodszy majsterkowicz
Posty: 11
Rejestracja: 16 kwie 2016, 01:31

Światłolub - mnóstwo pytań i wątpliwości

Post autor: ZaiZu » 16 kwie 2016, 01:32

Witam wszystkich,
jako że od kilku dni pożeram wszelkiego rodzaju kursy, poradniki, pomoce dotyczące programowania w Arduino, stwierdziłem że czas na pierwszy projekt. Pewnie napiszę przydługi i nieciekawy wstęp, więc proponuję osobom niecierpliwym przejście do sekcji oznaczonej [****], gdzie będę wyjaśniał jakie problemy napotkałem. Postanowiłem stworzyć światłoluba, lecz zamiast zadowalać się przeciętną, mało estetyczną, i raczej nieciekawą budową, stwierdziłem że postaram się go w miarę moich możliwości ulepszyć.

Głównymi założeniami jakie sobie poczyniłem są:
1. Zwiększona ilość czujników światłoczułych - chcę by mój robot świadomy był natężenia światła 360 stopni wokół siebie. Koncepcja jest taka by zaopatrzyć go w minimum 3 czujniki (a nawet 4).
2. Dzięki większej ilości elementów światłoczułych chcę by robot miał możliwość obrotu w miejscu - czegoś co w projektach które ogladałem nie zauważyłem.
3. Modularna budowa - arduino jak i akumulator ma być łatwy do demontażu, jednocześnie nie będąc zmuszonym do rozbierania modelu.
4. Skalowanie czułości el. fotoczułych - to jest odległa myśl, i nie wiem czy starczy mi umiejętności by ją zrealizować. Chciałbym mieć możliwość sterowania wrażliwością mojego światłoluba na światło.

Niestety problemy napotkałem już w fazie projektowania i myślenia nad konstrukcją. W większości dotyczą one napędu i zasilania robota.

[**********]

1. Mam straszny mętlik w głowie jeśli chodzi zespół napędowy. Dwa tylne koła będą napędzane przez osobne mechanizmy, jednak nie mam zielonego pojęcia jakie zastosować.
Waham się między serwomechanizmem a silnikiem DC - który z nich będzie odpowiedni do robota ważącego, szacuję, ok 600g? Na kursie na stronie Forbotu dowiedziałem się że serwo mogę podłączyć przez Arduino, jednak muszę ją zasilić przez wejście 9V. Jak to się ma do dwóch serwomechanizmów? Nie chciałbym usmażyć Arduino. Dodatkowo problemem będzie zasilanie owych serwomechanizmów, ale o tym w następnym punkcie.

Nie wiem jaką moc takiego serwa dobrać, by spokojnie pracowały, a również nie było przerostu mocy. Jakiego rodzaju? Medium wystarczy? Super by było gdyby ktoś rzucił jakiś określony model, w którym zamknę się w ok. 25zł/sztukę.

Dodatkowo, znalazłem informację że takie serwo muszę "zmodyfikować" by działało w 360stopniach (obrót), i odłączyć od jego układu sterowania. Czy nie stwarza to bezpieczeństwa dla Arduino?

Rozważam jeszcze silniki kątowe, jednak mam wrażenie że moc może być niewystarczająca. Czy to dobry pomysł?

Jeśli chodzi o silniki, to przekraczają one mój budżet, dodatkowo wymagają wstawiania mostka H. Dobrze rozumiem że jeden mostek H może sterować jednym silnikiem? Dałbym radę zasilić je z takiego powerbanka?

2. Chciałbym by moim zasilaczem był powerbank 10000mAh. Dysponuję więc dwoma złączami 5V 1A, 2.1A. Czy mogę zasilić Arduino z jednego wejścia, a obwód silników z drugiego (2.1A)? Czy w razie użycia serwo, wystarczy zasilanie przez USB (Kurs temu zaprzeczał).

3. Jaka jest różnica między zastosowaniem fotorezystorów a fototranzystorów jeśli chodzi o jakość uzyskanego sygnału? W większości projektów widziałem że to fototranzystory są używane.

4. Czy znajdę jakąś plastikową listewkę, coś co uporządkuje mi piny przy Arduino. Chodzi mi o fakt, żebym odłączywszy arduino, i wpinawszy je np. po 2 miesiącach, nie musiał przypominać sobie który pin za co odpowiadał, tylko wpinać je całym pasmem. Da radę to załatwić goldpinem?

5. Na czym oprzeć układy mojego robota? Zakupić uniwersalną płytkę do której dolutuje wszystkie potrzebne elementy?
------

Wiem że pytań jest dużo, pewnie niektóre naprawdę elementarne, jednak nie mogę znaleźć tych określonych informacji. Bardzo dziękuję za pomoc. Na koniec dodam że konstrukcja będzie oparta na Lego Technics.

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: Światłolub - mnóstwo pytań i wątpliwości

Post autor: Zbycho_GL » 16 kwie 2016, 13:32

Każdy pomysł, który zaprowadzić nas może do zwiększenia naszych umiejętności i wiedzy, jests dobry. Ważne, żeby nie zrażać się niepowodzeniami, w szczególności na początku drogi.
Moje uwagi:
1. jeśli światłolub ma mieć możliwość kontroli pola 360 stopni, to sugerowałbym nie 4, lecz 8 elementów światłoczułych (co 45 stopni)
2. obrót w miejscu ? Świetny pomysł. Projekty, które do tej pory oglądałem poruszały się w stronę światła. Obrót jak i poruszanie się w dowolnym kierunku najlepiej będzie zrealizować z wykorzystaniem dwóch serw. Napęd silnikami DC będzie szybszy i chyba droższy, serwa w zupełności wystarczą (łatwa przeróbka na napęd i równie łatwe sterowanie). Zasilanie 5V wystarczy w zupełności, jednak nie jestem już pewny, czy bezpośrednie obciążenie prądowe Arduino będzie wystarczające. Pewnie konieczne będzie zastosowanie jakiś driverów (gotowe rozwiązania sterowania silnikami, własny układ lub w ostateczności przekaźniki). Konstrukcja ? Np. okrągła podstawa, serwa na przeciwko siebie oraz dodatkowe dwa kółeczka/kulki również po przeciwnych stronach, aby platforma utrzymywała równowagę - zresztą nawet jedno wystarczy.
3. O modularności projektu sam decydujesz, np. dwu / trzy poziomowa konstrukcja, każdy poziom to wydzielona część urządzenia (napęd, baterie, elektronika itp.
4. Skalowanie czułości programowe - proste
5. Silniki kątowe - bardziej odpowiedni określenie - silniki krokowe - na początek odpuściłbym sobie to rozwiązanie
6. Ad. 2: z dużym nadmiarem taki power bank wystarczy, możesz tak to zasilać. Czy przez USB ? Zależy od zastosowanych serw - do sprawdzenia
7. Ad. 3: Fotorezystory będą tańsze i w zupełności wystarczą
8. Ad.4: Goldpin listwowy jak najbardziej da radę i spełni Twoje założenia
9. Ad. 5: w tym miejscu sam musisz sobie odpowiedzieć na pytanie co jesteś w stanie zrobić samodzielnie. Może lepszym pomysłem będzie skorzystanie z pewnych gotowych rozwiązań (gotowa płytka Arduino, ew.mostek-driver do serw), a skupić się wyłącznie na tych elementach, które trudno będzie zakupić (podwozie, płytka z fotorezystorami).
Doczytawszy całość doszedłem do "Lego technics". No to teraz tylko z górki - Lego znacznie ułatwi Ci rozwiązanie mechaniczne.
Powodzenia !
ZaiZu
Młodszy majsterkowicz
Posty: 11
Rejestracja: 16 kwie 2016, 01:31

Re: Światłolub - mnóstwo pytań i wątpliwości

Post autor: ZaiZu » 17 kwie 2016, 15:06

Zbycho_GL pisze: 1. jeśli światłolub ma mieć możliwość kontroli pola 360 stopni, to sugerowałbym nie 4, lecz 8 elementów światłoczułych (co 45 stopni)
Przeanalizowałem temat. Zaopatrzyłem się w 10 fototranzystorów (kosztowo wychodziły bardzo podobnie do rezystorów), z noty wyczytałem że pole czułości dla każdego wynosi 30 stopni. Użyję tak jak poradziłeś mi od 8 do 10 elementów, co da mi ok. 300 stopni czułości, a pozostałe 60 'ślepych' stopni rozmieszczę równomiernie między czujnikami.

Takie jedno pytanie teoretyczne - w Arduino mam tylko 6 wejść analogowych, co zmusi mnie do podpięcia max 6 takich czujników. Co z takim fantem począć? Mogę w jakiś prosty sposób zarządzać większą ilością tych samych czujników? Istnieją jakieś sterowniki do takich rzeczy?
Zbycho_GL pisze: 2. obrót w miejscu ? Świetny pomysł. Projekty, które do tej pory oglądałem poruszały się w stronę światła. Obrót jak i poruszanie się w dowolnym kierunku najlepiej będzie zrealizować z wykorzystaniem dwóch serw. Napęd silnikami DC będzie szybszy i chyba droższy, serwa w zupełności wystarczą (łatwa przeróbka na napęd i równie łatwe sterowanie). Zasilanie 5V wystarczy w zupełności, jednak nie jestem już pewny, czy bezpośrednie obciążenie prądowe Arduino będzie wystarczające. Pewnie konieczne będzie zastosowanie jakiś driverów (gotowe rozwiązania sterowania silnikami, własny układ lub w ostateczności przekaźniki). Konstrukcja ? Np. okrągła podstawa, serwa na przeciwko siebie oraz dodatkowe dwa kółeczka/kulki również po przeciwnych stronach, aby platforma utrzymywała równowagę - zresztą nawet jedno wystarczy.
Od początku w zamyśle miałem dwa osobno sterowane serwa. Poczyniłem pewne obliczenia, wyszło mi że serwa micro (najtańsze, po przerobieniu potencjometru) będą w zupełności wystarczające by rozpędzić mojego robota do bagatela 2m/s. Serwa i Arduino podłączę w osobne porty 2.1A i 1A, co da mi odrębne układy zasilające.

Możesz rozwinąć się z tymi sterownikami silnika? Dobrze rozumiem że używając serw podpiętych do osobnego zasilania, nie potrzebuję żadnych dodatkowych układów? (W jednym z kursów w internecie jest napisane że potrzebny jest stabilizator napięcia dla serwa - jest to konieczne? W powerbanku chyba mam ustabilizowane 5V). Kabelek sygnału idzie do arduino i będę serwem sterował modulacją wypełnienia sygnału.

Na początku miały być 4 koła, z tylną osią napędzającą, ale wtedy obrót w miejscu odpada.Kierowałem się w tym myśleniu tylko estetyką konstrukcji, możliwe że dam 3 koła, z czego przednie będzie kołem na łożysku obrotowym. Muszę to jeszcze przemyśleć.
Zbycho_GL pisze: 3. O modularności projektu sam decydujesz, np. dwu / trzy poziomowa konstrukcja, każdy poziom to wydzielona część urządzenia (napęd, baterie, elektronika itp.
Dokładnie tak to zaplanowałem, 3 poziomowa konstrukcja.


Dzięki za pomoc, dużo mi wyklarowałeś!
razorxx100
Starszy majsterkowicz
Posty: 329
Rejestracja: 1 sie 2014, 22:57

Re: Światłolub - mnóstwo pytań i wątpliwości

Post autor: razorxx100 » 17 kwie 2016, 16:43

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

Re: Światłolub - mnóstwo pytań i wątpliwości

Post autor: Zbycho_GL » 17 kwie 2016, 21:06

Ponieważ nie budowałem nigdy Światłoluba, sam również nieco przemyślałem temat "gdybym to robił ja sam".
Zdecydowanie nie jest potrzebnych tyle czujników światła. Przecież robocik ma za światłem podążać (obracaś się), więc jednak lepszym rozwiązaniem będzie zastosowanie np. 3-5 elementów światłoczułych. To rozwiąże również Twoje obawy o ilości portów analogowych. Dlaczego 3-5 ?
Przede wszystkim liczba nieparzysta, ponieważ umieszczone po obwodzie obok siebie (jak najbliżej) środkowy z nich będzie pełnił rolę "lidera". Pozostałe po lewej i prawej stronie będą wyłącznie wspomagały analizę światła.
Serwa (właściwie silniki serw) najlepiej sterować driverami (gotowe płytki lub samodzielnie zmontowane, np. na układzie ULN2003). Linki:
http://botland.com.pl/arduino-shield-ko ... ololu.html
http://botland.com.pl/arduino-shield-ko ... duino.html
Gdy przejrzysz linki zorientujesz się, że zasilanie silników jest tam prowadzone niezależnie.
ZaiZu
Młodszy majsterkowicz
Posty: 11
Rejestracja: 16 kwie 2016, 01:31

Re: Światłolub - mnóstwo pytań i wątpliwości

Post autor: ZaiZu » 18 kwie 2016, 23:18

Zbycho_GL pisze: Zdecydowanie nie jest potrzebnych tyle czujników światła. Przecież robocik ma za światłem podążać (obracaś się), więc jednak lepszym rozwiązaniem będzie zastosowanie np. 3-5 elementów światłoczułych. To rozwiąże również Twoje obawy o ilości portów analogowych. Dlaczego 3-5 ?
Przede wszystkim liczba nieparzysta, ponieważ umieszczone po obwodzie obok siebie (jak najbliżej) środkowy z nich będzie pełnił rolę "lidera". Pozostałe po lewej i prawej stronie będą wyłącznie wspomagały analizę światła.
Przyznam szczerze że mam problem w pełnym zrozumieniu co tu napisałeś. 3 czujniki nie pozwolą mi zbierać natężenia światła zza robota, więc uczyni go to ślepym. Dodatkowo duża liczba czujników daje mi tę "niezawodność" że światło zostanie złapane, a nie że jeden czujnik wychwyci minimalny wzrost, i podobnie drugi obok, przez co robot potraktuje to jak "szum". Myślę że ewentualnie 4 czujniki na narożach robota mogłyby podołać, jednak obawiam się że snop światła skierowany idealnie na wysokości boku pojazdu (który jest dłuższy niż szerszy), zostanie pominięty. Tak to widzę, mylę się?
Zbycho_GL pisze: Serwa (właściwie silniki serw) najlepiej sterować driverami (gotowe płytki lub samodzielnie zmontowane, np. na układzie ULN2003). Linki:
...
Faktycznie, jest to bardzo przyjemna nakładka, jednak jej koszt, jako elementu który będzie musiał 'pozostać w robocie" jest dla mnie bolesny. Dodatkowo zamierzam przerobić serwa tak, by w miejsce potencjometru wlutować 2 rezystory, dzięki czemu będę mógł sterować silnikiem przez sterownik w serwie. Dobrze myślę?
razorxx100 pisze:...
Następna bardzo przyjemna płytka, wszystko jest w niej oczywiste, jednak za droga. Zainteresowałem się samym scalakiem (preferuję niską cenę, ponad przyjemnym łączeniem). Poszedłem dziś do elektronicznego we Wrocławiu, dopytałem Pana o multiplekser, okazało się że mają 4-kanałowy. Nie jestem pewien czy jest to na pewno scalak których chciałem, jednak 1zł to cena akceptowalna. Dostałem od niego układ HCF40066BE, notę znalazłem dla układu HCF4066BEY (wydaje mi się że to to samo). Moje wątpliwe umiejętności elektroniczne poległy na analizie jego rysunku:
ss (2016-04-18 at 11.12.32).png
Może mi ktoś wyjaśnić jak wygląda jego podłączanie do Arduino?
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
Szymonjo
Młodszy majsterkowicz
Posty: 38
Rejestracja: 21 wrz 2014, 12:48

Re: Światłolub - mnóstwo pytań i wątpliwości

Post autor: Szymonjo » 19 kwie 2016, 07:19

Możesz zawsze kupić gotowe serwo 360 stopni i nie bawić się w przeróbki.
Awatar użytkownika
Marhef
Złota rączka
Posty: 1164
Rejestracja: 18 lis 2011, 02:18

Re: Światłolub - mnóstwo pytań i wątpliwości

Post autor: Marhef » 19 kwie 2016, 09:05

ZaiZu pisze: Poszedłem dziś do elektronicznego we Wrocławiu, dopytałem Pana o multiplekser, okazało się że mają 4-kanałowy. Nie jestem pewien czy jest to na pewno scalak których chciałem, jednak 1zł to cena akceptowalna. Dostałem od niego układ HCF40066BE, notę znalazłem dla układu HCF4066BEY (wydaje mi się że to to samo). Moje wątpliwe umiejętności elektroniczne poległy na analizie jego rysunku:
ss (2016-04-18 at 11.12.32).png
Może mi ktoś wyjaśnić jak wygląda jego podłączanie do Arduino?
Według opisu w nocie jest to "przełącznik dwukierunkowy do transmisji lub multipleksowania sygnałów" (tłumaczenie moje, niekoniecznie dobre). Jeśli chcesz podłączyć wszystkie sygnały do jednego wejścia analogowego, spinasz razem nóżki 1, 4, 8, 11 i podpinasz je do wejścia analogowego arduino. Nóżki 2, 3, 9, 10 podłączasz do sygnałów, które chcesz przełączać. Wyprowadzenia 13, 5, 6, 12 służą do załączania kolejnych kanałów, więc podłączasz je do pinów cyfrowych arduino, którymi będziesz wybierał interesujący Cię sygnał. Ważne jest, żeby stan wysoki (Vcc) był tylko na jednej z tych nóżek, pozostałe muszą być na 0V (GND) Vdd, Vss to zasilanie (Vdd to Vcc z arduino, Vss to GND). Rozjaśniło to coś?
Moim zdaniem, wybrałeś zły układ. Jest dostępny CD4051 - multiplekser 8-kanałowy. Łatwiej nim sterować (na 8 sygnałów potrzebujesz 3 piny cyfrowe do wyboru kanału), mniejsze prawdopodobieństwo, że podłączysz coś źle.
Awatar użytkownika
Zbycho_GL
Majsterkowicz
Posty: 51
Rejestracja: 11 kwie 2016, 19:54
Lokalizacja: Gliwice

Re: Światłolub - mnóstwo pytań i wątpliwości

Post autor: Zbycho_GL » 19 kwie 2016, 12:26

No cóż, gdy pierwszy raz odpisywałem na Twojego posta byłem przekonany, że trzeba zastosować dużo czujników światła aby zyskać owe 360 stopni. Jednak po głębszym zastanowieniu się zmieniłem zdanie: skoro robot ma szukać światła, to w tym celu będzie się obracał, stąd propozycja ilości 3-5 czujników. Jeśli jednak czujniki będą obejmowały 360 stopni (np. 8-16 czujników), to robot nie musi się obracać ! Niezawodność w działaniu osiągniesz programowo.

Serwo: tak, możne zwykłe serwo przerobić na napęd stosując zamiast potencjometru wewnątrz mechanizmu, dwa identyczne rezystory np. 4k7 każdy. Nie można zapomnieć jednak o usunięciu blokady ograniczającej ruch koła zębatego. W niektórych serwach oś potencjometru stanowi oś obrotu kółka / kółek zębatych. Należy wtedy "spowodować, aby potencjometr kręcił się wokół własnej (usunięcie blokady). Zwracam uwagę, że mimo poprawnego przerobienia serwa może zdarzyć się sytuacja jego samowolnego obrotu. Taki objaw będzie spowodowany niedoskonałością zastosowanych rezystorów (tolerancja 5, a nawet 10%). Aby tego uniknąć zalecam możliwie najlepsze dobranie dwóch identycznych.

Wg karty produktu układ HCF40066BE powinien zadziałać, a przedmówca już sposób użycia opisał.
Awatar użytkownika
Marhef
Złota rączka
Posty: 1164
Rejestracja: 18 lis 2011, 02:18

Re: Światłolub - mnóstwo pytań i wątpliwości

Post autor: Marhef » 19 kwie 2016, 14:41

Dodam, że propozycja układu CD4051 jest dla większej ilości sygnałów analogowych.
Przy użyciu HCF40066BE (czy tam nie ma o jedno 0 za dużo?) potrzebujesz tyle samo pinów cyfrowych ile sygnałów analogowych chcesz mierzyć i musisz dbać o to, żeby tylko jeden z nich był w stanie HIGH. Używając zaproponowany przeze mnie układ, potrzebujesz tylko 3 pinów cyfrowych na 8m sygnałów analogowych, a wybierasz sygnał podając numer kanału w kodzie binarnym.
ZaiZu
Młodszy majsterkowicz
Posty: 11
Rejestracja: 16 kwie 2016, 01:31

Re: Światłolub - mnóstwo pytań i wątpliwości

Post autor: ZaiZu » 19 kwie 2016, 19:38

Marhef pisze:Dodam, że propozycja układu CD4051 jest dla większej ilości sygnałów analogowych.
Przy użyciu HCF40066BE (czy tam nie ma o jedno 0 za dużo?) potrzebujesz tyle samo pinów cyfrowych ile sygnałów analogowych chcesz mierzyć i musisz dbać o to, żeby tylko jeden z nich był w stanie HIGH. Używając zaproponowany przeze mnie układ, potrzebujesz tylko 3 pinów cyfrowych na 8m sygnałów analogowych, a wybierasz sygnał podając numer kanału w kodzie binarnym.
Twoja propozycja była mi bardziej na rękę, jednak nie mieli w sklepie takiego określonego układu, i musiałem się zadowolić tym co mi dali. W przypadku sklepu internetowego koszt wysyłki przerośnie kilkukrotnie wartość tego układu.

Dziękuję za łopatologiczne wyjaśnienie wspomnianego wcześniej układu.

I żeby Was nie zawieść, rzucę następne banalne pytanie. Dzisiaj dojechały serwa, i już napotkałem ścianę. Próbuję zasilić takie serwo z ładowarki do komórki - także 5V (Zmierzyłem 5,02V - serwo pracuje na 4,8V). Wysyłam sygnał by serwo sobie tykało co 5 stopni, podpinam zasilanie, w momencie podpięcia serwo przeskakuje o kilka stopni, i na tym kończy się odpowiedź układu. Dodam że kod jest na pewno poprawny, bo podpiąłem to serwo również przez złącze Vin arduino, i zachowywało się normalnie.
Zbycho_GL pisze:Należy wtedy "spowodować, aby potencjometr kręcił się wokół własnej (usunięcie blokady). Zwracam uwagę, że mimo poprawnego przerobienia serwa może zdarzyć się sytuacja jego samowolnego obrotu. Taki objaw będzie spowodowany niedoskonałością zastosowanych rezystorów (tolerancja 5, a nawet 10%). Aby tego uniknąć zalecam możliwie najlepsze dobranie dwóch identycznych.
Zmierzę opór potencjometru, i dobiorę odpowiednie, najdokładniejsze rezystory, ale to jak wreszcie zrozumiem w pełni mechanizm działania serw.
Awatar użytkownika
Zbycho_GL
Majsterkowicz
Posty: 51
Rejestracja: 11 kwie 2016, 19:54
Lokalizacja: Gliwice

Re: Światłolub - mnóstwo pytań i wątpliwości

Post autor: Zbycho_GL » 19 kwie 2016, 21:39

Serwo po podpięciu porusza się nieco i zostaje w nowym położeniu ? I nic więcej się nie dzieje ?
Tak objawia się brak lub nieodpowiednie wysterowane sygnałem, usterka nowego serw jest mało prawdopodobna.
Gdyby sygnał był właściwie "wystawiony", serwo za pierwszym podłączeniem mogłoby się obrócić (zaprogramowana w programie wartość inna niż neutrum), zaś po jego odłączeniu i ponownym podłączeniu (nie wyłączając Arduino) może co najwyżej drgnąć. W takim przypadku należałoby szukać przyczyny w programie, który ma sterować serwem co 5 stopni. Pamiętaj, że serwem sterujemy w sposób cyfrowy, nie analogowy !
Na wszelki wypadek podłącz zasilanie serwa do płytki Arduino, wykluczysz (lub potwierdzisz) uszkodzenie zasilacza.
Sprawdź więc najpierw układ połączeń (odpowiedni pin cyfrowy sterujący serwem) oraz właściwie zaprogramowane Arduino. Standardowe serwa (nie mówię o rozmiarze) posiadają zakres napięć zasilających od 4,8-6V, więc napięcie 5V "z haczykiem" nic nie powinno zrobić.
ZaiZu
Młodszy majsterkowicz
Posty: 11
Rejestracja: 16 kwie 2016, 01:31

Re: Światłolub - mnóstwo pytań i wątpliwości

Post autor: ZaiZu » 19 kwie 2016, 22:42

Zbycho_GL pisze:Serwo po podpięciu porusza się nieco i zostaje w nowym położeniu ? I nic więcej się nie dzieje ?
Tak objawia się brak lub nieodpowiednie wysterowane sygnałem, usterka nowego serw jest mało prawdopodobna.
Gdyby sygnał był właściwie "wystawiony", serwo za pierwszym podłączeniem mogłoby się obrócić (zaprogramowana w programie wartość inna niż neutrum), zaś po jego odłączeniu i ponownym podłączeniu (nie wyłączając Arduino) może co najwyżej drgnąć. W takim przypadku należałoby szukać przyczyny w programie, który ma sterować serwem co 5 stopni. Pamiętaj, że serwem sterujemy w sposób cyfrowy, nie analogowy !
Na wszelki wypadek podłącz zasilanie serwa do płytki Arduino, wykluczysz (lub potwierdzisz) uszkodzenie zasilacza.
Sprawdź więc najpierw układ połączeń (odpowiedni pin cyfrowy sterujący serwem) oraz właściwie zaprogramowane Arduino. Standardowe serwa (nie mówię o rozmiarze) posiadają zakres napięć zasilających od 4,8-6V, więc napięcie 5V "z haczykiem" nic nie powinno zrobić.
Ok, klaruję : serwem steruje pinem 9 (PWM). W momencie kiedy podłączam serwo do ładowarki (właśnie sprawdziłem), orczyk przesuwa się o kilka stopni i na tym kończy się jakakolwiek akcja, w momencie kiedy odłączę zasilanie, wraca na poprzednią pozycję (wydaję mi się że początkową). Podobnie wyglądała sytuacja po podpięciu do powerbanka. Trochę jestem bezradny.

Kiedy podepnę serwo pod zasilanie z Arduino (Vin,GND), cała sekwencja odbywa się bezproblemowo, tj, serwo ustawia się w położeniu "0", i następnie skacze co 5 stopni, i przy kącie 180 wraca do pozycji 0, i od nowa.

Edit: Zauważyłem że orczyk nie zatacza pełnych 180 stopni, a ruch kończy po jakichś 160stopniach. Spotkałem się z opinią że w micro serwach to normalne. To normalne?
stiven
Złota rączka
Posty: 1581
Rejestracja: 13 maja 2014, 08:47
Lokalizacja: Zielona Góra

Re: Światłolub - mnóstwo pytań i wątpliwości

Post autor: stiven » 19 kwie 2016, 23:39

Musi być wspólna masa kiedy są osobne zasilania.
ZaiZu
Młodszy majsterkowicz
Posty: 11
Rejestracja: 16 kwie 2016, 01:31

Re: Światłolub - mnóstwo pytań i wątpliwości

Post autor: ZaiZu » 19 kwie 2016, 23:49

stiven pisze:Musi być wspólna masa kiedy są osobne zasilania.
Działa! Wielkie dzięki.
ZaiZu
Młodszy majsterkowicz
Posty: 11
Rejestracja: 16 kwie 2016, 01:31

Re: Światłolub - mnóstwo pytań i wątpliwości

Post autor: ZaiZu » 21 kwie 2016, 01:45

Witam,
może mi ktoś wyjaśnić czemu rezystancja potencjometru była większa kiedy ją mierzyłem jak była podłączona do sterownika serwa (3,65k ohm), a w momencie kiedy go (potencjometr) odciąłem, to skoczyła w górę (5k ohm)? Fakt niestety zauważyłem dopiero po przylutowaniu rezystorów 'zastępczych', tj. kupiłem dwa 1,8k ohm (realnie jakieś 1770), a po wlutowaniu ich oporność spadła do około 1560ohm (różnica między jednym rezystorem a drugim to około kilku ohm).

EDIT: Teraz mnie oświeciło że układ równolegle wpięty też ma jakąś oporność, i przez to całkowita mierzona oporność maleje.

Podłączyłem tak wlutowane serwo (tj. sam silniczek i sterownik) do arduino, i zauważyłem, że pozycja neutralna dla niego następuje teraz dla położenia 105 (A nie 90 jak w normalnym serwie). Wynika to z faktu że moje zastępcze rezystory nie mają takiej oporności jak potencjometr?


Okazuje się że wlutowanie rezystorów to pikuś, a prawdziwa batalia czeka mnie z usunięciem fizycznego ogranicznika.
Awatar użytkownika
Zbycho_GL
Majsterkowicz
Posty: 51
Rejestracja: 11 kwie 2016, 19:54
Lokalizacja: Gliwice

Re: Światłolub - mnóstwo pytań i wątpliwości

Post autor: Zbycho_GL » 21 kwie 2016, 21:39

Dla połoźenia 105, powiadasz ...
Prawdopodobnie zamontowany potencjometr nie był w ustawieniu środkowym, gdy serwo miało neutrum. Taka zapewne konstrukcja serwa. To jednak nie powinno przeszkadzać w poprawnym jego działaniu po przeróbce. Powodzenia !
ZaiZu
Młodszy majsterkowicz
Posty: 11
Rejestracja: 16 kwie 2016, 01:31

Re: Światłolub - mnóstwo pytań i wątpliwości

Post autor: ZaiZu » 23 kwie 2016, 21:13

Czy jeśli poprowadzę zasilanie serw przez płytkę uniwersalną (max 400-500mA), to może popalić ścieżki?
Awatar użytkownika
Zbycho_GL
Majsterkowicz
Posty: 51
Rejestracja: 11 kwie 2016, 19:54
Lokalizacja: Gliwice

Re: Światłolub - mnóstwo pytań i wątpliwości

Post autor: Zbycho_GL » 24 kwie 2016, 21:17

Nie, nie popali ścieźek.
ZaiZu
Młodszy majsterkowicz
Posty: 11
Rejestracja: 16 kwie 2016, 01:31

Re: Światłolub - mnóstwo pytań i wątpliwości

Post autor: ZaiZu » 26 kwie 2016, 22:15

Może mi ktoś sprawdzić ten kod i powiedzieć gdzie leży błąd? Program wykonuje się bezbłędnie do warunku Switch...case, tj. znajduje czujnik na który pada największe światło, a jak dochodzi do pętli switch case (która steruje odpowiedzią serw), to nie ma żadnej reakcji, jakby robot w ogóle takiego warunku w kodzie nie miał.

Forum nie pozwala mi wrzucać linków, więc umieszczam kod w poście. Ewentualnie ( wklej*org-id-2351094-) <- zamiast myślników wstawcie slashe (/), zamiast gwiazdki kropkę.

EDIT: Stworzyłem takie same warunki oparte na ifach, i też nie chce ich realizować.

Kod: Zaznacz cały

#include <Servo.h>
#define A 2
#define B 3
#define C 4
#define D 5
int ABCD = A0, E = A1, F = A2, G = A3, H = A4, Z[8];
Servo Lserwo, Rserwo;



void setup() 
{
  Serial.begin(9600);
  
  pinMode(A, OUTPUT); //piny do sterowania multiplekserem
  pinMode(B, OUTPUT);
  pinMode(C, OUTPUT);
  pinMode(D, OUTPUT);

  digitalWrite(A,LOW);
  digitalWrite(B,LOW);
  digitalWrite(C,LOW);
  digitalWrite(D,LOW);

  Lserwo.attach(9);  //Lewe serwo
  Rserwo.attach(10);  //Prawe serwo
}

void loop() 
{
  int temp=0, i;
  
  digitalWrite(A, HIGH);
  Z[0] = analogRead(ABCD);
  digitalWrite(A, LOW);

  digitalWrite(B, HIGH);
  Z[1] = analogRead(ABCD);
  digitalWrite(B, LOW);

  digitalWrite(C, HIGH);
  Z[2] = analogRead(ABCD);
  digitalWrite(C, LOW);

  digitalWrite(D, HIGH);
  Z[3] = analogRead(ABCD);
  digitalWrite(D, LOW);

  Z[4] = analogRead(E);
  Z[5] = analogRead(F);
  Z[6] = analogRead(G);
  Z[7] = analogRead(H);

  for(i=0; i<8; i++) //Znalezienie najwiekszej wartosci natezenia swiatla
  {     
     if(temp < Z[i])
        temp = Z[i];
  }

  if(temp > 400) //prog dzialalnosci ukladu (ponizej 400 robot ma nie reagowac na swiatlo)
  { 
    for(i=0; i<8; i++) //Znalezienie czujnika wskazujacego najwieksza wartosc
    {     
       if(temp == Z[i])
         temp = i;  //wpisanie za i numeru przyporzadkowanego do okreslonego czujnika  
    }

    //Lserwo.writeMicroseconds(1000);  //Jesli testowo dodam to polecenie do kodu, to w zaleznosci od swiatla kolo bedzie sie obracalo (a wiec dziala do tego momentu)

//*************KOD DO TEGO MOMENTU DZIALA POPRAWNIE - SWITCH CASE NIE DZIALA

    switch(i){
      case 0:{  //swiatlo z lewego boku
        Lserwo.writeMicroseconds(1540);  //1520 - neutrum, 1000 - tył, 2000 - przód (za wolno) 
        Rserwo.writeMicroseconds(1000); //1410 - neutrum, 2000 - tył, 1000 - przód (za szybko)
        break;
      }
      
      case 1:{  //swiatlo lewy tylny rog
        Lserwo.writeMicroseconds(1000);  //1520 - neutrum, 1000 - tył, 2000 - przód (za wolno) 
        Rserwo.writeMicroseconds(1000); //1410 - neutrum, 2000 - tył, 1000 - przód (za szybko)
        break;
      }

      case 2:{  //swiatlo tyl
        Lserwo.writeMicroseconds(1000);  //1520 - neutrum, 1000 - tył, 2000 - przód (za wolno) 
        Rserwo.writeMicroseconds(1000); //1410 - neutrum, 2000 - tył, 1000 - przód (za szybko)
        break;
      }
      
      case 3:{  //swiatlo prawy tylny rog
        Lserwo.writeMicroseconds(2000);  //1520 - neutrum, 1000 - tył, 2000 - przód (za wolno) 
        Rserwo.writeMicroseconds(2000); //1410 - neutrum, 2000 - tył, 1000 - przód (za szybko)
        break;
      }

      case 4:{  //swiatlo prawy bok
        Lserwo.writeMicroseconds(2000);  //1520 - neutrum, 1000 - tył, 2000 - przód (za wolno) 
        Rserwo.writeMicroseconds(1410); //1410 - neutrum, 2000 - tył, 1000 - przód (za szybko)
        break;
      }
      
      case 5:{  //swiatlo prawy przedni rog
        Lserwo.writeMicroseconds(2000);  //1520 - neutrum, 1000 - tył, 2000 - przód (za wolno) 
        Rserwo.writeMicroseconds(1410); //1410 - neutrum, 2000 - tył, 1000 - przód (za szybko)
        break;
      }

      case 6:{  //swiatlo przod
        Lserwo.writeMicroseconds(2000);  //1520 - neutrum, 1000 - tył, 2000 - przód (za wolno) 
        Rserwo.writeMicroseconds(1000); //1410 - neutrum, 2000 - tył, 1000 - przód (za szybko)
        break;
      }
      
      case 7:{  //swiatlo lewy przedni rog
        Lserwo.writeMicroseconds(1540);  //1520 - neutrum, 1000 - tył, 2000 - przód (za wolno) 
        Rserwo.writeMicroseconds(1000); //1410 - neutrum, 2000 - tył, 1000 - przód (za szybko)
        break;
      }
    }
  }else{  //brak swiatla, serwa nie kreca sie
     Lserwo.writeMicroseconds(1540);  //1520 - neutrum, 1000 - tył, 2000 - przód (za wolno) 
     Rserwo.writeMicroseconds(1410); //1410 - neutrum, 2000 - tył, 1000 - przód (za szybko)
  }
  delay(500);

}
Awatar użytkownika
Marhef
Złota rączka
Posty: 1164
Rejestracja: 18 lis 2011, 02:18

Re: Światłolub - mnóstwo pytań i wątpliwości

Post autor: Marhef » 27 kwie 2016, 08:03

A w instrukcji switch nie powinieneś mieć temp zamiast i? Zmienna i zawsze w tym miejscu będzie miała wartość 8
ZaiZu
Młodszy majsterkowicz
Posty: 11
Rejestracja: 16 kwie 2016, 01:31

Re: Światłolub - mnóstwo pytań i wątpliwości

Post autor: ZaiZu » 27 kwie 2016, 10:30

Marhef pisze:A w instrukcji switch nie powinieneś mieć temp zamiast i? Zmienna i zawsze w tym miejscu będzie miała wartość 8
Oczywiście że tak. Szkoda gadać. Dzięki!
sztapl
Majsterkowicz
Posty: 117
Rejestracja: 21 gru 2014, 16:01
Lokalizacja: Limerick

Re: Światłolub - mnóstwo pytań i wątpliwości

Post autor: sztapl » 28 kwie 2016, 22:21

może zamiast multiplekserów takie coś no i cena super:
http://www.aliexpress.com/item/UNO-R3-C ... 21564e9764
ZaiZu
Młodszy majsterkowicz
Posty: 11
Rejestracja: 16 kwie 2016, 01:31

Re: Światłolub - mnóstwo pytań i wątpliwości

Post autor: ZaiZu » 29 kwie 2016, 18:09

Wyjaśni mi ktoś jakim cudem zasiliłem Arduino przez potencjometr, z zasilania serw? Przy maksymalnym skręceniu potencjometru (odczyt 1023), Arduino dostaje jakimś cudem zasilanie, wrzucam zdjęcia pinów:
2016-04-29 17.47.26.jpg
2016-04-29 17.47.00.jpg
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
Awatar użytkownika
Zbycho_GL
Majsterkowicz
Posty: 51
Rejestracja: 11 kwie 2016, 19:54
Lokalizacja: Gliwice

Re: Światłolub - mnóstwo pytań i wątpliwości

Post autor: Zbycho_GL » 3 maja 2016, 20:14

Zakładam, że pisząc "zasilanie" masz na myśli swiecacą diodę zasilania, nie zaś działające Arduino. Jesli tak jest, to prawdopodobnie powód znajduje się w strukturze Atmegi. Możesz jeszcze narysować odręczny schemat połączeń, aby można go bylo zweryfikować.
ODPOWIEDZ

Strony partnerskie: