Elektroda.pl
Elektroda.pl
X
Szkolenia elektronika Udemy
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Mini system sterowania pokojem

witko1 20 Cze 2013 18:08 30147 27
  • 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

    Link


    Fajne!
  • Szkolenia elektronika Udemy
  • #2 20 Cze 2013 18:14
    dammirus
    Poziom 14  

    Chętnie zobaczyłbym filmik-prezentację możliwości Twojego systemu ;)

  • #3 20 Cze 2013 20:54
    ahmed10
    Poziom 11  

    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ół :)

  • #4 20 Cze 2013 21:00
    maniek_88
    Poziom 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ł)

  • #5 20 Cze 2013 21:53
    69696
    Użytkownik usunął konto  
  • #6 20 Cze 2013 22:07
    witko1
    Poziom 9  

    dammirus napisał:
    Chętnie zobaczyłbym filmik-prezentację możliwości Twojego systemu ;)


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

    ahmed10 napisał:
    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 napisał:
    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 napisał:
    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 napisał:
    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ł.

  • Szkolenia elektronika Udemy
  • #7 21 Cze 2013 16:20
    Artyliusz
    Poziom 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 21 Cze 2013 16:39
    witko1
    Poziom 9  

    maxi128 napisał:
    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 napisał:
    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 napisał:
    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 22 Cze 2013 09:48
    djkomprez
    Poziom 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 22 Cze 2013 10:37
    witko1
    Poziom 9  

    djkomprez napisał:
    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 22 Cze 2013 14:50
    marcinosko
    Poziom 13  

    witko1 napisał:

    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 22 Cze 2013 17:24
    bulup
    Poziom 16  

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

  • #14 23 Cze 2013 11:14
    witko1
    Poziom 9  

    marcinosko napisał:
    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 napisał:
    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 napisał:
    No właśnie film zobaczymy jak działa, to ocenimy.


    Filmik właśnie dodałem.

  • #15 23 Cze 2013 11:40
    Artyliusz
    Poziom 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 23 Cze 2013 20:29
    wladziu22
    Poziom 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 23 Cze 2013 22:35
    kedzi1
    Poziom 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 23 Cze 2013 23:21
    lukashb
    Poziom 39  

    wladziu22 napisał:

    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 24 Cze 2013 21:00
    Atlantis86
    Poziom 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 24 Cze 2013 23:36
    witko1
    Poziom 9  

    Artyliusz napisał:
    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 napisał:
    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 napisał:
    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 napisał:
    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 napisał:
    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 25 Cze 2013 07:58
    Atlantis86
    Poziom 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 25 Cze 2013 15:02
    dominos96
    Poziom 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 25 Cze 2013 23:09
    Elektro-man
    Poziom 11  

    Atlantis86 napisał:
    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 27 Cze 2013 00:30
    gbd.reg
    Poziom 20  

    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 30 Cze 2013 17:23
    Atlantis86
    Poziom 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 30 Cze 2013 20:57
    gbd.reg
    Poziom 20  

    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 02 Lip 2013 08:40
    Atlantis86
    Poziom 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 02 Lip 2013 20:31
    gbd.reg
    Poziom 20  

    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.