Własne moduły

Post Reply
Bartek
Posts: 326
Joined: 14 Jul 2011, 19:36
Location: Wrocław
Contact:

Własne moduły

Post by Bartek »

Cześć,
Długo rozmyślałem nad wyborem właściwego systemu i w tej chwili jednak największe szanse ma HAPCAN ;). Dodam jeszcze, że nie zajmuję się na codzień elektroniką ani programowaniem urządzeń, aczkolwiek ogarniam zarówno elektronikę jak i programowanie (praktykuję języki wyższego poziomu).

Stworzyłem wstępny prototyp automatyki domowej w oparciu o platformę Arduino, tanie (chińskie) moduły wykonawcze oraz czujniki. Kontynuowałbym prace ale pół roku z prowizorycznym światłem w domu w połączeniu z coraz bardziej niezadowoloną żoną przesądziło o postawieniu na coś co można zmontować i uruchomić w kilka dni ;).

Interesuje mnie kwestia tworzenia własnych modułów. Mam w planach kilka "urządzeń", których moduły uniwersalne nie zastąpią. Stąd proszę o odpowiedź na poniższe pytania.

1. Jest moduł uniwersalny, ale w programowaniu PICów nie mam doświadczenia. Generalnie preferuje język C++, w ostateczności C (asm wolałbym uniknąć). Tutaj chyba jest pierwszy problem, z darmowym środowiskiem do programowania w C(++). Jeśli jest inaczej, proszę o jakiś namiar.
2. Czy moduł uniwersalny można programować (wgrywać firmware) przez magistralę CAN z wykorzystaniem HapCan programatora?
3. Czy własny moduł można konfigurować do współpracy z innymi modułami przez HapCan programator?
4. Jestem też ciekaw jak mogło by wyglądać ewentualne połączenie modułu Arduino z magistralą HAPCAN. Czy da się podłączyć pod magistralę własne urządzenie poprzez np CAN-shield Arduino? Czy może trzeba by zmontować przejściówkę z modułu uniwersalnego na Arduino. Nie ukrywam, że Arduino jest mi łatwiej ogarnąć no i sam moduł ma w Internetach dużą rzeszę użytkowników, a co za tym idzie setki gotowych aplikacji.
5. Zakładając, że w taki czy inny sposób podłączę Arduino pod HAPCAN, czy będę w stanie wysyłać na magistralę własne komendy, czy protokół jest jakoś ograniczony do zakresu z góry zdefiniowanego? Czy urządzenia uniwersalne będą w stanie reagować na te moje komendy?

HAPCAN stanowi świetną bazę do systemu, ale jednak jak chce się zautomatyzować jakiś fragment mieszkania w bardziej specyficzy sposób to zastosowanie własnej logiki w jednym module daje dużo większe możliwości. Połączenie z Arduino dało by wręcz niewyobrażalne możliwości połączone z łatwością implementacji dowolnego czujnika itp.

pzdr;
bartek;
Jacek
Posts: 561
Joined: 17 Feb 2007, 18:00

Re: Własne moduły

Post by Jacek »

Cześć Bartku
1. Jest moduł uniwersalny, ale w programowaniu PICów nie mam doświadczenia. Generalnie preferuje język C++, w ostateczności C (asm wolałbym uniknąć). Tutaj chyba jest pierwszy problem, z darmowym środowiskiem do programowania w C(++). Jeśli jest inaczej, proszę o jakiś namiar.
Microchip udostępnia bezplatny kompilator C dostęny tutaj (http://www.microchip.com/pagehandler/en ... /home.html). Jest to kompilator dla środowiska MPLAB X IDE (http://www.microchip.com/pagehandler/en ... /home.html).
2. Czy moduł uniwersalny można programować (wgrywać firmware) przez magistralę CAN z wykorzystaniem HapCan programatora?
Tak, tak samo jak w każdym innym module.
3. Czy własny moduł można konfigurować do współpracy z innymi modułami przez HapCan programator?
HAPCAN Programator umożliwi wyszukanie modułów, zmianę ich firmware, ID i opisu. Natomiast konfiguracja nieznanych (napisanych przez użytkownika) firmware może odbywać się tylko poprzez modyfikację pamięci flash i eeprom modułów (opcja dostępna po kliknięciu prawym na moduł i wybraniu "Processor memory").
4. Jestem też ciekaw jak mogło by wyglądać ewentualne połączenie modułu Arduino z magistralą HAPCAN. Czy da się podłączyć pod magistralę własne urządzenie poprzez np CAN-shield Arduino? Czy może trzeba by zmontować przejściówkę z modułu uniwersalnego na Arduino. Nie ukrywam, że Arduino jest mi łatwiej ogarnąć no i sam moduł ma w Internetach dużą rzeszę użytkowników, a co za tym idzie setki gotowych aplikacji.
Oba sposoby są możliwe, ale bezpośredni byłby chyba lepszy, czyli Arduino CAN-shield.
5. Zakładając, że w taki czy inny sposób podłączę Arduino pod HAPCAN, czy będę w stanie wysyłać na magistralę własne komendy, czy protokół jest jakoś ograniczony do zakresu z góry zdefiniowanego? Czy urządzenia uniwersalne będą w stanie reagować na te moje komendy?
Będziesz mógł wysłać dowolne komendy. Obecnie używane są zebrane w tym dokumencie (http://hapcan.com/devices_pl/universal/ ... -4b_pl.pdf). W tabeli 1 znajdziesz róznicę między ramką CAN (jaką wysyłałbyś z Arduino) a ramką HAPCAN używaną w całej dokumentacji systemu.

Wynika z tego, że możesz wykorzystać Arduino jako serce systemu integrujące własną logikę działania. Jak już uda Ci się coś uruchomić, to daj proszę tu znać.
Regards
Jacek
Bartek
Posts: 326
Joined: 14 Jul 2011, 19:36
Location: Wrocław
Contact:

Re: Własne moduły

Post by Bartek »

Witaj Jacku. Na moje szczęście wszystkie odpowiedzi udzieliłeś po mojej myśli ;). Dzięki. Zabieram się za studiowanie materiałów.
Bartek
Posts: 326
Joined: 14 Jul 2011, 19:36
Location: Wrocław
Contact:

Re: Własne moduły

Post by Bartek »

Odgrzebię mój stary wątek, bo tak powoli przymierzam się za rozbudowę instalacji i pod czapką mam również chęć zbudowania własnych modułów, które by z Hapcanem gadały.

Połaziłem trochę w okolicach MPLABa, kompilatorów, kodów źródłowych modułu Hapcana i stwierdzam, że to rozwiązanie ma jak dla mnie obecnie zbyt duży próg wejścia, żeby zrobić jakiś hello world moduł. Dużo teorii trzeba by przerobić aby do tego usiąść, na co wiem, że nie znajdę czasu. Tym bardziej, że PICów nigdy nie programowałem.

Programowałem natomiast Arduino i nawet komunikację przez CAN pomiędzy nimi (dla testów). Postanowiłem, że spróbuję ugryźć temat od tej strony.
Zakupiłem kiedyś kilka takich modułów:
http://arduinosolutions.com/pl/p/Modul- ... JA1050/812
i pytanie, czy to w ogóle ma szansę ze sobą zadziałać? Czy może jest coś, na co powinienem zwrócić uwagę przy podłączaniu?

Zanim coś wysadzę i pogrążę dom w ciemnościach :) chciałem zapytać też o samo podłączenie takiego modułu. Zakładając, że Arduino i sam moduł CAN będą zasilane (przy testach) z USB komputera to jak należy podpiąć to do HAPCANa? Czy ma być podpięty tylko CAN H i CAN L czy GND również?
Czy połączenie w takim wypadku mas z zasilacza HAPCANa z masą komputera przez USB nie spowoduje problemów? Niestety w mojej karierze elektronicznej nie montowałem nigdy układów zasilanych z wielu źródeł stąd mam pewne wątpliwości ;).
Jacek
Posts: 561
Joined: 17 Feb 2007, 18:00

Re: Własne moduły

Post by Jacek »

Będzie to działać. Z magistralą budynkową muszą być połączone przewody CAN H, CAN L i GND. Połączenie GND istniejącej magistrali w budynku z GND portu USB nie jest najlepszym pomysłem, bo możesz uszkodzić port USB lub nawet płytę komputera. Zastosowałbym tu izolację galwaniczną. Może coś takiego http://microsat.com.pl/product_info.php ... anguage=pl
Chyba, że na początek zdecydujesz się tylko na testy na biurku, bez długich przewodów magistrali CAN...
Regards
Jacek
Bartek
Posts: 326
Joined: 14 Jul 2011, 19:36
Location: Wrocław
Contact:

Re: Własne moduły

Post by Bartek »

Instalację mam już położona i działającą, obok biurka przechodzi mi magistrala, do której chciałbym podłączyć się z modułem CAN i Arduino i na początek porobić trochę eksperymentów :). Problem w tym, że Arduino jest podpięte przez USB do PC. Rozumiem, że w tym wypadku USB komputera musi być galwanicznie odizolowane i to nie tylko na samych liniach I/O ale i zasilanie musi być izolowane za pomocą przetwornicy DC/DC. Ich ceny wahają się od 150-250 zł. Same izolatory galwaniczne I/O można kupić taniej, ale w niczym one nie pomogą.
Wynalazłem coś takiego jeszcze, obsługuje chyba pełne 500mA z USB. http://www.gotronik.pl/usb4620-izolator ... -2802.html

Rozumiem też, że w przypadku zbudowania jakiegoś modułu, który ma własne zasilanie, np. z powodu poboru prądu wykraczającego poza możliwości hapcanowskiej skrętki, należy skorzystać z zasilacza z izolacją galwaniczną lub elementy wykonawcze odseparować od części mikrokontrolerowej za pomocą np. transoptorów. Czy gdzieś się mylę?
Jacek
Posts: 561
Joined: 17 Feb 2007, 18:00

Re: Własne moduły

Post by Jacek »

Izolator jest potrzebny tylko po to, żeby zabezpieczyć komputer w trakcie Twoich eksperymentów (programowania Arduino podłączonego do magistrali).
Wydaje mi się, że nie potrzebujesz izolowanej przetwornicy DC/DC, bo całe Arduino możesz zasilać z magistrali.
Jeśli Arduino pobierałoby większy prąd niż dopuszczalny magistrali (1500mA) to możesz użyć lokalnego zasilacza. Żadna izolacja nie jest tu potrzebna. Podłączasz ten osobny zasilacz do Adruino i łączysz jego GND z GND magistrali.
Regards
Jacek
Bartek
Posts: 326
Joined: 14 Jul 2011, 19:36
Location: Wrocław
Contact:

Re: Własne moduły

Post by Bartek »

A nie powstaną wtedy jakieś pętle masy i prądy wynikające np z różnicy potencjałów między masami dwóch różnych zasilaczy? Spotkałem się już z zasilaczami, w których na metalowej obudowie świeciła neonówka przy (nie) odpowiednim podłączeniu wtyczki do gniazdka.

Arduino z magistrali pójdzie, ale programować je trzeba przez USB i tam nawet jeśli będzie zewnętrzne zasilanie dołączone to masa z USB nadal będzie połączona. Wertując wczoraj Internet napotkałem informację, że galwaniczna separacja jest konieczna, jeśli łączy się ze sobą układy połączone sieciowo i zasilane z różnych zasilaczy.
zetbees
Posts: 50
Joined: 29 Sep 2015, 18:26
Contact:

Re: Własne moduły

Post by zetbees »

A nie myślał ktoś np. o czymś takim http://pigeoncomputers.com/pl/products/pigeon-rb100/ jako bramy do różnych interfejsów i komputera "nadzorcy" nad Hapcanem - np. obsługa makr - czego mi w moim systemie brakuje.
"Tylko" oprogramować i gotowe ;)
Bartek
Posts: 326
Joined: 14 Jul 2011, 19:36
Location: Wrocław
Contact:

Re: Własne moduły

Post by Bartek »

Brama bramą ;), ale ja potrzebuję rozszerzyć urządzenia podpięte do Hapcana. Nie chcę mieszać różnych interfejsów. Celowo wybrałem HC, żeby nie wytaczać ciężkich dział jakimi są wszelakie moduły obsługujące http i śmigające przez WIFI, tylko po to, aby zapalić żarówkę ;).
IoT jest teraz modny i sporo osób stawia na RPI czy ESP ale jakoś nie widzi mi się 20 różnych emiterów sygnału WIFI w pomieszczeniu, bo to zaśmieca eter, co źle wpływa na łączność urządzeń, jest bardziej podatne na włamania, do tego 200x bardziej prądożerne niż HC a i niektórzy twierdzą, że na samopoczucie też wpływa niekorzystnie ;).
Oczywiście mógłbym podpiąć Arduino pod RPI i spiąć z Hapcanem przez Ethernet, ale na razie się uparłem, że cała komunikacja niskopoziomowa będzie po CANie, bo preferuję oszczędne rozwiązania ;).

Jako zarządcy można zastosować jakikolwiek komputer, chociażby i goły RPI. Ja planuję zrobić coś więcej niż tylko makra a i Linux mi trochę nie po drodze, więc poszukuję jakiegoś rozwiązania na Windowsie. Win 10 IoT na RPI nie spełnia niektórych moich założeń ;).
zetbees
Posts: 50
Joined: 29 Sep 2015, 18:26
Contact:

Re: Własne moduły

Post by zetbees »

Tak się składa, że naszej cele w niektórych sprawach są zgodne - chcemy poszerzyć możliwości Hapcana. Dążymy do tego jednak inną drogą. Na pewno można wszystko zrobić na Arduino i magistarli CAN (albo prawie wszystko). Niestety w moim domu mam kilka rzeczy które nie są wyposażone w CAN za to mają RS-485. Z kolei centrala alarmowa komunikuje się tylko po Ethernecie. Zaś na chwilę obecną tylko w przyciskach ściennych można zastosować czujniki temperatury - a ponieważ ekonomia całego systemu też ma znaczenie a i Hapcan wykorzystuje interface 1-wire - to czemu nie wykorzystać go do dodatkowych czujników?

I tak dodam osobiście od siebie:
żeby nie wytaczać ciężkich dział jakimi są wszelakie moduły obsługujące http i śmigające przez WIFI, tylko po to, aby zapalić żarówkę
żarówki u mnie zapala Hapcan po CAN-ie
IoT jest teraz modny i sporo osób stawia na RPI czy ESP ale jakoś nie widzi mi się 20 różnych emiterów sygnału WIFI w pomieszczeniu, bo to zaśmieca eter, co źle wpływa na łączność urządzeń,
Nie jestem zwolennikiem urządzeń bezprzewodowych w automatyce domowej i wiele setek metrów kabli zostało po domu rozprowadzonych z tego powodu, zresztą "Gołąbek" nawet nie obsługuje WiFi.

P.S.
Żeby nie było wątpliwości nie mam nic wspólnego z tym urządzeniem i firmą produkującą. Przeczytałem tylko artykuł na MalinowePi
Bartek
Posts: 326
Joined: 14 Jul 2011, 19:36
Location: Wrocław
Contact:

Re: Własne moduły

Post by Bartek »

Nie pisałem bezpośrednio do Ciebie o tych modułach WIFI, raczej to takie moje luźne przemyślenia, bo ostatnie kilka godzin spędziłem na goglowaniu IoTów ;). Stwierdzam, że ludzie się trochę zagalopowali, wykorzystując np. RPI 3, który ma 64bit, 4 rdzeniowy procesor o częstotliwości taktowania 1,2 GHz do włączania oświetlenia w domu. Infrastruktura automatyki powinna być, moim zdaniem, relatywnie prosta, bo większa prostota oznacza mniejszą awaryjność. A teraz zrobią sobie światła na WIFI otwierając tym samym furtkę na nowy sposób trolowania z wykorzystaniem zakłócaczy WIFI ;).

Nic nie mam przeciwko czujnikom na I2C czy 1-wire, ale raczej podpinałbym je pod moduły, które dalej przesyłają dane po CANie. Inna sprawa, gdybym posiadał jakieś większe moduły czy urządzenia, które posiadają inne interfejsy to pewnie i jakiś agregator byłby konieczny. Uważam jednak, że system automatyki powinien działać w podstawowej formie jak padnie taki agregator - nie może to być jedyny punkt, który łączy 10 różnych technologii, które ze sobą jakoś współpracują.

Prędzej czy później zapewne zajdzie potrzeba podłączenia czegoś poza CANem ;), ale obecnie, w tym wątku chciałbym się skupić na budowaniu kolejnych cegiełek współpracujących bezpośrednio z Hapcanem.

Co do gołąbka, to dosyć świeży projekt z tego co widzę. Jako taki agregator "z makramia" mógłby się nadać.
Jacek
Posts: 561
Joined: 17 Feb 2007, 18:00

Re: Własne moduły

Post by Jacek »

PelzaK wrote:A nie powstaną wtedy jakieś pętle masy i prądy wynikające np z różnicy potencjałów między masami dwóch różnych zasilaczy? ...
Spójrz proszę na rysunki, jak ja to widzę.

Na pierwszym rysunku Arduino połączone jest z magistralą trzema przewodami (bez przewodu zasilania +24V) Arduino zasilane jest z izolowanego interfejsu USB (jego przetwornicy DC/DC), z którego można pobrać do 500mA. Jest to typowy układ podczas prac testowych i programowania.
Rysunek 1
Rysunek 1
Jeśli wymagany będzie dodatkowy zasilacz, to docelowo Arduino może pracować jak a rysunku 2 lub bez tego dodatkowego zasilacza podłączone bezpośrednio do +24V magistrali (oczywiście ze stabilizatorem 5V)
Rysunek 2
Rysunek 2
Jeśli podczas testów potrzebowałbyś większego poboru prądu niż może dać przetwornica DC/DC izolowanego interfejsu, to należałoby podłączyć dodatkowy zasilacz i odłączyć przetwornicę DC/DC
Rysunek 3
Rysunek 3
Najważniejsze jest tu izolowanie komputera od reszty systemu. Oczywiście można by izolować każdy fragment magistrali z własnym zasilaczem, ale nie jest to konieczne. W tym wypadku połączenie mas zasilaczy konieczne jest ze względu na jednakowy potencjał odniesienia dla transmisji can.
Regards
Jacek
Bartek
Posts: 326
Joined: 14 Jul 2011, 19:36
Location: Wrocław
Contact:

Re: Własne moduły

Post by Bartek »

Ja rozumiem to tak samo, jeśli chodzi o tę część za zasilaczem. Zastanawia mnie jednak to co się dzieje przed zasilaczem. Czyli załóżmy, że mam dwa zasilacze, jeden od magistrali Hapcana, drugi oddalony i podłączony do "innego gniazdka". Podłączam masę obu zasilaczy, jednak czy różne potencjały tych mas nie spowodują jakichś przepływów prądu przez przewód masowy?
Dla mnie sprawa jest prosta jak łączę urządzenia zasilane bateriami. Oba układy są wtedy połączone tylko jednym przewodem masowym i nie ma mowy o żadnej pętli mas. Ale w przypadku zasilaczy, oba te zasilacze są ze sobą połączone również przez instalację elektryczną. Tutaj mam obawy, czy można to tak bezkarnie podłączać, czy jednak musi być jakiś zasilacz izolowany galwanicznie.
Jacek
Posts: 561
Joined: 17 Feb 2007, 18:00

Re: Własne moduły

Post by Jacek »

PelzaK wrote:Ale w przypadku zasilaczy, oba te zasilacze są ze sobą połączone również przez instalację elektryczną. Tutaj mam obawy, czy można to tak bezkarnie podłączać, czy jednak musi być jakiś zasilacz izolowany galwanicznie.
Oczywiście, zasilacze te bezwzględnie muszą być izolowane od sieci energetycznej. Podejrzewam, że ciężko by było teraz kupić zasilacz nieizolowany galwanicznie.
Te modele są bezpieczne:
http://www.tme.eu/pl/details/dr-15-24/z ... mean-well/
http://www.tme.eu/pl/details/dr-30-24/z ... mean-well/

Mówisz też o pętli masy, ale nie ma tu takiej. Ważne jest tylko, by masy obu zasilaczy były na jednym potencjale - dlatego właśnie należy je połączyć.
Dla ścisłości... mówiąc o przewodzie masowym mam na myśli biegun ujemny zasilacza DC. Nie ma to nic wspólnego z przewodem ochronnym PE tego zasilacza (jeśli taki istnieje). Przewód ujemny nie może być podłączony do przewodu ochronnego PE.
Regards
Jacek
Post Reply