Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Mini system sterowania pokojem

witko1 20 Jun 2013 18:08 31029 27
Suntrack
  • Mini system sterowania pokojem

    Witam wszystkich.

    Chcę zaprezentować Państwu moją konstrukcję. Nie jest to pierwsza rzecz jaką wykonałem, ale pierwsza, którą tutaj pokazuję.
    Przedstawiana konstrukcja to mini system sterowania pokojem. Pojawiło się wcześniej kilka podobnych tematów, więc postanowiłem, że pochwalę się tym, co posiadam. Całość nie jest jakoś specjalnie duża, ale spełnia swoje zadanie w stu procentach.
    Cały układ ma budowę modułową i działa na zasadzie master-slave. Do połączenia zestawu używam skrętki UTP, ponieważ ma w sobie 8 przewodów, z których każdy jest używany.

    Aktualny stan zestawu:
    - płyta główna + zasilacz + dodatkowe porty
    - sterownik światła w pokoju
    - sterownik rolet
    - odbiornik podczerwieni
    - konsola do sterowania WINAMPEM i komputerem
    - sterownik światła pod łóżkiem
    - próbnik do sprawdzania poprawności danych

    Do przesłania danych pomiędzy układami a płytą główną używam czterech przewodów. Po dwa przewody w jedną stronę przesyłania danych. Z tych dwóch przewodów jeden wyznacza taktowanie, a drugi przesyłane dane. Najprostszy schemat przedstawiający, jak to wszystko działa, wygląda tak:

    Mini system sterowania pokojem

    Proszę nie zwracać uwagi na to, że np. do atmeg nie ma podpiętego zasilania lub brak rezystora przy pinie reset. Jest to tylko rysunek poglądowy. :D

    Pozostałe cztery przewody to zasilanie +5V, +12V i dwie masy.

    CENTRALA
    Składa się z płyty głównej, sekcji zasilania i dodatkowej płytki z portami. Całość umieszczona jest w starej obudowie komputera firmy DELL. Dodatkowo posłużyłem się zasilaczem, który pochodził z tego komputera i wykorzystałem go do zasilania całej centrali.
    Płytą główną steruje ATmega16 taktowana (póki co) kwarcem 8MHz. Ma ona za zadanie odbierać sygnał przesyłany przez inne urządzenia, sprawdzać czy komenda dotyczy samej centrali i jeśli nie dotyczy to wysyła sygnał do innych urządzeń.
    Czyli na przykład odbiornik podczerwieni wysyła dwa bajty danych. Pierwszy jest adresem urządzenia do którego ma być wysłany sygnał, drugi jest komendą. Jeśli adres to 255 (jest to adres centrali), to wtedy sygnał nie jest przesyłany dalej, tylko zatrzymuje się i ATmega sprawdza komendę. Jeśli adres to 7 (adres rolet), to wtedy centrala wysyła te dwa bajty danych do wszystkich urządzeń. Dzięki temu każde urządzenie może być podpięte do dowolnego wejścia na płycie.
    Mini system sterowania pokojemMini system sterowania pokojem

    Nie umiem za bardzo rysować schematów i projektować płytek, ale się uczę :D

    Mini system sterowania pokojem Mini system sterowania pokojem Mini system sterowania pokojem
    Mini system sterowania pokojem Mini system sterowania pokojem Mini system sterowania pokojem

    Sekcja zasilania:
    Znajduje się na niej złącze do zasilacza komputerowego i kilka kondensatorów.

    Mini system sterowania pokojem Mini system sterowania pokojem

    Płytka portów:
    Na jednym ze zdjęć powyżej widać starą płytkę. Nowa została wzbogacona o kilka tranzystorów, które wzmacniają sygnał. Dzięki temu nie mam już problemów z przesyłem, nawet gdy podpięte jest 30 metrów kabla. Płytek z portami będzie więcej, ponieważ mam zamiar rozbudować cały system.

    Mini system sterowania pokojem Mini system sterowania pokojem Mini system sterowania pokojem Mini system sterowania pokojem Mini system sterowania pokojem

    Całość wygląda tak:
    Mini system sterowania pokojem

    STEROWNIK ŚWIATŁA
    Na jego pokładzie jest ATmega8. Ma ona za zadanie zmienić stan przekaźnika (który jest w puszce), gdy otrzyma odpowiedni sygnał.

    Mini system sterowania pokojem Mini system sterowania pokojem
    Mini system sterowania pokojem Mini system sterowania pokojem Mini system sterowania pokojem

    ODBIORNIK PODCZERWIENI
    Ten układ jest jednym z najważniejszych. Odbiera sygnał RC5 i wysyła go dalej do odpowiednich urządzeń. Przy okazji wbudowałem do niego dodatkowe porty, żeby w przyszłości podpiąć więcej urządzeń bez zbędnych kabli.
    Dioda sygnalizuje odebranie podczerwieni.
    Niestety nie znalazłem odpowiedniej obudowy. Całość jest przyklejona taśmą dwustronną do tyłu monitora. Wystaje tylko dioda podczerwieni i dioda LED.

    Mini system sterowania pokojem Mini system sterowania pokojem
    Mini system sterowania pokojem Mini system sterowania pokojem Mini system sterowania pokojem Mini system sterowania pokojem
    Pilot najprostszy jaki tylko jest
    Mini system sterowania pokojem

    STEROWNIK WINAMPA
    Na pokładzie jest ATmega8. Odbiera ona sygnał od innych urządzeń i wysyła do komputera w postaci RC5. Wybrałem ten rodzaj komunikacji z komputerem, ponieważ zainstalowałem program Girder i wtyczkę Igora. ATmega wytwarza sygnał dawany przez pilota. Jakbym chciał na przykład włączyć Winampa w komputerze za pomocą pilota, to droga przesyłu danych wyglądałaby następująco:

    Pilot RC5 -> odbiornik podczerwieni -> centrala ->sterownik winampa -> port com w komputerze -> Girder

    Cały przesył trwa naprawdę szybko i nie ma opóźnień, więc nie widać przez ile urządzeń wszystko przechodzi.

    Dodatkowo na płytce znajduje się siedem przycisków i jeden encoder. Dzięki nim bez pomocy pilota mogę sterować winampem i nie tylko. Poniżej obrazek z rozpiską przycisków.
    Mini system sterowania pokojem

    Obudowa to dwie płyty CD albo DVD (nie pamiętam). Jedna nad płytką, druga pod. PCB ucięte idealnie pod wielkość płyt. Górna część położona jest na przyciskach, dzięki czemu nie musiałem wiercić żadnych otworów. Diody pokazują gdzie należy nacisnąć. W rzeczywistości całość wygląda o wiele lepiej niż na zdjęciach. Niestety mój aparat nie uchwycił wszystkiego. :D
    Póki co diody cały czas są podpięte do zasilania, jednak zostawiłem miejsce na ewentualny tranzystor do załączania.
    Mini system sterowania pokojemMini system sterowania pokojem
    Mini system sterowania pokojem Mini system sterowania pokojem Mini system sterowania pokojem Mini system sterowania pokojem Mini system sterowania pokojem

    STEROWNIK ROLET
    Składa się z ATmegi8, mostków H i układu wykrywającego przeciążenie. Wiele razy były opisywane podobne rozwiązania. Ja nie wnoszę nic nowego. Mostek H zrobiłem na tranzystorach, ponieważ mnie wiedziałem czy dedykowane układy wytrzymają przeciążenie. Dodatkowo mogę sobie ustawić dowolne napięcie na wyjściach. Do tego używam stabilizatora LM317. Serwa jakie użyłem to Futaba S3003. Są dość mocne, ale nie wystarczające dla mnie. Główną wadą jest to, że całość chodzi dość głośno. Mi to trochę przeszkadza, więc jak będę miał okazję, to wymienię serwa na coś innego.
    Roletami mogę sterować pilotem i przyciskami.

    Niestety nie mam jeszcze obudowy do tego modułu. Jak coś znajdę do się pochwalę :D

    Mini system sterowania pokojem Mini system sterowania pokojem
    Mini system sterowania pokojem Mini system sterowania pokojem Mini system sterowania pokojem Mini system sterowania pokojem

    ŚWIATŁO POD ŁÓŻKIEM
    I kolejny procesor ATmega8 znalazł swoje zastosowanie. Steruje on diodami LED, które przymocowałem pod łóżkiem. Bardzo fajny bajer, bo pobiera mało prądu, a rozświetla pokój dość mocno. Ustawiłem PWM’a, który działa tak na 60% mocy, żeby nie było zbyt jasno.
    Zrobię wieczorem zdjęcie i pokażę jak wyglądają LEDY.
    W chwili robienia zdjęć płytce, nie miałem jednego przycisku, jednak zapewniam, że teraz wszystko jest.

    Mini system sterowania pokojem Mini system sterowania pokojem Mini system sterowania pokojem

    Zdjęcia przedstawiające, jak to wygląda, gdy się świeci. Niestety aparat nie uchwycił tego, że LEDY rozświetlają prawie cały pokój.
    Mini system sterowania pokojem Mini system sterowania pokojem


    PRÓBNIK
    Jest to małe urządzenie, które podpinam jak każde inne. Zrobiłem je po to, aby wykrywać ewentualne błędy, których było naprawdę dużo. Wyświetla adres i komendę na wyświetlaczu. I w sumie tylko tle robi. Zostawiłem miejsce na dodatkowe przyciski, jednak na chwilę obecną jeszcze ich nie wlutowałem, bo są mi nie potrzebne. Próbnik zasilanie pobiera z centrali, dlatego podczas używania go, trzeba włączyć zasilacz.

    Mini system sterowania pokojem Mini system sterowania pokojem
    Mini system sterowania pokojemMini system sterowania pokojem Mini system sterowania pokojem

    Większość urządzeń posiada swoje zasilanie, tzn. korzysta z dodatkowego zasilania z gniazdka. Jednak nic nie stoi na przeszkodzie, żeby używać prądu z centrali. Przez cały dzień centrala jest wyłączona, ale jednak przesyłanie danych działa. Do zasilania płyty głównej używam dodatkowej linii +5V, na której cały czas jest napięcie. Jeśli potrzeba to zasilacz jest włączany i używany.
    Wszystkie programy napisałem w Bascomie. Płytki wykonałem samodzielnie metodą termo-transferu.
    Mogę udostępnić kawałek kodów, ale nie całość. Jeśli będą chętni to wrzucę płytki i schematy w wersji do pobrania.

    Dodam na końcu, że mam 16 lat i właśnie kończę gimnazjum. Całość powstała dlatego, że jestem bardzo leniwy. Nie chciało mi się włączać światła normalnie, więc musiałem znaleźć rozwiązanie. Poza tym chciałem zbudować coś dużego i chyba mi się udało. Małymi krokami wszystko powstawało przez około dwa lata. Na początku nic nie wyglądało tak jak teraz. Wszystkie schematy zostały zrobione nowe, ponieważ stare nie działały jak należy. Jak dla mnie cały system działa na prawdę dobrze. Podejrzewam, że jeszcze dużo się zmieni w nim. Mam kolejne pomysły na dodatkowe moduły, które też tutaj zaprezentuję.

    Liczę na komentarze, porady, sugestie i krytykę. Tego ostatniego to chyba będzie najwięcej. :D

    Pozdrawiam :)

    Na prośbę użytkowników dodaję filmik. Niestety jakość jest dość kiepska, za co przepraszam. Pokazałem na nim jak to mniej więcej działa.
    Filmik dodany 23.06.2013



    Cool? Ranking DIY
    About Author
    witko1
    Level 9  
    Offline 
    witko1 wrote 37 posts with rating 47. Live in city Czarna. Been with us since 2012 year.
  • Suntrack
  • #2
    dammirus
    Level 14  
    Chętnie zobaczyłbym filmik-prezentację możliwości Twojego systemu ;)
  • #4
    maniek_88
    Level 14  
    Pomysł fajny, ale ilość zbędnego Hardware'u powala. Bez problemu wszystkie te funkcje można by zrealizować na jednej atmedze. A już jeśli tak bardzo chciałeś sobie utrudnić życie to w wielu miejscach wystarczające było by małe attiny.

    Wytłumacz mi sens ciągnięcia do puszki od sterowania swiatłem 8żyłowego kabla ethernetowego, komunikować się z nim za pomocą RSa, utrzymywać ciągle jego zasilanie jeśli takie sterowanie można było zrobić za pomocą 2 żył (gnd+sygnał) i odpowiedniego układu z optotriakiem i triakiem?

    A teraz mam pytanie, ile układ pobiera prądu? rozumiem że zasilasz to z 5V ze skrętki, podłącz miernik prądu tam i przy wyłączonych diodach, włączonym światłem (żeby doliczyć prąd cewki przekaźnika) i podczas normalnej pracy.
    "Całość powstała dlatego, że jestem bardzo leniwy" - wg mnie musiało Ci się bardzo nudzić :) nie wiem jak stoisz programistycznie, ale uwierz że można te wszystkie zadania wrzucić do jednej ATMEGI16 (może i w 8 by to zmieścił)
  • Suntrack
  • #5
    Anonymous
    Anonymous  
  • #6
    witko1
    Level 9  
    dammirus wrote:
    Chętnie zobaczyłbym filmik-prezentację możliwości Twojego systemu ;)


    Jak zdobędę kamerę to postaram się nagrać :)

    ahmed10 wrote:
    No jestem pod ogromnym wrażeniem wykonanej roboty i pomysłowości. jedyne do czego można się przyczepić to to że m8 to trochę na wyrost jest np odbiornik podczerwieni czy sterownik rolet spokojnie malutki ATtiny13 by obsłużył :) ale to tylko taki mały szegół :)


    Z tym, że m8 jest duża mogę się zgodzić. Ale jak dotąd wysyłane są tylko dwa bajty danych. W przyszłości chciałbym wysyłać więcej i zastosować jakiś algorytm zapobiegający błędnej ramce. Wtedy mogłoby braknąć pamięci na ATtiny 2313. Aktualnie kod do odbiornika podczerwieni zajmuje mi 2k kodu i obsługuje tylko 17 przycisków.

    maniek_88 wrote:
    Pomysł fajny, ale ilość zbędnego Hardware'u powala. Bez problemu wszystkie te funkcje można by zrealizować na jednej atmedze. A już jeśli tak bardzo chciałeś sobie utrudnić życie to w wielu miejscach wystarczające było by małe attiny.


    To prawda, wszystko można by zrealizować na jednej atmedze. Ale nie chciałem ciągnąć osobnego kabla do każdego modułu. Pomyślmy, mam cztery moduły w odległości 10 metrów (albo więcej) od centrali i teraz muszę ciągnąć do każdego modułu po kablu, razem 40 metrów. W moim przypadku puszczę jedną skrętkę i na końcu dam coś w rodzaju "złodziejki" i mam już cztery gniazda.

    maniek_88 wrote:
    Wytłumacz mi sens ciągnięcia do puszki od sterowania swiatłem 8żyłowego kabla ethernetowego, komunikować się z nim za pomocą RSa, utrzymywać ciągle jego zasilanie jeśli takie sterowanie można było zrobić za pomocą 2 żył (gnd+sygnał) i odpowiedniego układu z optotriakiem i triakiem?


    Aktualnie mam tak, że sterownik do światła znajduje się 2 metry od puszki, do samego włącznika idą tylko dwa kable zasilające przekaźnik. I moja komunikacja to nie jest RS232, zrobiłem sobie swoją komunikację. Zasilanie do światła to mała ładowarka impulsowa, nic więcej. Nic też nie stoi na przeszkodzie, aby zrobić mały konwerter, który będzie zmieniał mój sygnał na ten wspomniany przez Ciebie. Można też zamiast przekaźnika dać optotriak i triak bez problemu, wystarczy przerobić płytkę do światła.

    maniek_88 wrote:
    A teraz mam pytanie, ile układ pobiera prądu? rozumiem że zasilasz to z 5V ze skrętki, podłącz miernik prądu tam i przy wyłączonych diodach, włączonym światłem (żeby doliczyć prąd cewki przekaźnika) i podczas normalnej pracy.
    "Całość powstała dlatego, że jestem bardzo leniwy" - wg mnie musiało Ci się bardzo nudzić :) nie wiem jak stoisz programistycznie, ale uwierz że można te wszystkie zadania wrzucić do jednej ATMEGI16 (może i w 8 by to zmieścił)


    Całość jest różnie zasilana, żaden z modułów nie jest zasilany tylko z centrali, może być ale nie musi. Zrobione jest to po to, aby na przykład w przyszłości zastosować mały UPS lub coś podobnego i podpiąć tylko do centrali, a nie ciągnąć dodatkowe kable. Programistyczne to nie ma tu żadnych bajerów. Chyba nie ma prostszych komend od tych które zastosowałem. Nie chciałem wszystkiego pchać w jeden procesor, głównie dlatego żeby całość była uniwersalna. Czyli jak nagle zachce mi się dać triaka do sterowania światła, to żebym nie musiał zmieniać całej płyty głównej, lecz tylko ten jeden moduł.
  • #7
    Artyliusz
    Level 12  
    Wydaje mi się, że termotransfer wychodzi tylko na papierze kredowym. :)

    Ten wyświetlacz będzie wstawał z obudowy co na pierwszym zdjęciu?
    Kształt elementów jakie umieszczać wyszedł Tobie bezproblemowo i czym to zabezpieczyłeś?
  • #8
    witko1
    Level 9  
    maxi128 wrote:
    Ja stosuję u siebie pary amega+max487 z dodatkową obstawą (7805, jakieś MOSy czy czujnikowe wejścia). Master - Linux oskrypcony bashem i phpem. jednym ethernetowym UTP oblatuję cały dom i działa ładnie. jakoś wole trzymać się standardów, łatwiej implementować dalsze zmiany. Wcale nie mówię, że robisz źle. Uważam, że wdrażanie swoich protokołów też jest dobrym podejściem. Nauczysz się czegoś, spotkasz z problemami, które mieli twórcy chociażby Ethernetu.
    Podoba mi się ten selektor podświetlany z enkoderem. czadowy jest ;]
    M.


    No problemów to było bardzo dużo. Ale dzięki temu się tego i owego nauczyłem. Nie ma tego złego, co by na dobre nie wyszło :)
    Jak się w końcu zdenerwuję to mogę przesiąść się na coś sprawdzonego :D

    kiclaw wrote:
    A ja mam pytanie z innej beczki, czym robisz termotransfer? Tzn. jaki papier (kreda, gazeta)?


    Termotransfer robiony normalnie na papierze kredowym. Później przygrzewałem żelazkiem i moczyłem w wodzie, a resztki papieru zmywałem octem. Idealnie wszytko schodziło.

    Artyliusz wrote:
    Wydaje mi się, że termotransfer wychodzi tylko na papierze kredowym. :)

    Ten wyświetlacz będzie wstawał z obudowy co na pierwszym zdjęciu?
    Kształt elementów jakie umieszczać wyszedł Tobie bezproblemowo i czym to zabezpieczyłeś?


    Żaden wyświetlacz mi nie wychodzi z obudowy. Jest w centrali jeden, ale on jest w środku. Poza tym aktualnie go tam nie ma, bo jest nie potrzebny.
    Płytki zabezpieczam lakierem bezbarwnym.
  • #9
    djkomprez
    Level 21  
    A wystarczyło by w modułach pomontować odbiorniki 2.4Ghz po 10zł szt :)
    0 kabli = 0 problemów a nie wiem czy te moduły już nie posiadają wbudowanego
    algorytmu poprawności danych....
  • #10
    witko1
    Level 9  
    djkomprez wrote:
    A wystarczyło by w modułach pomontować odbiorniki 2.4Ghz po 10zł szt :)
    0 kabli = 0 problemów a nie wiem czy te moduły już nie posiadają wbudowanego
    algorytmu poprawności danych....


    Jakby kolega mógł podesłać jakiegoś linka z takimi tanimi modułami, to bardzo byłbym wdzięczny. Chciałem tak zrobić, ale ceny były dość wysokie. Wtedy zrobiłbym coś w stylu routera bezprzewodowego i podpiął do centrali :)
  • #11
    marcinosko
    Level 14  
    witko1 wrote:

    Cały układ ma budowę modułową i działa na zasadzie master-slave. Do połączenia zestawu używam skrętki UTP, ponieważ ma w sobie 8 przewodów, z których każdy jest używany.


    Nie zastanawiałeś się nad zastosowaniem rs485 i zastosowaniem dipswitch do ustalania adresu danego układu, odpadało by ci wtedy programowanie adresu każdego układu indywidualnie ?
  • #13
    bulup
    Level 16  
    No właśnie film zobaczymy jak działa, to ocenimy.
  • #14
    witko1
    Level 9  
    marcinosko wrote:
    Nie zastanawiałeś się nad zastosowaniem rs485 i zastosowaniem dipswitch do ustalania adresu danego układu, odpadało by ci wtedy programowanie adresu każdego układu indywidualnie ?


    Myślałem nad tym sposobem, ale wpisanie adresu do programu to tylko jedna linijka kodu, więc nie przeszkadza to za bardzo.

    pabllosee wrote:
    http://www.maritex.com.pl/pl/shop/products/ggid/18072
    Pewnie chodzi o coś takiego. Jest SPI więc chyba o to chodzi.


    Moduły fajne, tylko trzeba będzie się na C przesiąść, aby je uruchomić :D

    bulup wrote:
    No właśnie film zobaczymy jak działa, to ocenimy.


    Filmik właśnie dodałem.
  • #15
    Artyliusz
    Level 12  
    Faktycznie sterowanie rolet jest trochę głośne, ale to krótki dystans i nie aż tak często zasłaniane i odsłaniane, a więc da się wytrzymać.
    A nie można by było użyć normalnych silniczków DC, skoro już stosujesz mostek H zamiast serw? Nie jestem pewien, ale takie rozwiązanie byłoby może tańsze. W dodatku krańcówki do zabezpieczenia.

    A tak poza tym to świetnie wygląda i działa. Gratulacje! Ja jestem za leniwy, aby wspomóc lenistwu. :D
  • #16
    wladziu22
    Level 17  
    Gratuluje "zapału" i osiągnięcia zamierzonego celu, szczególnie ze masz 16 lat! :)
    Ja w Twoim wieku dopiero poznawałem komputer, a o robieniu płytek, programowaniu nie śniłem - teraz to mój chleb :)

    Trochę zgadzam się z poprzednikami, iż można wszystkie te moduły uprościć i upchać, ale wnioskuję ze robiłeś to pierwszy raz podpatrując rozwiania innych, przy tym ucząc się co nieco.

    Ze swojej strony mogę dodać jeszcze, że jeśli chciałbyś kiedyś coś podobnego sprzedawać, to obecnie liczy się ładny wygląd, ławość w obsłudze i bezprzedmiotowość.
    Ja sam mimo swojego fachu nie cierpię kabli :)

    Powodzenia!
  • #17
    kedzi1
    Level 18  
    Witam,
    Po co tworzyć własną komunikację, jak to nazwałeś, skoro jest gorsza od wszystkiego co już istnieje? Powinieneś użyć rs485, wydaje się być najlepszy do tego typu instalacji. Rozumiem, że chciałeś się czegoś nauczyć. Więc powiem Ci co z Twoim rozwiązaniem jest nie tak. Taki rs485 to komunikacja różnicowa, odporniejsza na zakłócenia. W tej chwili Twoja magistrala to gołe piny uC. Nie rób tak nigdy. Nie masz nawet prostych zabezpieczeń jak dławiki i diody. Pierwsza burza, która przejdzie obok zniszczy całą Twoją pracę. Pomyśl o Tym. Pomyśl także o tym jakie zakłócenia generuje Twoja instalacja. Chcesz być dobrym konstruktorem to zainteresuj się tym, kiedyś Ci się bardzo przyda. Pamiętaj, że wszystkie urządzenia elektroniczne muszą być kompatybilne elektromagnetycznie. Chcesz się uczyć to ucz się od początku prawidłowo budować urządzenia elektroniczne. Minimalizacja sprzętu to też bobry nawyk. Na koniec, attiny13 starczy na bardzo wiele. Jeżeli prosty program zajmuje 2kB to coś z nim nie tak. Ucz się programować w C jeżeli chcesz mieć przyszłość w branży.
    Po za tym gratuluję i życzę coraz lepszych konstrukcji.
  • #18
    lukashb
    Level 39  
    wladziu22 wrote:

    Ze swojej strony mogę dodać jeszcze, że jeśli chciałbyś kiedyś coś podobnego sprzedawać, to obecnie liczy się ładny wygląd, ławość w obsłudze i bezprzedmiotowość.

    Tak jak poprzednicy. Nie wielu zaczyna w wieku 16 lat, a jak zaczyna to tragicznie :D. Ty nie dość, że zacząłeś to jeszcze trzymasz poziom. Niestety, ale ostudzę zapał ze sprzedażą...w Polsce trzeba do tego przygotować wór pieniędzy by "zalegalizować" konstrukcję (CE, EMC itp). Nie raz jest to droższe od samego projektu. Dlatego właśnie porzuciłem wszelkie pomysły i bardziej skupiłem się na programowaniu - przynajmniej badań nie trzeba tylko darmowy kompilator i hej :D a kilka pomysłów było, między innymi lokalizator GPS+GSM + dedykowana aplikacja (było tu o niej słowo, pisałem kiedyś). Niestety, koszty badania, dopuszczenia dzięki ładnie brzmiącej dyrektywy R&TTE mnie odrzuciły od dalszego pomysłu. Chyba, że dla siebie i znajomych. Pozdrawiam i gratuluję!!!!
  • #19
    Atlantis86
    Level 19  
    Swoją drogą zastanawia mnie jedna kwestia - dlaczego w podobnych projektach, czy to na Raspberry Pi/Beaglebone/Cubieboard, czy na zwykłym pececie w roli serwera ludzie piszą oprogramowanie sterujące w postaci skryptów np. php, python albo bash? Czy skompilowany program, napisany np. w C/C++ nie działałby szybciej i sprawniej?
  • #20
    witko1
    Level 9  
    Artyliusz wrote:
    Faktycznie sterowanie rolet jest trochę głośne, ale to krótki dystans i nie aż tak często zasłaniane i odsłaniane, a więc da się wytrzymać.
    A nie można by było użyć normalnych silniczków DC, skoro już stosujesz mostek H zamiast serw? Nie jestem pewien, ale takie rozwiązanie byłoby może tańsze. W dodatku krańcówki do zabezpieczenia.

    A tak poza tym to świetnie wygląda i działa. Gratulacje! Ja jestem za leniwy, aby wspomóc lenistwu. :D


    Zastanawiałem się nad jakimiś silnikami z przekładniami, ale też nie wiadomo, jak to by działało. Jak coś mi wpadnie w ręce to postaram się wypróbować i zobaczyć jak zadziała :D

    wladziu22 wrote:
    Gratuluje "zapału" i osiągnięcia zamierzonego celu, szczególnie ze masz 16 lat! :)
    Ja w Twoim wieku dopiero poznawałem komputer, a o robieniu płytek, programowaniu nie śniłem - teraz to mój chleb :)

    Trochę zgadzam się z poprzednikami, iż można wszystkie te moduły uprościć i upchać, ale wnioskuję ze robiłeś to pierwszy raz podpatrując rozwiania innych, przy tym ucząc się co nieco.

    Ze swojej strony mogę dodać jeszcze, że jeśli chciałbyś kiedyś coś podobnego sprzedawać, to obecnie liczy się ładny wygląd, ławość w obsłudze i bezprzedmiotowość.
    Ja sam mimo swojego fachu nie cierpię kabli :)

    Powodzenia!


    Dziękuję za miłe słowa. Sprzedawać na razie nie mam co. :D Wiem, że jeśli chciałbym to gdzieś komuś "opchnąć", to w Polsce będzie trudno. Ale ja to zrobiłem dla siebie, żeby nie musieć włączać światła normalnie :D

    kedzi1 wrote:
    Witam,
    Po co tworzyć własną komunikację, jak to nazwałeś, skoro jest gorsza od wszystkiego co już istnieje? Powinieneś użyć rs485, wydaje się być najlepszy do tego typu instalacji. Rozumiem, że chciałeś się czegoś nauczyć. Więc powiem Ci co z Twoim rozwiązaniem jest nie tak. Taki rs485 to komunikacja różnicowa, odporniejsza na zakłócenia. W tej chwili Twoja magistrala to gołe piny uC. Nie rób tak nigdy. Nie masz nawet prostych zabezpieczeń jak dławiki i diody. Pierwsza burza, która przejdzie obok zniszczy całą Twoją pracę. Pomyśl o Tym. Pomyśl także o tym jakie zakłócenia generuje Twoja instalacja. Chcesz być dobrym konstruktorem to zainteresuj się tym, kiedyś Ci się bardzo przyda. Pamiętaj, że wszystkie urządzenia elektroniczne muszą być kompatybilne elektromagnetycznie. Chcesz się uczyć to ucz się od początku prawidłowo budować urządzenia elektroniczne. Minimalizacja sprzętu to też bobry nawyk. Na koniec, attiny13 starczy na bardzo wiele. Jeżeli prosty program zajmuje 2kB to coś z nim nie tak. Ucz się programować w C jeżeli chcesz mieć przyszłość w branży.
    Po za tym gratuluję i życzę coraz lepszych konstrukcji.


    RS-485 jest dobrym systemem. Pomyślę o nim następnym razem. Tylko, że ma jedną zasadniczą wadę, nie można podpiąć do niego więcej niż 32 urządzenia. Może nigdy nie uda mi się podpiąć nawet 10 urządzeń do mojego systemu, ale myślę, że czas który poświęciłem, aby go zbudować, nie poszedł na marne :)

    lukashb wrote:
    Tak jak poprzednicy. Nie wielu zaczyna w wieku 16 lat, a jak zaczyna to tragicznie :D. Ty nie dość, że zacząłeś to jeszcze trzymasz poziom. Niestety, ale ostudzę zapał ze sprzedażą...w Polsce trzeba do tego przygotować wór pieniędzy by "zalegalizować" konstrukcję (CE, EMC itp). Nie raz jest to droższe od samego projektu. Dlatego właśnie porzuciłem wszelkie pomysły i bardziej skupiłem się na programowaniu - przynajmniej badań nie trzeba tylko darmowy kompilator i hej :D a kilka pomysłów było, między innymi lokalizator GPS+GSM + dedykowana aplikacja (było tu o niej słowo, pisałem kiedyś). Niestety, koszty badania, dopuszczenia dzięki ładnie brzmiącej dyrektywy R&TTE mnie odrzuciły od dalszego pomysłu. Chyba, że dla siebie i znajomych. Pozdrawiam i gratuluję!!!!


    W moim wieku nie ma co myśleć nad sprzedawaniem takich rzeczy. Na rynku są dużo lepsze i chyba tańsze :D

    Atlantis86 wrote:
    Swoją drogą zastanawia mnie jedna kwestia - dlaczego w podobnych projektach, czy to na Raspberry Pi/Beaglebone/Cubieboard, czy na zwykłym pececie w roli serwera ludzie piszą oprogramowanie sterujące w postaci skryptów np. php, python albo bash? Czy skompilowany program, napisany np. w C/C++ nie działałby szybciej i sprawniej?


    Mi się wydaje, że taki komputer PC jest szybszy i o wiele mniej zawodny, niż taka ATmega8 czy ATmega16 :)
  • #21
    Atlantis86
    Level 19  
    Przecież nie pisałem o AVR-ach. Na komputerze z Linuksem też można odpalić skompilowany program w C. Trochę dziwi mnie moda (?) na stosowanie języków skryptowych w rozmaitych projektach na małych komputerkach w stylu RPi. Czy skompilowany deamon realizujący określone zadanie nie działałby lepiej?
    Czym to jest spowodowane?

    Poza tym Atmega też ma swoje zalety, prostota często idzie w parze z niezawodnością. :)
  • #22
    dominos96
    Level 12  
    Ale mnie wyprzedziłeś, miałem całość robić prawie identycznie, nawet te same serwa do rolet :D Ale ja nie robił bym głownej centralki tylko jedną linie komunikacyjną (np.rs232) i każde urządzenie było by wpięte do tej lini, gorzej jak 2 urządzenia miały by w tym samym czasie przesyłać jakąś informacje, ale myśle że coś takiego by nie wystąpiło. Ogólnie projekcik ładnie wykonany
  • #23
    Elektro-man
    Level 12  
    Atlantis86 wrote:
    Czym to jest spowodowane?


    Języki skryptowe są dużo prostsze, ot co. Odpada inicjalizowanie api, czy przy php typów zmiennych itp. Języki skryptowe są bardziej "idiotoodporne" i tolerują naprawdę złe praktyki programistyczne, których ludzie z niedbalstwa używają. Ja np. wolę sobie klepnąć programik w c++ czy c#, ale nie dziwię się, że ludzie używają skryptów, często tylko z przyzwyczajenia, czy braku czasu (no dobra, chęci) na rozwój.
  • #24
    gbd.reg
    Level 21  
    Najważniejsze jest to, że języki skryptowe mają wbudowaną obsługę rozmaitych interfejsów wejścia/wyjścia (wbudowane biblioteki), np dla PHP wystarczy odpowiednie żądanie HTTP, a zwracany wynik mamy zamiast tekstu strony. Dla innych skryptowych też jest to mocno uproszczone. W przypadku kompilowalnych języków jesteśmy zmuszeni znaleźć odpowiednie biblioteki, lub pisać od podstaw komunikację. A bibliotek jest od groma, tylko trzeba chcieć...

    :arrow: szyna komunikacji.
    Fajnie, że robisz coś "własnego", ale na takie odległości nic bez transmisji różnicowej nie powinno być przesyłane. Przesył bez transmisji różnicowej nadaje się do zamkniętych w jednym pudełeczku urządzeń (popatrz na zastosowanie SPI, UART, 1-wire).
    Ktoś pisał o adresowaniu "zworkami". Jest tutaj jeden mały problem, gdyż przy przestawieniu zworki będziemy musieli przeprogramować każdy układ, który się z tym z przestawionym adresem komunikuje (wątpię, żeby autor robił w tego typu sieci jakieś wykrywanie adresów modułów...). W takim wypadku urządzenia lepiej żeby miały stałe adresy, trudniej o przypadkowe przestawienie tych adresów.
    Słusznie ktoś tutaj zasugerował RS-485. Jednak jeśli boisz się jego limitów, są jeszcze inne. Proponuję stosowany w samochodach interfejs CAN. Mamy tutaj dużą pulę adresów, transmisję różnicową i bardzo, bardzo dużo zabezpieczeń przeciw błędom transmisji. Dodatkowo adres pakietu jest również jego priorytetem (w przypadku, gdy 2 urządzenia nadają w tym samym momencie "wygrywa" ten, który ma wyższy priorytet adresu). Dzięki zastosowaniu dużej puli adresów można (i powinno się, ze względu na priorytety!) adresować nie urządzenie docelowe, ale komendę (ściślej po źródle). Przykładowo czujnik podczerwieni zamiast rozszyfrowywać ramkę i nadawać ją do odpowiedniego urządzenia po adresie, wysyła w eter ramkę opatrzoną adresem TO_ODEBRAŁEM_Z_PODCZERWIENI (oczywiście zamieniamy to na odpowiedni adres), a urządzenia które czekają na instrukcje z podczerwieni widząc, że coś przyleciało opatrzone tym adresem, przyjmują pakiet i patrzą co tutaj przyszło. Tak samo np adresem będzie STEROWANIE_ROLET, a daną dokładny rozkaz do wykonania (otwórz, zamknij, ustaw 50% otwarcia, otwórz jedno tylko okno itp...). W zamian po wykonaniu sterownik rolet odeśle komunikat ROLETY_ZROBIONE, a jako daną poda obecny stan rolet. Może również zgłosić komunikat ROLETY_BŁĄD i podać w danej stan błędu. Pamiętać należy tylko, że komunikat o podanym adresie może wysyłać tylko jedno z urządzeń, aby nie nastąpił konflikt priorytetów (przy małej "ruchliwości" na szynie danych jest to praktycznie nieprawdopodobne, ale gdy wystąpi to zapcha skutecznie magistralę, gdyż oba urządzenia będą w tym samym czasie ponawiać nadawanie po konflikcie).

    Jeśli nie wiesz o co chodzi, wiele rozjaśni Ci się po dowiedzeniu się więcej o magistrali CAN. Jako wstęp do niej polecam artykuł zamieszczony tu: http://forum.atnel.pl/topic1183.html (właściwie to cały cykl. W następnych postach są kolejne części)
  • #25
    Atlantis86
    Level 19  
    Sam jakiś czas temu zacząłem myśleć o czymś podobnym. W miarę możliwości wolałbym jednak oprzeć się na przewodowej magistrali niż sieci bezprzewodowych TRX-ów.
    Wstępna koncepcja jest następująca:
    1) W ważniejszych urządzeniach (np. oświetlenie, wentylator na suficie) zamontowane dwustanowe przekaźniki sterowane z mikrosterownika. To samo w wybranych gniazdkach.
    2) Na ścianie panel z przyciskami i kontrolkami do sterowania całością.
    3) Do magistrali podpięty byłby także komputerek w rodzaju RPi, CubieBoard albo Beaglebone Black. Nie chodzi o pośredniczenie w komunikacji, ale o pełnienie funkcji bramki pomiędzy magistralą a domową siecią LAN (i być może także Internetem). Dzięki temu mógłbym włączać/wyłączać urządzenia z poziomu komputera, smartfona albo tabletu. Dodatkowo płytka mogłaby też pełnić funkcję radia Internetowego/odtwarzacza muzyki, tudzież mogłaby dźwiękowo powiadamiać o zdarzeniach.

    Wspomniany interfejs CAN byłby dobrym rozwiązaniem w takim projekcie? Czy korzystając z układy takiego jak MCP2515 mogę liczyć na to, że w miarę prosto uda się to oprogramować w C, korzystając z AVR-ów?
  • #26
    gbd.reg
    Level 21  
    Tak, magistrala CAN byłaby jak najbardziej odpowiednia. Koszt jej implementacji jest stosunkowo niewielki (niewiele większy od RS-485), ale możliwości już znaczne. Póki nie przekroczysz puli adresów (która jest dość znaczna), lub nie będziesz potrzebował jakieś większej prędkości przesyłu, magistrala CAN podoła :)
  • #27
    Atlantis86
    Level 19  
    Rozumiem, że prawidłowo poprowadzona magistrala powinna wyglądać jak stary Ethernet na koncentryku? To znaczy transceivery podłączone bezpośrednio do kabla (bez żadnych odgałęzień) a na końcach rezystory. Podobnie jak rozumiem powinna wyglądać sprawa w przypadku rs485.

    Tak odnośnie rs485, to generalnie nie sądzę, żeby limit urządzeń był problemem, jeśli mowa o automatyzacji jednego pokoju czy dwóch. :) Bardziej zastanawia mnie sprawa implementacji. Z tego co widzę można bez większego problemu kupić sprzętowe kontrolery CAN (jak wspomniany MCP2515) które zajmują się formowaniem ramki, kontrolą błędów itp. Natomiast jeśli chodzi o RS485, to widzę na Allegro sporo prostych układów w SO8, które zajmują się elektryczną warstwą sygnału, będąc czymś w rodzaju max232.

    Można dostać jakieś scalaki, które zajmowałyby się całością transmisji?
  • #28
    gbd.reg
    Level 21  
    Osobiście nie znam takowych scalaków do obsługi RS485, z prostej przyczyny ich nie produkują: obsługuje się toto jak RS232 (zwykłym UARTem).

    Tak, CAN projektuje się jak stare sieci na koncentryku, z tą różnicą że stosuje się 1 parę skrętki, a nie kabel koncentryczny :) Jako terminatory z tego co pamiętam stosowało się coś bardziej rozbudowanego, niż zwykły rezystor, ale to mało ważne na tym etapie. Pamiętaj, że przy zastosowaniu MCP2515 lub mikrokontrolera z wbudowanym kontrolerem CAN musisz nadal stosować MCP2551 jako fizyczne połączenie z magistralą CAN.