Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki
Teraz jest 14 lis 2019, o 22:33


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 24 ] 
Autor Wiadomość
PostNapisane: 7 lis 2012, o 20:27 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 paź 2012
Posty: 43
Lokalizacja: Łódź
Pomógł: 0

Witam.
Nadal jako bardziej bascomowiec nić c'owiec stanąłem przed sporym problemem.
Może napisze po kolei.
Mam własnej konstrukcji robota - line followera, wyposażonego w TSOP4836, niestety projektowałem go dość dawno i nie pomyślałem o tym, aby wyjście tsop'a podpiąć pod jakiegoś int'a. A odczyt z "szablonu" w głównej pętli skutecznie pogarszał czas obiegu pętli, co skutkowało znacznym problemom przy większych prędkościach. Dlatego wpadłem na pomysł aby dać w pająku podklejonego pod tsop'em tiny13 w ssu który po odczytaniu kodu (zwykłe RC5) wystawiłby na kilkanaście / dziesiąt ms określony stan na jednym z I/O, który byłby odczytywany po prostu w pętli głównej procka głównego. Z przyjemnością zrobiłbym to sam... jednak albo moje umiejętności, albo ograniczenia bascoma mi to uniemożliwiają. Gotowe polecenie pod tiny13 nie działa, a ręcznie napisany odczyt nie mieści się we flashu. Dlaczego więc nie C? Em... powiedzmy, że póki co wystawianie/odczytywanie I/O to szczyt moich możliwości, a działający układ potrzebuję za niecałe dwa tygodnie - konkretnie 17, wliczając czas potrzebny na udoskonalanie głównego kodu + szkoła, raczej nie widzę możliwości, aby to zrobić samemu.
Dlatego proszę dobrego forumowicza, o programik, albo jakiś szkic/wskazówki. Nie chcę gotowego hex'a bo przy tym się nic nie nauczę i podobny problem pewnie pojawiłby się wkrótce, a kod byłby nie do przeróbki.
Jakie mam wytyczne? Zależy mi tylko aby:
1. Procek to tiny13, lub coś równie małego i możliwego do kupienia w rozsądnym czasie.
2. Brak elementów zewnętrznych, albo chociaż maksymalna ich minimalizacja (filtracja zasilania jest już na płytce, i to zraz obok, o to się nie martwcie ).
3. Odczyt z tsop4836 dowolnym i/o
4. Reakcja na RC5 adress: 0, komendy 1 i 13 (wystawienie stanu dla jednej komendy na powiedzmy 10ms, dla drugiej 20ms)
5. Stan wystawiany dowolnym I/O

Jeżeli ktoś ma chwilę czasu, lub pisał coś podobnego. Proszę o pomoc.
Co mogę dać w zamian... Jeżeli ktoś z łodzi, a najlepiej startujący w sumochallenge. To się dogadamy. . Na zbyciu mam kilkaset diod prostowniczych 10A, starsze EP/Edw i trochę innych "dzikich itemów".
Mogę też zrobić jakąś żmudną robotę.

Dziękuję.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lis 2012, o 23:25 
Offline
Użytkownik

Dołączył(a): 26 lip 2012
Posty: 291
Lokalizacja: okolice Opola
Pomógł: 20

Witam

W załączniku kod w c oraz gotowy plik .hex (wyjście na PortB.0, a czujnik na PortB.2)

Kod zrealizowany na przerwania pin change interrupt, więc w sposób nie blokujący pętli głównej, dlatego można tam jeszcze sporo innych rzeczy wrzucić.
Kod działa dokładnie tak jak chciałeś, testowane na atmega 32 (co prawda na zwykłym incie ale to bez różnicy) i przerobione na attiny więc zobacz czy działa a jeżeli nie to daj znać, ale na 99% będzie ok.

Komentarze w obsłudze rc5 po angielsku dlatego że to moja minimalnie przerobiona obsługa rc5 z której korzystam od dawna a dla siebie komentarze zawsze po angielsku stawiam ale myślę, że się zorientujesz o co chodzi.

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lis 2012, o 16:10 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 paź 2012
Posty: 43
Lokalizacja: Łódź
Pomógł: 0

Jej :D
Dzięki wielkie... zaraz lutuję i wgrywam sofcik ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lis 2012, o 16:30 
Offline
Użytkownik

Dołączył(a): 26 lip 2012
Posty: 291
Lokalizacja: okolice Opola
Pomógł: 20

Ojjj sorki ale pomyliłem się pinami i teraz to zauważyłem jeśli masz już polutowane to masz tutaj zmienioną wersję(tsop na PortB.2 a out na PortB.0, w poprzednim było na odwrót)

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lis 2012, o 17:20 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 paź 2012
Posty: 43
Lokalizacja: Łódź
Pomógł: 0

Właśnie polutowałem zaprogramowałem i coś nie chodziło.. za 2 min sprawdzę nową wersję :D

------------------------ [ Dodano po: 3 minutach ]

na wyjściu cały czas 0.
Btw.. jak fusy ustawić?

------------------------ [ Dodano po: 33 minutach ]

Może to brak mojego doświadczenia, ale eclipse nie kompiluje tego, bo errory jakieś. :(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lis 2012, o 20:00 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 paź 2012
Posty: 43
Lokalizacja: Łódź
Pomógł: 0

Chyba znalazłem przyczynę problemu... tiny ma znaczne mniejsze taktowanie niż powinien.
Zrobiłem toggla w pętli 500ms, czyli powinien mrugać raz na sekundę.
na oko 15 sekund w realu to 14 sekund dla tiny.
Można to jakoś skorygować, nie posiadając analizatora stanów logicznych, ani oscyloskopu?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lis 2012, o 20:52 
Offline
Użytkownik

Dołączył(a): 26 lip 2012
Posty: 291
Lokalizacja: okolice Opola
Pomógł: 20

Ustaw fusy na 9600000(oscylator wewnętrzny) oraz we właściwościach projektu tę częstotliwość.

Jeszcze raz zaraz to pyknę na Atmega32 i dam znać.

P.s. Tego toggla to w c zrobiłeś? Czy bascomie?

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lis 2012, o 21:13 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 paź 2012
Posty: 43
Lokalizacja: Łódź
Pomógł: 0

Toggle'a w bascomie, niemniej jednak rozbieżności nie powinno być.

Tak mam ustawione i nadal nie działa.
Jutro jeszcze pokombinuję. W każdym razie dzięki za pomoc. ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lis 2012, o 21:58 
Offline
Użytkownik

Dołączył(a): 26 lip 2012
Posty: 291
Lokalizacja: okolice Opola
Pomógł: 20

Ok

Sprawdziłem i było kilka błędów - m.in. brak volatile przy zmiennej oraz nie włącznie przerwań od tim0, ale teraz jest to poprawione oraz działa.

Więc tak gotowy hex:
-Dla komendy 1 (aby łatwiej testować, jak będzie ok to napisz i zmienię na już ostateczne) - 1 na PB.0 na ok 200ms
-Dla komendy 2 (to co wyżej) - 1 na PB.0 na ok 400ms
-Czujnik na PB.2
-Adres pilota 0


Autor postu otrzymał pochwałę

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 lis 2012, o 18:06 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 paź 2012
Posty: 43
Lokalizacja: Łódź
Pomógł: 0

Jesteś wielki :D
Działa !!!!
i to dokładnie tak jak piszesz ;)

Miałbym tylko prośbę do przerobienia na te 10 i 20ms na kody 1 i 13 ;)

------------------------ [ Dodano po: 2 minutach ]

Znaczy się:
1 - 10ms
13 - 20ms

Swoją drogą.. jak zmniejszyć czułość tsop'a? łapie pod warunkiem, że pilota kieruję w druga stronę (na odbiornik pada światło odbite), lub pomiędzy ir pilota a odbiornikiem umieszczę 3-4 karki papieru. Bez papieru i na wprost.. 0 reakcji.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 lis 2012, o 20:31 
Offline
Użytkownik

Dołączył(a): 26 lip 2012
Posty: 291
Lokalizacja: okolice Opola
Pomógł: 20

Ok zaraz przerobie tylko mam pytanie czy to koniecznie musi być 10/20ms czy może być np 7/14ms (wielekrotność 7) ponieważ tak nie ma kombinowania z timerami i jak tak to jakie dokładnie mają być czasy.

------------------------ [ Dodano po: 2 minutach ]

Co do czułości tsopa to miałem tak samo i jedno co zauważyłem to że stare tsop1736 miały najmniejszą czułość, te 4836 mają bardzo dużą, z drugiego końca 6-metrowego pokuju po odbiciu o poduszkę normalnie odbiera bez przekłamań.

------------------------ [ Dodano po: 47 minutach ]

Zrobiłem 2 wersje:
I - dla komendy 1 - 7 ms, dla 13 - 21 ms i ta na 100% będzie działać
II - dla komendy 1 - 10ms, dla 13 - 20 ms, niestety tej nie jestem pewien a nie mam jak sprawdzić.

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 lis 2012, o 22:03 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 paź 2012
Posty: 43
Lokalizacja: Łódź
Pomógł: 0

Dzięki. Na dziś już odstawiłem proga, jednak jutro jak tylko będę w domu przetestuję. :)
Odnośnie czasów, oczywiście ze nie muszą być takie, ważne aby było to choćby kilkanaście ms dla jednej z nich, bo w petli w której będzie odczytywana jest sporo rzeczy.

A odnośnie czułości. Tsop u mnie jest zasilany przez rezystorek 220ohm, jednak jest to 0805 i to w bardzo kiepskim miejscu (słaby dostęp), dlatego najpierw wolę się spytać. Czy zwiększenie jego wartości obniży czułość?
Aktualnie celując "na wprost" łapie powyżej 3m, bliżej tylko po przesłonięciu diody ir, lub odbiornika, ale szczerze mówiąc nie jestem zwolennikiem takich rozwiązań. :D
To ma być wyłącznik bezpieczeństwa, który ma chronić przed uszkodzeniem całości, dlatego niezawodność jest dla mnie taka ważna.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 lis 2012, o 23:36 
Offline
Użytkownik

Dołączył(a): 26 lip 2012
Posty: 291
Lokalizacja: okolice Opola
Pomógł: 20

No ja z tym problemu nie miałem łapał nawet z centymetra każdy czujnik, jednak ja nie zasilałem go przez rezystor, za to miałem 100nF zaraz przy jego nogach zasilania, bez niego czasami występowały przekłamania.

Dlatego może by mądrzejsze głowy :D do nas dołączyły, i się wypowiedziały:D

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 lis 2012, o 23:42 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 24858
Lokalizacja: Szczecin
Pomógł: 927

Zdecydowanie rezystor warto a nawet trzeba dać (jak jest zresztą w nocie) .... jego wartość 100R czy 200R nie ma żadnego znaczenia jeśli chodzi o zasięg odbiornika. Rezystor wraz z małym kondensatorkiem np 4,7uF (elektrolit) tworzy cenny filtr zasilania, co jest ważne właśnie ze względu na eliminację zakłóceń w pracy odbiornika.

Zasięgi to zależą panowie od prądu jaki podawany jest na diodę podczerwieni, jeśli więc sami robicie pilota to zwróćcie na to uwagę, a jeśli macie oryginalny pilot to sprawdźcie czy baterie nie są za stare i nie mają już zbyt małego napięcia.

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 lis 2012, o 23:45 
Offline
Użytkownik

Dołączył(a): 26 lip 2012
Posty: 291
Lokalizacja: okolice Opola
Pomógł: 20

Właśnie popatrzyłem do dokumentacji mojej EvB firmy microsense i odbieram na niej bez problemu:
Obrazek


Więc możliwe że po prostu farta miałem :?

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 lis 2012, o 23:50 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 24858
Lokalizacja: Szczecin
Pomógł: 927

ale w czym farta miałeś jak jest akurat poprawnie wykonany odbiornik ?

Za to na pewno masz za duże podciąganie przy DS18B20, 10K to duża przesada ale też - do testów na krótkim kablu wystarczy. Powinno być 4,7K albo nawet 2,2K

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 lis 2012, o 00:09 
Offline
Użytkownik

Dołączył(a): 26 lip 2012
Posty: 291
Lokalizacja: okolice Opola
Pomógł: 20

To są schematy z mojego EvB, a farta to miałem z tym, że w innych układach zawsze stosowałem tsop'a bez rezystora, tylko 100nF i zawsze działało.

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 lis 2012, o 15:49 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 paź 2012
Posty: 43
Lokalizacja: Łódź
Pomógł: 0

Pilot kupny.
Zaraz przy tsop mam 100nf ceramik+ 4,7uf w tantalu.
Diodę pilota zakleiłem taśmą... Teraz jest pawiej ok. co nie zmienia faktu, ze wolałbym elektroniczne rozwiązanie. :D



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 lis 2012, o 18:51 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 paź 2012
Posty: 43
Lokalizacja: Łódź
Pomógł: 0

Widzę, że mój problem jest chyba dość niecodzienny.
Myślicie, że może być to uszkodzony egzemplarz tsop? Mam gdzieś taki sam, ale szczerze mówiąc, miałbym mały problem ze znalezieniem, a czas nagli. :D
Taśma na ir ma jedną zasadniczą wadę. w odległości kilku metrów nie łapie nawet na wprost, a kompromis znaleźć dość trudno.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 lis 2012, o 19:27 
Offline
Użytkownik

Dołączył(a): 26 lip 2012
Posty: 291
Lokalizacja: okolice Opola
Pomógł: 20

Tym bardziej uważam, że to pewnie wadliwa wersja tsopa.

Może po prostu kup w sklepie inną, do zawodów zdążysz (domyślam się że to na nie ci się spieszy)

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 lis 2012, o 20:14 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 paź 2012
Posty: 43
Lokalizacja: Łódź
Pomógł: 0

Przetrząsnąłem wszystko znalazłem 1szt z urwaną nóżką :D
Zaraz rozwiercę i sprawdzę.. jak będzie podobnie, to zostawiam tak jak jest.
Jak zasuwa na podłodze to 9/10 razy zareaguje poprawnie.

------------------------ [ Dodano po: 4 minutach ]

.. mogę to potwierdzić.. tsop jest wadliwy.
Jednak go zostawię na miejscu i narazie zakleję pilota taśmą. :D
Przy okazji zauważyłem, że nie łapią one gdy świecimy "na wprost". Zarówno wadliwy, jak i ten dobry.

------------------------ [ Dodano po: 20 minutach ]

No to ostatnia prośba. Mógłbyś ustawić czasy na:
Dla 1 - 200ms
Dla 2 - 20ms
tzn podobne, - tak aby tobie było łatwo.
?
Zrezygnowałem z 13 :D może to ona pecha przynosi. :P



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 lis 2012, o 21:12 
Offline
Użytkownik

Dołączył(a): 26 lip 2012
Posty: 291
Lokalizacja: okolice Opola
Pomógł: 20

Proszę bardzo.

Mam nadzieję, że stanie na podium:D

P.s. Startujesz z udoskonalonym SilverShaft'em czy jakaś nowa konstrukcja, może wrzucisz jakiś filmik.
Załącznik:
rx_20_210ms.rar


------------------------ [ Dodano po: 2 minutach ]

21 ms dla komendy 2, oraz 210 dla komendy 1


Autor postu otrzymał pochwałę

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 lis 2012, o 21:36 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 paź 2012
Posty: 43
Lokalizacja: Łódź
Pomógł: 0

Dzięki zaraz zapodam tinówce. :D
Jej skąd wiesz o Silver Shafcie? :D
Tak. mowa właśnie o nim. Brak czasu, i funduszy na coś nowego.
Jednak udoskonaleń jest i co cały szereg. w 90% programowych... sam soft jest aktualnie w wersji którą oznaczyłem V7.0 aby go wyróżnić, bo w przeciwieństwie do pozostałych został napisany od początku. Za bardzo namieszałem w kodzie i prościej było zrobić od nowa a porządnie. (o ile można tak nazwać kod w bascomie) w każdym razie od teraz ma wsparcie dla bluetooth'a i dzięki tobie irdę. ;)

Czy stanie na podium? Szanse raczej marne, jeśli już to w kategorii lf z przeszkodami. Niemniej dopilnuję, aby wyciągnąć z jego tylko na ile pozwala mój stan wtajemniczenia w programowanie i wyczucie algorytmiczne. ;)

Będziesz w łodzi na zawodach?
Jak mogę Ci się odwdzięczyć, za pomoc? Sam na ten moment bym tego nie napisał. ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 lis 2012, o 22:23 
Offline
Użytkownik

Dołączył(a): 26 lip 2012
Posty: 291
Lokalizacja: okolice Opola
Pomógł: 20

Doskonale rozumiem brak funduszy, za to czasu to ja mam aż nadto (I klasa technikum mechatronicznego = totalny brak nauki a oceny i tak ok, i niestety wyszło leniuchowanie w gimnazjum, kiedy nie dostałem się na nic lepszego)

Byłem w tamtym roku na robomaticonie jako widz i widziałem go w akcji, w łodzi niestety nie będę ale jeśli mój robot pojedzie do 15 grudnia( a na razie to tylko połowa płytki zaprojektowana - niestety brak wyobraźni) to będę na RA w Wrocławiu.


Nie oczekuję niczego w zamian, cieszę się że mogłem pomóc, i jeśli będziesz miał jeszcze jakieś pytania śmiało pisz :D


Załączniki:

Aby zobaczyć załączniki musisz się zalogować. Tylko zalogowani użytkownicy mogą oglądać i pobierać załączniki.

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 24 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 3 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO