obara Opublikowano 14 Marca 2007 Udostępnij Opublikowano 14 Marca 2007 Opracowalem przy pomocy naszych wspolnych znajomych projekt oswietlenia modelu. Pozwole sobie zachowac pierwszy post w tym watku na finalna wersje tego ukladu wraz z opisem uruchomienia i programowania. Moja wiedza w temacie programowania mikrokontrolerow jest niezbyt wielka, ale mam wielkie ambicje. Projekt jest open-source bo po co mialbym go tworzyc przy Waszym udziale i trzymac na tym lape jednoczesnie. Mam nadzieje, ze skorzysta z niego wiele osob i kiedys zobacze, ze to cos lata w ktoryms z Waszych cudow. Oglaszam jednoczesnie, ze dwom losowo wybranym osobom, z tych ktore pomoga mi ten uklad dokonczyc, funduje zestaw czesci, lub zmontowany uklad wg zyczenia. Moja uczciwosc w tym zamysle potwierdzi TomekR (mam nadzieje ). ---------------------------------------------------------------------------------- Aktualna wersja oswietlenia do modeli Schemat ukladu: Wyglad plytki i rozmieszczenie elementow: Kod zrodlowy wsadu procesora $regfile = "attiny13.dat" $crystal = 9600000 Dim Timer_main As Byte 'zegar zliczajacy 2s Dim Timer_signal As Byte 'zegar zliczajacy 10ms Dim Flag_1_overflow As Bit 'flaga pierwszego przepelnienia Timer_signal Dim Signal_start As Byte 'poczatek impulsu Dim Signal_width As Byte 'szerokosc impulsu Dim Mask As Byte 'maska swiatla ladowania Dim Flag_idle As Bit 'flaga pracy w trybie AWARIA Config Portb = &B111101 'ustawienie wejsc i wyjsc Portb = &B011101 'zapalenie diodek Flag_1_overflow = 0 Flag_idle = 0 Mask = &B000010 Config Int0 = Change 'zewnetrzne przerwanie na zmiane stanu PB1 Config Timer0 = Timer , Prescale = 64 'wystartowanie timera zliczajacego 100us Timer0 = 241 'ustawienie stanu poczatkowego timera Enable Int0 'uruchomienie przerwania zewnetrznego Enable Timer0 'uruchomienie przerwania od timera Enable Interrupts 'odblokowanie przerwan On Int0 Signal_int 'wskazanie procedury obslugi przerwania On Timer0 100us 'wskazanie procedury obslugi przerwania Do 'poczatek programu If Timer_signal = 100 Then 'jesli minelo 10ms Timer_signal = 0 'wyzeruj zegar zliczajacy 10ms Incr Timer_main 'dodaj 1 do zegara zliczajacego 2s If Flag_1_overflow = 0 Then 'jesli zegar 10ms nie przepelnil sie Flag_1_overflow = 1 'oznacz flage przepelnienia zegara 10ms 1 raz End If End If If Timer_main = 200 Then 'jesli minely 2s Timer_main = 0 'wyzeruj zegar zliczajacy 2s If Flag_idle = 0 Then 'jesli program nie pracuje w trybie AWARIA If Signal_width < 15 Then 'jesli impuls krotszy niz 1,5ms Mask = &B110111 'ustaw maske gaszacej swiatlo ladowania Else 'jesli impuls dluzszy niz 1,5ms Mask = &B111111 'ustaw maske zapalajacej swiatlo ladowania End If If Signal_width < 9 Then 'jesli impuls krotszy niz 0,9ms Flag_idle = 1 'oznacz flage pracy w trybie AWARIA End If If Signal_width > 21 Then 'jesli impuls dluzszy niz 2,1ms Flag_idle = 1 'oznacz flage pracy w trybie AWARIA End If End If Signal_width = 0 'wyzerowanie odczytanego stanu End If If Flag_idle = 0 Then 'jesli program nie pracuje w trybie AWARIA Select Case Timer_main Case 0 To 1 : Portb = &B011100 And Mask Case 30 To 31 : Portb = &B011001 And Mask Case 100 To 101 : Portb = &B011100 And Mask Case Else : Portb = &B011000 And Mask End Select Else 'jesli program pracuje w trybie AWARIA Select Case Timer_main Case 0 To 1 : Portb = &B010100 Case 25 To 26 : Portb = &B010001 Case 40 To 41 : Portb = &B010001 Case 100 To 101 : Portb = &B010100 Case Else : Portb = &B010000 End Select End If Loop End 'koniec programu 100us: 'procedura obslugi przerwania od timera Timer0 = 241 'ustawienie stanu poczatkowego timera Incr Timer_signal 'zwiekszenie stanu zegara zliczajacego 10ms Return Signal_int: 'procedura obslugi przerwania zewnetrznego If Pinb.1 = 1 Then 'jesli przerwanie rozpoczynajace impuls Signal_start = Timer_signal 'zapamietanie stanu zegara 10ms na przerwaniu Flag_1_overflow = 0 'wyzerowanie flag przepelnienia zegara 10ms Flag_idle = 0 'wyzerowanie flagi pracy w trybie AWARIA Else 'jesli przerwanie konczace impuls If Flag_1_overflow = 0 Then 'jesli zegar 10ms nie przepelnil sie Signal_width = Timer_signal - Signal_start Else 'jesli zegar 10ms przepelnil sie 1 raz Signal_width = 149 + Timer_signal Signal_width = Signal_width - Signal_start Flag_1_overflow = 0 End If End If Return Ustawienia fusebitow: Zdjecie plytki: Zdjecie plytki: (uwaga dla wnikliwych! na zdjeciu jest plytka niezgodna z powyzszym rozmieszczeniem elementow i schematem) Video z dzialania ukladu: (lepiej przyciszyc glosniczki, slabe odswiezanie kamerki w telefonie spowodowale, ze w trybie bez sterowania niezbyt dobrze widac podwojny blysk swiatel mrygajacych co 2sek - tych na koncowki skrzydel) http://www.obara.pl/elektronika/oswietlenie_samolotu/oswietlenie.3gp Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
tomekr Opublikowano 14 Marca 2007 Udostępnij Opublikowano 14 Marca 2007 On pewnie już je ma, jak znam życie to kupił kilka kompletów, tak jak kiedyś z silnikami z Chin, do jednego modelu kilka, a model był jednosilnikowy :mrgreen: Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
obara Opublikowano 14 Marca 2007 Autor Udostępnij Opublikowano 14 Marca 2007 Tomku! Wolne zarty. Uklad sterowany ma byc z odbiornika RC. Sercem ukladu jest mikrokontroler ATTiny13. Przewidziane tryby swiecenia: AWARIA - tryb, w ktorym brak sygnalow z odbiornika lub sygnal zostal utracony (moze sluzyc jako lokalizator utraconego modelu) STROBE - tryb normalnej pracy swiatel pozycyjnych, stroboskopow na koncowkach skrzydel i stroboskopow pod i nad samolotem (beacon lights) LANDING - j/w + wlaczone swiatla ladowania Schemat ukladu jest w miare ostateczny: Tutaj byl schemat ukladu. Teraz to z czym problem jest najwiekszy. Kod do ATTiny w Bascomie: Tutaj byl niedzialajacy kod. Moje pytanie brzmi. Kto zna sie na tym na tyle, aby pomoc dokonczyc dziela. W tej chwili procek powoduje rozne nieoczekiwane dzialania ukladu. Wiecej szegolow po konkretnych pytaniach. To tyle jak na pierwszy raz. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
a_skot Opublikowano 15 Marca 2007 Udostępnij Opublikowano 15 Marca 2007 Na moją pomoc w tym zakresie liczyć niestety nie możesz. Tu jestem totalnym lejkiem :wink: , ale drąż temat dalej. Sam jestem zainteresowany taką konstrukcją Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
obara Opublikowano 15 Marca 2007 Autor Udostępnij Opublikowano 15 Marca 2007 Na szczescie i nieszczescie skonczylem uklad. Wychodzi na to, ze nagrod nie bedzie, ale jesli ktos chce to moge podeslac zaprogramowany procesor. Na wydanie przeznaczam 4 procesory. Jesli ktos chcialby taki procesor otrzymac, prosze o informacje na ten temat w watku. Zanim jednak zaczne je wysylac chcialbym aby ktos z Was przetestowal w "warunkach bojowych" uklad i zdal na forum relacje z jego dzialania. Teraz moge sie wziac za nastepne rozwiazania. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
tomekr Opublikowano 16 Marca 2007 Udostępnij Opublikowano 16 Marca 2007 gratuluję Bartek, czytałem na innym forum o problemach z zmieszczeniem oprogramowania, udało się czy dalej testujemy i walczymy z softem 8) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
obara Opublikowano 16 Marca 2007 Autor Udostępnij Opublikowano 16 Marca 2007 Napisalem tutaj i na "innym forum", ze problemow juz nie ma i projekt jest zakonczony. Teraz pozostalo przetestowac to w realnym otoczeniu i potwierdzic prawidlowosc dzialania. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
marcin133 Opublikowano 16 Marca 2007 Udostępnij Opublikowano 16 Marca 2007 Projekt Super! Pewnego czasu z kolegą poszukiwaliśmy podobnych rozwiązań. Czy jest możliwość abyś wstawił filmik przedstawiający działanie układu? Oczywiście nie musi być to zamontowane w modelu Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
obara Opublikowano 17 Marca 2007 Autor Udostępnij Opublikowano 17 Marca 2007 Filmik dodany. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Zarchiwizowany
Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.