Skocz do zawartości

KillSwitch - oddam do przetestowania


Zycior
 Udostępnij

Rekomendowane odpowiedzi

http://www.zycior.hs1.linux.pl/index.php?strona=oferta/switch2ch_V2

 

Tutaj jest podobne rozwiązanie - tyle, że ją tu tylko 2 wyjścia. Jeżeli o coś podobnego chodzi Andrzejowi to w zasadzie program mamy gotowy. Aktualnie program wykrywa tylko 2 stany, impuls poniżej 1,5ms oraz powyżej 1,75ms (jak mnie pamięć nie myli). Nie ma problemu aby np. wykrywać stany pośrednie, czyli np. ciągły impuls od 1 do 1,2ms wybrane zostało wyjscie 1, impuls od 1,2 do 1,4 ms wybrane wyjscie 2,itd. Impuls powyżej np. 1,75ms aktywuje bądź dezaktywuje wyjście wybrane stanem potencjometru.

 

Poczekajmy jednak na Andrzeja, czy faktycznie to chodziło mu po głowie.      

Tak Marcinie, chyba się rozumiemy. Niekoniecznie potrzeba Gienka (znaczy wspomnianego przez Pawła geniusza  :), ale to miłe dla kogoś), wystarczy biegły konstruktor cyfrówek.

Rzeczywiście, mam na myśli odróżnienie SZEŚCIU przedziałów czasów trwania impulsu sterującego, do których przynależność musi stwierdzić układ już na samym początku. Przykładowo realnie : przedział A : poniżej 975us , B : 975...1125us , C : 1125...1375us , D : 1375...1625us , E : 1625...1875us , F : 1875...2000us. Należy tu jeszcze wprowadzić pewną separację tych przedziałów, czyli rozdzielające czasy martwe (dead time po Naszemu  ;)). W rezultacie otrzymamy przykładowo :

 

A - poniżej 950 us

B - 975...1100 us

C - 1150...1350 us

D - 1400...1600 us

E - 1650...1850 us

F - 1900... 2025 us

 

Przyjąłem dla uproszczenia zakres podstawowy 1000...2000 us. Marginesy po 25us od dołu i na górze (975us i 2025us) dla bezpieczeństwa naturalnych niedokładności i dryftu czasu (termiczne i starzeniowe sprawy elementów).

Naszym potencjometrem robiącym za przełącznik PIĘCIOpozycyjny wybieramy któryś z przedziałów czasu impulsu, co odpowiada wybraniu jednego z PIĘCIU obwodów sterowanych w samolocie, np. światła pozycyjne, flash'y, światła lądowania, luk bagażowy, podwozie. Kliknięcie pstryczkiem monostabilnym nadajnika, który z jego punktu widzenia zmienia czas trwania impusu na "-110%" czyli na ok. 900us, powoduje zanegowanie (zmianę na przeciwny) stanu wyjścia sterującego wybranym obwodem (mosfety), w efekcie jego załączenie lub wyłączenie. W obsłudze praktycznej dość proste.

 

Układ analogowo-cyfrowy realizujący w/w funkcje da się zbudować z kilku scalaczków, ale tu chyba jest pole do popisu dla procka. Marcinie, nie chciałbym popełnić jakiegoś indiscretion...

Obetnij każdemu 975us i już masz rozróżnienie pomiędzy impulsem wybierającym a przełączającym... Po wyborze zatrzaśnij aktualizację stanu i już. Można na kilka sposobów, zostawiam tę działkę Tobie.  

Odnośnik do komentarza
Udostępnij na innych stronach

Jedno serwo obraca sie zgodnie z ruchem gałki, drugie robi za palec sterowane przełącznikiem :-)

Nie wiem, czy wiesz, ale właśnie rozpocząłeś konstruowanie telefonicznej centrali wybierakowej starszego typu. Takie wynalazki służyły dzielnie przez ponad pół wieku i wiele im zawdzięczamy  :D.

Ale idea tego omawianego układu jest właśnie analogiczna - wybrać i przełączyć. Nadal nie mogę znależć w sprzedaży takiego urządzenia, co mnie dziwi - myślałem, że już wszystko jest na rynku - a tu niespodzianka ;).

Układy mechaniczne na jednym lub dwóch kanałach już przerabiałem - działa to-to , ale jest duże, ciężkawe i upierdliwe w zainstalowaniu. Najmniejszy, najlżejszy i najwygodniejszy okazał się tu zespół fotopar IR z przerzutnikami Schmitta, sterujący bezpośrednio mosfetami. Gdy dołożyć jeszcze cztery scalaczki, to wystarczy wtedy jedno serwo, nie potrzeba dwóch.  

Odnośnik do komentarza
Udostępnij na innych stronach

 

Ale idea tego omawianego układu jest właśnie analogiczna - wybrać i przełączyć. Nadal nie mogę znależć w sprzedaży takiego urządzenia, co mnie dziwi - myślałem, że już wszystko jest na rynku - a tu niespodzianka ;).

 

Rozmawiałem właśnie z moją córką o tym teoretycznym problemie. Ona jest programistką C-embed. Prychnęła i powiedziała: "Ojciec, to się robi na dowolnym mikrokontrolerze w 5 minut. Kup sobie książkę, do jutra się nauczysz."  

Zadumałem się i poszedłem rozkonserwowywac frezarkę.

- Przyjdzie jeszcze koza do woza. Jak znów trzeba będzie obudowę na jej divajsa wykonać ;-)

  • Lubię to 1
Odnośnik do komentarza
Udostępnij na innych stronach

Rozmawiałem właśnie z moją córką o tym teoretycznym problemie. Ona jest programistką C-embed. Prychnęła i powiedziała: "Ojciec, to się robi na dowolnym mikrokontrolerze w 5 minut. Kup sobie książkę, do jutra się nauczysz."  

Zadumałem się i poszedłem rozkonserwowywac frezarkę.

- Przyjdzie jeszcze koza do woza. Jak znów trzeba będzie obudowę na jej divajsa wykonać ;-)

A przyjdzie, przyjdzie... Ale wcześniej... Tam jest poważna zagwozdka z rejestracją i opóżnieniem sygnału przed posłaniem go dalej, już coś dumałem o tym. Jak Twoja córka taki kozak jest, to może niech to spróbuje zwierszować w te 5 minut. Bez znajomości technik analogowych może zacząć beczeć (bez urazy  ;)) o kapustę :D

Odnośnik do komentarza
Udostępnij na innych stronach

To ja przejdę się do księgarni, jeśli tam jeszcze książki sprzedają....

No właśnie... Księgarnia Techniczna w Wawce chyba już całkiem upadła  :( .

Polecam pana Piotra Góreckiego jako autora, jeżeli jeszcze coś tam jest na półce.

Tomku, a czy Twoja córka podsunęłaby jakieś konkretne propozycje co do wyboru uC ?

Odnośnik do komentarza
Udostępnij na innych stronach

Rozmawiałem właśnie z moją córką o tym teoretycznym problemie. Ona jest programistką C-embed. Prychnęła i powiedziała: "Ojciec, to się robi na dowolnym mikrokontrolerze w 5 minut. Kup sobie książkę, do jutra się nauczysz."  

Zadumałem się i poszedłem rozkonserwowywac frezarkę.

- Przyjdzie jeszcze koza do woza. Jak znów trzeba będzie obudowę na jej divajsa wykonać ;-)

Mamy kilku świetnych programistów na forum, a żaden z nich nie zaproponował poświęcenia tych 5 minut na napisanie kodu. Stawiam porządną flaszkę, że zabierze to "troszeczkę" więcej czasu.

Nie umniejszając nikomu wiedzy i zdolności, Andrzej już zaznaczył na czym można się pośliznąć, zwłaszcza na tych "dowolnych" mikrokontrolerach. Tak, czy inaczej chętnie skorzystamy z każdej dostępnej pomocy ;)   

Odnośnik do komentarza
Udostępnij na innych stronach

A ja będę polemizował - zna się dziewczyna. 5 minut to może przesada, ale w 15 się da. Wystarczy Bascom AVR i jakiś mały ATtimy. Funkcje do odczytu sygnału z serwa są gotowe. Trzeba dodać warunek włącz/wyłącz i już. Jak ktoś zna Bascoma, to da się w 15 minut. Ale... Napisanie programu to jedno, a działające urządzenie to drugie :D. Bo jak się procesor zacznie zawieszać od jakichś "śmieci" wędrujących po drutach w układzie, to trzeba będzie rozwiązać kilka problemów. A tu już trzeba wiedzy inżynierskiej, a tej wielu programistów po prostu nie ma. Z tego punktu widzenia te 5 minut, to marna perspektywa.

A tak na marginesie - najlepszy wyłącznik zapłonu, którego miałem okazji użyć, zbudowano bez mikrokontrolera ;).

Odnośnik do komentarza
Udostępnij na innych stronach

A tak na marginesie - najlepszy wyłącznik zapłonu, którego miałem okazji użyć, zbudowano bez mikrokontrolera ;).

To jest jedyne zdanie z którym jestem w stanie zgodzić się z Tobą w 100%.

 

Nie to żebym miał się tu kłócić i udowadniać cokolwiek komukolwiek, ale z chęcią zobaczę gotowca z dobrą procedurą odczytu sygnału wejściowego w bascomie (z resztą w np. C też niewiele dobrych gotowców można uraczyć). Gdyby było tak jak mówisz, każdy z nas bez większych problemów programowałby procesory. Przytoczony przez Ciebie Bascom jest do w miarę dobrego ogarnięcia w ciągu 2-4 tygodni, a mimo to niewielu chętnych do pisania. :)

Odnośnik do komentarza
Udostępnij na innych stronach

Bascom jest językiem, który przywiązuje nad do sprzętu - do mikrokontrolerów AVR i dziś już niemal wymarłych Intel 8051 (przy okazji - firma Atmel jest aktualnie własnością Microchipa).Z racji tego, nie da się tworzyć wielokrotnie wykorzystywanych na różnych platformach bibliotek. Poza tym, pisanie w Basicu jest zdaniem wielu programistów "nietrendi". No i jeszcze na dodatek wiele kompilatorów C i C++, w tym renomowanych producentów, jest albo zupełnie za darmo lub za darmo, ale z pewnymi ograniczeniami (np. odnośnie do wielkości kodu). No i w C czy C++ pisze się na luzie, a w Bascomie czuje się pewien, hmmm..., niedosyt :D.

 

A jak zrobić w 5 minut? Pamiętajmy, że mówimy o warunku on/off, a więc tak naprawdę np. +100%/-100% wychylenia serwa. Da się też dokładniej, ale chyba nie ma potrzeby w tym wypadku. Proszę bardzo - tu jest gotowiec w języku C do pomiaru wypełnienia od Atmela -> http://www.atmel.com/Images/Atmel-8014-Using-Timer-Capture-to-Measure-PWM-Duty-Cycle_ApplicationNote_AVR135.pdfhttp://www.atmel.com/Images/Atmel-8014-Using-Timer-Capture-to-Measure-PWM-Duty-Cycle_ApplicationNote_AVR135.zip. Korzystając z niego da się zrobić podobne programy dla innych mikrokontrolerów, również w innych językach.

 

Warunkiem dla tych "5 minut" jest to, że robiłeś podobne rzeczy, jesteś biegły w danym IDE oraz masz doświadczenie. Początkującemu może to zająć dużo więcej czasu.

Odnośnik do komentarza
Udostępnij na innych stronach

 

 

A jak zrobić w 5 minut? Pamiętajmy, że mówimy o warunku on/off, a więc tak naprawdę np. +100%/-100% wychylenia serwa. Da się też dokładniej, ale chyba nie ma potrzeby w tym wypadku.

Chyba to trochę nie tak  ;) ...

Odnośnik do komentarza
Udostępnij na innych stronach

Widzę, że kolega Jacek niezbyt dokładnie wczytał się w temat.

Mówiłem o bibliotece, która "dobrze" czyta wypełnienie impulsu. Nie ma żadnego problemu z odczytanie czasu trwania czystego impulsu, niezaśmieconego, bez zakłóceń idt, itp. Można zrobić to na wiele sposobów, korzystając z przerwania od zbocza, sprawdzając stan na danym porcie, czy też zaprzęgnąć do tego przetwornik ADC (oczywiście najpierw należało by "przygotować" sygnał). Sprawa jednak się nieco komplikuje jeżeli masz ten sygnał zaśmiecony, zniekształcony, wtedy "wyłuskanie" poprawnego czasu jest już sprawą nieco trudniejszą.

Każdy ma swoją rację :) 

 

Btw. trochę nie doceniasz bascoma :)

http://www.ne.jp/asahi/shared/o-family/ElecRoom/AVRMCOM/AVROscilo2/AVROscilo2.html

Odnośnik do komentarza
Udostępnij na innych stronach

Widzę że dyskusja zmierza w niebezpieczną stronę, wyższości programowania nad programowaniem.

Zatem w nawiązaniu do postu #30, przedstawią ciąg dalszy :)

 

Wczoraj, byłem w księgarni. Zapytałem o ksiązki do programowania w 5 minut. Niestety, takowych tam nie miały panie ekspedientki, za to miały soczki, batoniki oraz kolorowe długopisy, także i wiele innego asortymentu, ale książek nie.
Odpowiedziały panie, że jak chcę kupić książkę, to powinienem pójść do kawiarni wielobranżowej, sprzedają tam także i książki. Poszedłem zatem do Empik'u, natchniony nowymi pomysłami, jak uszczęśliwiać będę świat, pisząc wymarzone programy - gdy tylko zakupię książkę aby programować w 5 min.
Na miejscu już, w owym Empiku, okazało się że nie tylko są ksiązki, ale i duży wybór. Od razu więc, bez zbytniego zastanowienia, rzuciłem miłe spojrzenie pani ekspedentce - no co by mnie tak jak poprzednia nie zbyła, i wydukałem, że chciałbym książkę do programowania w 5 minut.
Pani była bardzo miła, odpowiedziała równie ładnym uśmiechem, a nawet odezwała się do mnie, pytając, czy to ma być "coś dla opornych" ?
Odpowiedziałem grzecznie, acz stanowczo, że nie. Wcale nie jestem oporny, wręcz przeciwnie, chętnie się nauczę!
Zaprowadziła mnie więc uprzejma pani aż do regałów, gdzie piętrzyły się stosy książek.
Oczywiście nie przyznałem się, że nic o nich nie wiem. Wybrałem najbardziej kolorową.
Miała nawet taki łdnie brzmiący napis: mały-miękki, niestety w obcym języku.
Ale nic to, pomyślałem. Zapłaciwszy za nabytek, udałem się do domu, gdzie zawzięcie studiowałem arkana programowania, niczym magiczne zaklęcia.
A nad ranem, uznałem że wystarczy już tego.
Włączyłem komputer.

 

Napisałem program.

To nic, że zawiera tylko komentarze, i nazywa się autoexec.bat
Jest mój, jest polski, ma potencjał, dostrzegłem wreszcie że otwierają się przedemną nowe możliwości....
i jestem z niego dumny.
 

;)

Odnośnik do komentarza
Udostępnij na innych stronach

Dyskusja robi się trochę taka a'la "Hyde Park" :D. Bardzo dobrze, nie samymi problemami człowiek żyje.

 

Andrzej, super, że zdecydowałeś się pogłębić wiedzę i zostać 5-minutowym programistą! Zrobiłeś pierwszy krok! :) Gratuluję! A książki z serii "dla opornych" (for dummies") nie są takie znowuż złe, chociaż tytuł - przyznaję - odstręcza.

 

Programowanie to układanie poleceń w pewne logiczne ciągi. Jeśli potrafisz komuś w ciągu 5 minut powiedzieć przez telefon: podejdź do szuflady, przekręć klucz, wyjmij pudełko zapałek, podejdź do kuchenki.... itd., to już jesteś 5-minutowym programistą i właśnie powiedziałeś komuś "program" np. na zagotowanie wody. Ale jedno "ale" - uczyłeś się tego od dzieciństwa (słowa, pojęcia, język), ileś czasu poświęciłeś też na zapamiętanie otoczenia, więc zanim staniesz się 5-minutowym programistą musiałeś nabrać wiedzy i doświadczenia. Jeśli stawiasz pierwsze kroki, nie znasz otoczenia, nie wiesz gdzie są "zapałki", to nie dasz rady napisać tego programu.

 

W tworzeniu programów dla procesorów jest jedno ważne zagadnienie - czy masz ambicję poznania sprzętu, czy też nie. Bo jeśli nie, to traktujesz system jak czarną skrzynkę, która ma swoje zasoby i nie obchodzi cię co na wejściu, co na wyjściu. Odnosząc się do dyskusji wyżej - mierzysz czas trwania impulsu i masz w poważaniu to, czy tam są śmieci. Bo wierzysz w mechanizm ich usuwania (ATtiny ma taki sprzętowy filtr) i już. Po prostu, robisz swoje, to znaczy - piszesz program. Jeśli natomiast masz ambicję poznania sprzętu (zachęcam), to oprócz zrozumienia programu będziesz też musiał nauczyć się zasad działania różnych komponentów elektronicznych, w tym procesora. Współczesna technika dąży jednak do aż zbyt wielkiego uproszczenia, to znaczy - sprowadza potencjalnego amatora lub konstruktora jedynie do roli programisty. Kupujesz moduł np. Arduino, piszesz dla niego program lub uczysz się korzystając z przykładów. Uruchomisz wyświetlacz, obsłużysz przyciski (także korzystając z dostępnych w handlu modułów), jak większość - zbudujesz zegarek i termometr, i albo pójdziesz dalej, albo zostaniesz na tym mniej więcej poziomie technicznym. Po zbudowaniu np. 6 zegarków, kolejny, siódmy wykonasz w 5 minut. Nie stwarza to już problemu.

 

Przy okazji - do nauki świetnie nadaje się też np. brytyjski produkt o nazwie FlowCode. Tam program pisze się składając obrazki! (troszkę informacji jest np. tu -> http://www.easy-soft.net.pl/artykuly/programowanie/flowcode).

 

Nie mam nic przeciwko "czystym" programistom. Czasami nawet lepiej nim być, bo nie jest się obciążonym bagażem tych wszystkich "a co będzie jeśli". Z drugiej strony, dobrze jest chociaż trochę znać podstawy. Tak samo jak lekarz specjalista najpierw musi zostać lekarzem ogólnym, tak programista urządzeń powinien wiedzieć z czym ma do czynienia i np.z czym wiąże się częstotliwość przełączania.


Chyba to trochę nie tak  ;) ...

Tłumacząc się - użyłem dużego uproszczenia, skrótu myślowego ;)


Widzę, że kolega Jacek niezbyt dokładnie wczytał się w Nie ma żadnego problemu z odczytanie czasu trwania czystego impulsu, niezaśmieconego, bez zakłóceń idt, itp. 

Używam dwóch aparatur, obie na 2,4GHz. Obie są z grupy tzw. cyfrowych. Oscyloskop dołączony do wyjścia odbiornika pokazał, że albo występuje przebieg PWM - czysty i niezaśmiecony, albo go nie ma. Dlatego nie przejmowałbym się tak mocno tymi "śmieciami" z odbiornika. Jeśli będą występowały, to serwa też będą drgać, a taki problem będzie wymagał rozwiązania. Większość procesorów mających timery capture/compare ma też sprzętowe filtry na ich wejściach i dobrze daje sobie radę z zakłóceniami impulsowymi - zapewne wystarczająca będzie niewielka histereza oraz kilkumilisekundowe opóźnienie włączenia/wyłączenia ;).

Odnośnik do komentarza
Udostępnij na innych stronach

 Udostępnij

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę.