Jacob989 nám odoslal(a) nasledujúci článok: V dnešnom článku by som vám chcel predstaviť niečo z domácej automatizácie. Určite poznáte rôzne ethernetové moduly (Menujem aspoň Digi Connect ME 9210, XTNANO, Gigabit a pod.) s ktorými sa čoraz viackrát stretávame v tzv. Inteligentných domácnostiach. Takéto domácnosti sú vybavené prípojkou do siete internetu a mnoho výrobcov sa špecializuje na využívanie tohto pripojenia pre reguláciu procesov takéhoto domu. Cez internet už dnes môžeme ovládať temer čokoľvek, od elektrických spotrebičov v domácnosti, cez reguláciu vykurovania, zapínania podlahového kúrenia, otvárania okien a ventilačiek až po zabezpečovanie a monitorovacie systémy.
Takéto modulárne systémy nie sú však zrovna lacnou záležitosťou. ich ceny sa pohybujú rádovo v stovkách Euro. Rozhodol som sa preto kedysi dávno pre stavbu takéhoto zariadenia. Nakoľko samotné prevodníky ETHERNET/RS232 tak isto neoplývajú zrovna priaznivými cenami, vynechal som tento kúsok a rozhodol som sa celé zariadenie napojiť na domáce PC za pomoci portu USB.
Modul disponuje:
8 digitálnych vstupov (Umax=5V)
8 digitálnych výstupov (Imax=10mA)
8 analógových vstupov 0-5V (rozlíšenie 10 bit.)
Napájanie zo zbernice USB
Srdcom zapojenia je mikroprocesor firmy MICROCHIP, konkrétne PIC 18F4550. Jedná sa o mikroprocesor, ktorý vo svojej vnútornej HW štruktúre obsahuje okrem nanoWatt technológie a iných periférií i full-speed (12Mbit/s) USB rozhranie. Dookola procesora je minimum prvkov, všetko zabezpečuje samotný procesor.
Popis zapojenia:
Celý modul komunikuje s PC za pomoci zbernice USB z ktorej je tak isto modul napájaný. Kryštál Q1 sa nám stará o taktovanie procesora. Kondenzátory C1,C2 a rezistor R3 zabezpečujú záťaž kryštálu pre jeho spoľahlivé rozkmitanie sa.
Rezistor R1 spolu s tlačítkom S1 tvoria resetovací obvod procesora. Za jeho pomoci môžeme kedykoľvek prerušiť komunikáciu a znovuinicializovať modul bez nutnosti odpojenia USB kábla. Treba však predtým ako sa tak stane pozastaviť komunikáciu modulu s PC tlačítkom STOP v programe, inak dôjde ku chybe komunikácie v programe a tento sa následne bude v pravidelných intervaloch snažiť nadviazať komunikáciu. Ak sa mu to nepodari, zakaždým vyhodí ERROR okno, čo je dosť nepríjemná záležitosť. Kondenzátor C4 slúži ako filtrácia vnútorného USB rozhrania. Kondenzátor C3 naopak pre odfiltrovanie zákmitov šíriacich sa po zbernici USB. Rezistorové siete RN1 a RN2 slúžia na trvalé zabezpečenie log.0 alebo log.1 pre digitálne a anológové vstupy. Cez konektor X1 sa modul pripája ku zbernici USB za pomoci konektora typu "B" (Používa sa pre slave zariadenia).
JP1 - 8 diskrétnych výstupov
JP2 - 8 diskrétnych vstupov
JP3 - 8 analógových vstupov
Software:
Program pre PC bol napísaný vo vývojovom prostredí DELPHI 7. Po spustení programu "PIC 18F4550 board.exe" je potrebné nastaviť parametre komunikácie za pomoci tlačítka NASTAVENIA. Vyberieme vhodnú nami zvolenú rýchlosť (odporúčam 9600 baudov), program však môžeme nastaviť aj na vyššiu rýchlosť, modul si automaticky vyhľadá rýchlosť na ktorej sa komunikuje a zaznamená si ju. Ďalej vyberiem príslušný komunikačný port a tu by som sa pozastavil.
Celá komunikácia prebieha vďaka freeware ovládačom od firmy microchip, ktoré som si upravil ku vlastným potrebám.
Po pripojení zariadenia ku PC nás poprvý krát vyzve sprievodca novým hardware ku nainštalovaniu ovládačov pre modul. Ovládače nájdete v zložke "Driver" v priloženom archíve na konci článku. Po nainštalovaní by sa vám mal modul prihlásiť ako "USB home Automation" pod zvoleným portom (odporúčam vyberať port 8 a vyššie).
Celé to vypadá asi takto:
Po nainštalovaní ovládačov a spustení software vidíme 3 základné podokná, a to Digitálne výstupy, Digitálne vstupy a Analógové vstupy.
V okne digitálne výstupy máme 8 tzv. Checkboxov. Zaškrtnutím jednotlivých boxov sa nám na jednotlivých výstupoch objaví log. 1. Tlačítka ON All a OFF All slúžia na rýchle zapnutie a vypnutie všetkých spotrebičov.
V okne digitálne vstupy máme ďalších 8 Checkboxov.
Po privedení log, 0 na jednotlivé vstupy nám zmizne symbol zaškrtnutia pri jednotlivých vstupoch. V malom okne pod checkboxami sa nám zobrazuje aktuálna hexadecimálna hodnota vstupov.
V okne Analógové vstupy máme 8 žltých políčok pre každý kanál CH0-CH7 vnútorného A/D prevodníka mikroprocesora. Vstupné napätie môže byť maximálne 5V, čo je limitované procesorom. Ak chceme merať väčšie napätie, použijeme odporový delič. Ak chceme merať menšie napätia v postačujúcej presnosti, použijeme zosilovač s OZ. Základné rozlíšenie A/D prevodu je 10 bitov.
Firmware:
Firmware pre procesor je napísaný v jazyku C. Bol písaný vo vývojovom prostredí MPLAB a následne skompilovaný kompilátorom C18. V priloženom archíve sa nachádza celý projektový súbor i zdrojové kódy.Využíva sa knižnica pre prenos cez USB port napísaná vývojármi firmy microchip.
V archíve sa nachádza:
Firmware pre mikroprocesor
Software pre PC
Ovládače pre Win XP
Schéma a DPS pre EAGLE
Komponenta TComPort pre Delphi (nutné nainštalovať pred kompiláciou)
Záver:
Daná konštrukcia má slúžiť ako príklad pre základ domácej automatizácie. Priložil som všetko potrebné pre vaše vlastné úpravy a teda si môžete prispôsobiť ovládanie podľa svojho gusta. Do programu sa dá dopísať funkcia pre komunikáciu cez TCP/IP a pripojiť sa tak ku modulu z akéhokoľvek miesta v internete. Firmware do mikroprocesora je naprogramovaný pomocou ICD2 (In-circuit debugger). Môžem zabezpečiť naprogramovanie mikrokontroléra, ešte mi ostalo pár kusov a na Slovensku sa ťažšie zháňa.
Ešte som zabudol doplniť takú informáciu, že ovládače fungujú iba pod 2000/WinXP, pretože sú napísané pre tento OS. Pod Vistou odskúšané neboli, ak niekto chcete, skúste to. V podstate sa do systému zavádza iba služba usbser.sys + VID.
Do budúcnosti určite ...momentálne som však zaneprázdnený. Dá sa to využiť hocijako. Kto je troška zbehnutý v HW časti si vie na výstupy určite pripojiť relé a ny vstupy senzory. Do programu sa dá dopísať temer čokoľvek. Stačí pridať timer alebo inú reakciu na udalosť. Môže slúžiť spolu s určitým SW na hlasové ovládanie spotrebičov cez WIN, alebo ako náhodný generátor zapínania svetla v dobe dovolenky (ochrana pred zlodejmi) , alebo ako datalogger ktorý sníma hodnoty veličín na Analógových vstupoch a zapisuje ich do súboru spolu s časom merania. Ďalej napríklad pre rôzne riadenia strojov po zbernici USB. Modul je univerzálny a preto som nenavrhol k nemu žiadne I/O obvody. Využitie si nájde každý sám.
V schéme niesú ...trocha som a to pozabudol, ale doplním:
Kondenzátory C1 a C2 - 27 pF, Kryštál je 20 MHz. C4 je 470 pF, C3 je 100nF, R3 je 1MOhm, R1 je 10 KOhm, R2 je 270 Ohm. Odporové siete môžu byť 4K7 až 22KOhm. Ospravedlňujem sa za neúplné informácie.
Zdravim, do procesorov sa moc nevyznam. Naprogramujem PIC18F4550 v programatore TSP-IC? WINPIC800 cez ktory programujem ma tento procak v databaze... dakujem
Áno s týmto programátorom by sa mal dať naprogramovať, odporúčam pri tom použiť IC-PROG. Nenašiel som žiaden list HW podpory tohto programátora, ale myslím že to bude fungovať.
Dobry den prajem, vas clanok ma velmi zaujal a ako mlady clovek ktory tohto roku maturuje a je velmi zaujaty takimito vecami by som sa chcel opytat kde sa daju taketo veci naucit. (Aka VŠ,Fakulta,...) Veľmi by som bol vdacny za odpoved.
Možno sa budeš čudovať wondrik, ale ja som na VŠ iba prvý rok (FEI STU BA - priemyselný informatika)...všetko čo som sa naučil som študoval formou "samouka" z literatúry, tisíckach hodín praxe a z internetu. Treba mať k tomu záujem a vzťah, to je všetko ....
Aj ja uplne suhlasim s Jacob989, ze treba mat k tomu vztah a zaujem. Ja studujem 2.rocnik na strednej elektrotechnickej skole a taktiez som sa sam naucil programovat vo Visual Basic, v Delphi aj mikrokontrolery PIC v assemblery. A co som pocul, ze ani na niektorych VS sa toho moc neuci z programovania, prax je prax ...
Ahoj Jacob. Postavil som si toto zariadenie. No nazrazil som na problém pri programovaní PIC. Neviem ako majú byť nastvené poistky na procesore. Napalil som to tak jak je to no usb zariadenie sa ani nezahlásilo u systemu (XP). Vedel by si my poradiť?
http://imgs.sk/index.pl?obr=poistkyJPG-69477.jpg
Podotýkam, že uvedená konštrukcia je prevziata z pôvodnej myšlienky z internetu, mnou upravená a bez môjho písomného zvolenia je akékoľvek kopírovanie obsahu alebo jeho častí bez súhlasu autora trestné !!!
Autor stránky je Ondrej Závodský(zawin), o graficky desing sa stará Ľuboš Fabo(BUFU).
Pri informovaní admina je použitie čohokoľvek z tejto stránky pre osobné alebo obchodné účely 100% povolené.