Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 21 gru 2024, o 14:37


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 12 ] 
Autor Wiadomość
PostNapisane: 18 wrz 2015, o 16:41 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 maja 2014
Posty: 1089
Pomógł: 34

Hey ,

Jakis czas temu musialem wziac sie do roboty i zaczac zmieniac komponenty sterujace w moim mieszkaniu. Gdyby ktos pytal dlaczego :D ano dlatego ze np moja plytka sterujaca oswietleniem wygladala praktycznie jak plyta glowna do komputera sterujacego :D

Po kilku dniach/godzinach ostrego myslenia powstala oto ta plyteczka :D Jest ona czescia ukladu sterujacego 230V na chwile obecna.

ObrazekObrazek


Wiec dla projektu poczatkowo powstalo kilka zalozen
  • Przynajmniej 10 portow do sterowania
  • Komunikacja po Wifi
  • Jak najprostsza mozliwosc sterowania portami
  • Aplikacja do sterowania z poziomu telefonu ( IOS & Android )
  • Wyswietlac informacje o stanie pinow dla poszczegolnych portow
  • Projektowanie plytki PCB pod termotransfer (bo to tak jak na razie wykonuje swoje plytki )

Majac powyzsza liste na uwadze powstalo kilka pomyslow oraz kilka schematow. Jako glowny koponent zostal uzyty rejestr przesuwny 75hc595 a dodatkowo wykorzystuje 2 porty bezposrednio z procesora.
Uklad nie posiada kwarcu - napedzam go wewnetrznie na 8MhZ . No coz ta chec skrocenia listy komponentow zaowocowala tym ze aby zminimalizowac bledy transmisji UART predkosc zostala ustawiona na 38400

Wiec tak wyglada schemat calego ukladu.

Obrazek

Jako procesor wybralem sobie Atmega88P bo mam je pod reka oraz spelnia wymagania mojego projektu (sterowanie rejestrem przesuwnym oraz dwa dodatkowe wolne porty daja w sumie 10 portow IO :) ) . Samo zaprogramowanie kodu zrodlowego nie bylo takim problemem. Majac za sobie swiezo kilka rozdzialow z GB poszlo dosc gladko.

No i tutaj pojawila sie moja pierwsza zagwozdka ... pomyslalem sobie ... a zrobie sobie dla odmiany komunikacje binarna i zobaczymy jak to bedzie wygladac :)
Zalozenie bylo takie , ze wysylam znak startu (powiedzmy 0x01) a nastepnie dwa bajty informacji czyli jaki ma byc stan na rejestrze przesuwnym oraz na 2 pinach procesora
No o ile zestawienie tego w calosc (jak ramka poczatkowa etc ) nie bylo jakims problemem to dalsza obsluga nie byla droga sukcesu plynaca.
Kiedy tylko zaczalem sie bawic po stronie C# czy B4A to nadzialem sie na kilka problemow. Jako , ze jednym z zalozenien mialo byc pokazywanie na biezaco stan portow mozecie sobie wyobrazic ze odebrany bajt trzeba przeanalizowac pod katem stanu dla kazdego portu (oczywiscie moze ktos mialby tu lepszy pomysl : ) )
Wiedzac jak wyglada prostota komunikacja ASCII zmienilem zrodla programu tak aby uproscic sobie zycie :D

Majac na uwadze powyzsze zmienilem komunikacje na mega prosto oparta o :
  • ?<CR> : wyslana z klienta spowoduje odeslanie wartosci portow
  • 255,255; : wyslana z klienta spowoduje ustawienie odpowiednich wartosci portu oraz odeslania '#' jako formy potwierdzenia
  • # : odsylany jako forma ACK

No i w sumie to konczy opowiesci z zakresu programowania procesora oraz zabaw z UARTEM. Do kodu zrodlowego dolaczonego na dole mozecie znalezc event nastepujacy co 10ms . Nie korzystalem z niego a chcialem sobie tylko zobaczyc czy jeszcze nie zapomnialem jak kodowac pewne zdarzenia :D


Wiec po tych krotkich przebojach zajalem sie programowaniem aplikacji na telefon. Napisalem aplikacje po dlugim czasie nie pisania niczego w B4A / B4I wiec jak sami zauwazycie nazwa projektu to latarka ;) ktora latarka nigdy sie nie stala.

Na chwile obecna nie bawilem sie w skalowanie. Wiec aplikacja z domyslu bedzie dzialac na Samsung S4 (ze wzgledu ze IOS to praca wre :D jak dobrze pojdze to opublikuje innym razem ). Oczywiscie wiem i zdaje sobie sprawe ze mozna napisac ten kod o wiele lepiej :) natomiast jako wstep jestem z niego zadowolony. Chociaz jak ktos bedzie mial jakies krytyczne komentarze to chetnie przeczytam :D

Aplikacja prezentuje sie nastepujaco :

Obrazek

Jak sami mozecie zobaczyc wprowadzamy IP naszego urzadzenia a nastepnie naciskamy polacz. Jesli uda sie nawiazac polaczenie to mozemy zaczac sie bawic. Jak dobrze sie domysliliscie kazdy z guzikow to odpowiednio bit w naszych bajtach ktore wysylamy. Wiec cala grupa pierwsza to 8 bitow dla naszego rejestru przesuwnego. Za kazdym razem kiedy klikamy jakis przelacznik odpowiednio zmienia sie nam wartosci. Jesli bedziemy chcieli sobie cos juz ustawic to naciskamy "ustaw". Aby sprawdzic jaki jest obecny stan na urzadzeniu wybieramy "refresh"

Obrazek

Oczywiscie po kazdej operacji zmiany stanu aplikacja sama poprosi o update tak zebyscie mieli up to date nformacje. W tym miejscu zastanawiam sie nad wprowadzeniem timera i odczytywaniu stanu automatycznie w tle co jakis czas.

Nastepna fajna sprawa sa tzw "preset" czyli szybki wybor jakis okreslonych "kompozycji". Najpierw sobie ustawiamy interesujace nas porty. A nastepnie jedyne co robimy to przyciskamy odpowiedni klawisz preset dluzej dzieki czemu zapisywane sa ustawienia nas interesujace (czyli wartosci portow )

No i w zasadzie to wszystko razem tworzy naprawde swietna calosc :) fajnie jest moc zbudowac cos od podstaw :D Cala aplikacja juz przetestowana na zywym organizmei. Tak gdyby ktos pytal to Wifi dziala w trybie TCP server. Ktos moze mi powiedziec ze UDP jest moze i lepsze :) ale wg mnie na potrzeby tego projektu to spelnia lepiej zadanie.

Pozdrawiam
Raf




Kod zrodlowy
Ze wzgledow na jakich oparte jest to forum kod zrodlowy nie zawiera modulu UART ktory w duzej mierze pochodzi z GB. Wiec jesli ktos go nie posiada niestety musi sobie stworzyc obsluge zdarzenia oparta o odebranie CR czyli ASCII o wartosci 13


main.c

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Configs.h

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Timers.c
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Timers.h
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


h_spi.c

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


h_spi.h

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Załączniki:

Aby zobaczyć załączniki musisz się zalogować. Tylko zalogowani użytkownicy mogą oglądać i pobierać załączniki.

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 wrz 2015, o 19:43 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27319
Lokalizacja: Szczecin
Pomógł: 1041

No jak widać B4A + WIFI to spore możliwości szczególnie jak się dołoży do tego szczyptę elektroniki ;) .... fajny projekcik

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 wrz 2015, o 00:51 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 14 lut 2014
Posty: 293
Lokalizacja: Jaskółowo k. Warszawy
Pomógł: 9

Ukladzik bardzo mi się podoba. Pewnie sobie użyczę projektu płytki.
Jak dla mnie brakuje tylko jednego bez czego nie umiem już żyć.
ATNEL WiFi232t= bezprzewodowy programator.
No chyba a że masz to zaszyte w bibliotece od uarta.

Dzięki za podzielenie się projektem.



Wysłane z mojego SM-N910F przy użyciu Tapatalka

_________________
POZDROWIONKA



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 wrz 2015, o 08:28 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 maja 2014
Posty: 1089
Pomógł: 34

Hey :) ciesze się ze projekcie się podoba :) bootloadera nie dokładalem na razie bo musze przemyśleć jak rozwiązać mieszane moduły w domu (UDP i TCP ) :)



Sent from my GT-I9506 using Tapatalk

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 wrz 2015, o 13:23 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8589
Pomógł: 337

RafPe kawał dobrej roboty oby więcej takich i większych projektów :)

Jak widać nie wiele potrzeba trochę Basica , trochę elektroniki i szczypta magi ...:)

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 wrz 2015, o 14:58 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 maja 2014
Posty: 1089
Pomógł: 34

@SunRiver - Dzieki bardzo :) Wiecej projektow mozna powiedziec ze czeka w kolejce na publikacje :) jestem wlasnie w trakcie albo ozywiania swojej wytrawiarki albo przerzucenia sie na foto :) Wiec czas pokaze :)

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 wrz 2015, o 23:00 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 14 lut 2014
Posty: 293
Lokalizacja: Jaskółowo k. Warszawy
Pomógł: 9

RafPe napisał(a):
Hey :) ciesze się ze projekcie się podoba :) bootloadera nie dokładalem na razie bo musze przemyśleć jak rozwiązać mieszane moduły w domu (UDP i TCP ) :)
Sent from my GT-I9506 using Tapatalk

Może je przełączać co jakiś czas aby wymieniały się danymi.

topic12110.html

Tutaj masz pokazane jak ja przełączam moduł na UDP aby wgrać soft.

_________________
POZDROWIONKA



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 wrz 2015, o 11:31 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 maja 2014
Posty: 1089
Pomógł: 34

Hey , Ja wlasnie musze pomyslec o czyms co pomoze mi w automayzacji domu. Rozwiazanie masz naprawde fajnie zrobione i pzyznaje ze moze byc klockiem do mojej ukladanki :) jednak ja bede chyba chcial zrobic cos ze identyfikujesz tryb modulu ( urzadzenie podlaczone do modulu rozpoznaje to przy starcie ) i w zaleznosci od tego wgrywasz oprogramowanie TCP albo UDP bez koniecznosci zmiany w jakim trybie dziala modul.

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 wrz 2015, o 21:48 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 wrz 2014
Posty: 1530
Lokalizacja: Warszawa
Pomógł: 55

Bardzo fajny projekt !!
Zakładam, że od portów wyjściowych lecisz skrętką, albo jakimś kabelkiem do przekaźników? Jeśli tak, to dołożyłbym do każdego portu masę i Vcc, miałbyś z głowy zasilanie gdzieś tam w "terenie" i wygodniej byłoby te kabelki podłączać.
Wyprowadziłbym też na brzeg płytki nieużywane porty ADC. Też przy każdym masa analogowa i Vcc. Można by podłączyć jakieś czujniki, fototranzystor ...
Niestety pewnie płytka by się powiększyła :(

_________________
--... ...-- - --- -- . -.-



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 wrz 2015, o 22:29 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 maja 2014
Posty: 1089
Pomógł: 34

Płytka do sterowania przekaznikami to oddzielna PCB i łącze się z nią używając 10pin taśmy IDC ( jak do programatora )

Myślę że w następnej edycji tej płytki tak zrobię - wyjdę z portami na zewnątrz choć też nie chce szaleć z robieniem z tego zestawu startowego :)




Sent from my GT-I9506 using Tapatalk

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 wrz 2015, o 23:36 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 wrz 2014
Posty: 1530
Lokalizacja: Warszawa
Pomógł: 55

A to rozumiem - bardzo fajnie pomyślane :)
No tak - umiar jest przydatny :)

_________________
--... ...-- - --- -- . -.-



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 wrz 2015, o 06:42 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 maja 2014
Posty: 1089
Pomógł: 34

No I nastepna plytka bedzie z nowsza wersja triakow :)

No I na pewno do plytki wifi trzeba dodac diode LED kiedy jest ready/link - bo tego nie zrobilem I cierpie teraz :)


Sent from my iPhone using Tapatalk

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 12 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 4 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO