Uživatel:Polanjir

Z MAM wiki

(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
(SOFTWARE)
(SOFTWARE)
Řádka 111: Řádka 111:
Úspěch Qbasicu i Visual Basicu inspiroval v roce 1995 Marka Albertse k vytvoření nového programovacího jazyka, pojmenovaného Bascom, umožňujícího i začátečníkům napsat program pro jednočipové mikropočítače a mikrokontroléry. Tento program produkuje firma [http://mcselec.com MCS electronics] ve dvou implementacích - Bascom 51 pro mikrokontroléry kompatibilní s již klasickým I8051 a Bascom AVR pro RISCové mikrokontroléry ATMEL AVR.
Úspěch Qbasicu i Visual Basicu inspiroval v roce 1995 Marka Albertse k vytvoření nového programovacího jazyka, pojmenovaného Bascom, umožňujícího i začátečníkům napsat program pro jednočipové mikropočítače a mikrokontroléry. Tento program produkuje firma [http://mcselec.com MCS electronics] ve dvou implementacích - Bascom 51 pro mikrokontroléry kompatibilní s již klasickým I8051 a Bascom AVR pro RISCové mikrokontroléry ATMEL AVR.
 +
 +
*Hlavní výhodou je jednoduchost programování a podpora velkého množství externího hardwaru, ke kterému se přistupuje opravdu jednoduchým způsobem.
 +
 +
*Kompilátor má také integrovaný simulátor a programátor, který podporuje většinu ISP programátorů (na paralelní port LPT, na sériový COM i na USB).
 +
 +
*Součástí jsou i knihovny pro řízení flash karet, harddisků a dalších zařízení prostřednictvím systému AVR-DOS, který podporuje souborový systém FAT16 a FAT32. Více na stránkách výrobce [http://mcselec.com MCS electronics].
Vzhledem k tomu, že ovládání programu Bascom je velmi intuitivní a nastavování vlastního prostředí odpovídá běžným konvencím programů běžících pod Windows, těší se stále větší oblibě.   
Vzhledem k tomu, že ovládání programu Bascom je velmi intuitivní a nastavování vlastního prostředí odpovídá běžným konvencím programů běžících pod Windows, těší se stále větší oblibě.   

Verze z 21. 4. 2010, 13:04

Jiří Polanský

předmět MAM, cvičení ČT 9:15 


Obsah

Téma semestrální práce

Wattmetr solární elektrárny

"Převod frekvence indikátoru (LED) elektroměru na relevatní hodnotu v jednotkách Wh, s použitím vhodného převodníku a programovacího jazyka Bascom pro AVR. Údaj bude zobrazovaný na LCD display. K mikrokontroléru bude připojen i RTC obvod pro údaj o správném času."

Je to přístroj, který má snímat pomocí fototranzistoru indikační LED diodu v elektroměru solárních panelů. Tato dioda bliká s měnící se periodou a v závislosti na ní se mění i aktuální výkon solární elektrárny. Dle výrobce elektroměru 1 impulz LED diody je roven 0,5Wh. Tudíž čítáme periodu mezi pulzy (náběžnou hranu) pro aktuální výkon i denní počet pulzů pro informaci o celkové výrobě energie. V našem přístroji byl použit fototranzistor, jelikož nemůžem zasáhnout do zapojení elektroměru a LED dioda je jediná, pro nás použitelná indikace.

Soubor:Wattmetr2_.jpg

větší obr. Elektroměr je přítroj nejvíc nalevo.

Semestální práci budu dělat společně s Ondřejem Veselým [1]




HARDWARE

ATmega168 – mikrokontrolér


Soubor:Atmega168.jpg


Mikrokontroléry AVR jsou vyráběny firmou Atmel. Mezi jejich základní vlastnosti patří:

  • 8-bitová RISC architektura
  • 130 instrukcí (120 pro ATtiny), většina jednotaktových
  • rozsah frekvencí od 32kHz do 20MHz
  • oddělená programová a datová paměť
  • programová paměť flash přeprogramovatelná za běhu, 10 000 mazacích/zápisových cyklů
  • operační paměť SRAM, dvoutaktový přístup
  • integrovaná EEPROM, 100 000 mazacích/zápisových cyklů
  • 32 pracovních registrů
  • napájení 1.8 - 5.5V, nízká spotřeba, režim spánku
  • množství digitálních i analogových periferií
  • jednoduché programování, software zdarma

Pro naší konstrukci jsme vybrali 8-bitový RISC mikrokontroler s typovým označením ATmega168. Disponuje 16kB programovatelné FLASH paměti, která je programovatelná přímo v aplikaci s možností uzamknutí, 10.000 zápisových/mazacích cylků s volitelnou velikostí bootovací sekce s nezávislým uzamykáním. Dále pro nás důležité hodnoty jako 1kB interní SRAM, 512 Byte velká paměť EEPROM, 8-kanálový 10-bitový A/D převodník, ale hlavně pro naše použití má mikrokontroler dva pinové vývody pro externí přerušení (INT0 a INT1) a dva čítače z čehož první TIMER0 je 16-bitový a TIMER1 pouze 8-bitový, každý s vlastní před-děličkou.

Více info v datasheet ATmega168


DS1302 - Obvod reálného času (RTC)


Soubor:DS1302.jpg


Dle provedení lze RTC rozdělit takto:

  • vnitřní nebo externí krystal
  • vnitřní nebo externí záložní baterie
  • výstup pro probouzení mikroprocesoru

Dle zapojení do obvodu:

  • sériové připojení pomocí 1wire, I2C nebo 3 wire sběrnice
  • paralelní připojení

Pro naší konstrukci jsme zvolili obvod reálného času od firmy Dallas s typovým označením DS1302. Tyto obvody sice nemají vnitřní baterii, ani krystal, za to však mají srozumitelné ovládání. Využívají minimální počet pinů pro komunikaci s mikroprocesorem. Obvod DS1302 komunikuje s mikroprocesorem po třech vodičích. Signál RESET aktivuje komunikaci s DS1302, signál SCLK potvrzuje platná data a nakonec signál SDATA, který data přijímá, ale i odesílá. Komunikace je dvoubytová. Nejprve se odešle příkazový byte a následně se odešle byte s daty, nebo přijme byte s daty. MSB bit příkazového bytu je vždy log. 1, jinak by nešlo do obvodu zapisovat.

  • Microhead [online], poslední aktualizace 2008 [cit. 14. 4. 2010], Wikipedie. Dostupné z WWW: <http://www.microhead.cz/elektro/avr/AVRrtc_dallas.htm>

viz. [2]

Více info v datasheet DS1302


SFH309-5 - Fototranzistor


Soubor:SFH309-5.jpg


Pro detekci červené LED diody ve wattmetru jsme použili obyčejný NPN fototranzistor SFH309-5. U jeho parametrů jsme si museli pohlídat vlnovou délku, při které ještě bude buzen dopadajícím světlem LEDky, tzn. (630 – 650)nm. Což námi zvolený fototranzistor s rozsahem (380 - 1150)nm zcela splňuje.

Datasheet SFH309-5


MC2004B-SBL/H - Alfanumerický LCD display


Soubor:LCDsmall.jpg


Display bude sloužit jako zobrazovací jednotka naměřených hodnot.

  • Rozměry LCD: 20 znaků / 4 řádky
  • LCD ŘADIČ/OVLADAČ: S6A0069
  • Operační napětí: 2.7 - 5.5V
  • Volitelná 4 nebo 8 bitová komunikace

Datasheet LCD





SOFTWARE

Pro naší semestrální práci jsme si vybrali programovací jazyk BASCOM AVR. Důvody naší volby byly hned dva. A to, že jazyk BASCOM je velice srozumitelný (hned na první pohled), vychazí z jazyka Visual Basic. A další neméně důležitý fakt, že bychom chtěli našim spolužákum ukázat, že existují i jiné programovací jazyky než je (Asembler), C a Java. Samozřejmě nelze popřít, ze tyto jazyky jsou pracovním nástrojem profesionálních programátorů.

Úspěch Qbasicu i Visual Basicu inspiroval v roce 1995 Marka Albertse k vytvoření nového programovacího jazyka, pojmenovaného Bascom, umožňujícího i začátečníkům napsat program pro jednočipové mikropočítače a mikrokontroléry. Tento program produkuje firma MCS electronics ve dvou implementacích - Bascom 51 pro mikrokontroléry kompatibilní s již klasickým I8051 a Bascom AVR pro RISCové mikrokontroléry ATMEL AVR.

  • Hlavní výhodou je jednoduchost programování a podpora velkého množství externího hardwaru, ke kterému se přistupuje opravdu jednoduchým způsobem.
  • Kompilátor má také integrovaný simulátor a programátor, který podporuje většinu ISP programátorů (na paralelní port LPT, na sériový COM i na USB).
  • Součástí jsou i knihovny pro řízení flash karet, harddisků a dalších zařízení prostřednictvím systému AVR-DOS, který podporuje souborový systém FAT16 a FAT32. Více na stránkách výrobce MCS electronics.

Vzhledem k tomu, že ovládání programu Bascom je velmi intuitivní a nastavování vlastního prostředí odpovídá běžným konvencím programů běžících pod Windows, těší se stále větší oblibě.


Bascom nabízí:

  • Strukturovaný BASIC s návěštími (labely)
  • Strukturované programování s IF-THEN-ELSE-END IF, DO-LOOP, WHILE-WEND, SELECT- CASE
  • Rychlý strojový kód
  • Proměnné a návěští mohou být až 32 znaků dlouhé
  • Proměnné typu Bit, Byte, Integer, Word, Long, Single , DOUBLE a String
  • Podpora proměnné typu DOUBLE. Na rozdíl od jiných AVR kompilátorů vám BASCOM dává výhodu zpracovávat obrovská čísla v proměnných typu DOUBLE(8 bytů s plovoucí čárkou)
  • Implementována funkce výpočtu datumu a času
  • Vytvořené programy pracují se všemi AVR procesory, které mají vnitřní paměť
  • Příkazy jsou velmi podobné příkazům Microsoft VB/QB
  • Speciální příkazy pro LCD a grafické displeje, I2C a 1WIRE obvody, PC klávesnici, maticovou klávesnici, příjem a vysílání RC5, RC6 a Sony kódu
  • TCP/IP
  • Lokální proměnné, uživatelské funkce, podpora knihoven
  • Integrovaná emulace terminálu s podporou download
  • Integrovaný simulátor pro testování
  • Integrovaný ISP programátor (podle Aplikační poznámky Atmel AVR910.asm)
  • Integrovaný programátor STK200 a STK300. Také podporuje ultralevný programátor Sample Electronics. Podpora mnoha dalších programátorů přes univerzální interface
  • Editor se zvýrazněním syntaxe
  • Prohlížeč PDF datasheetů
  • Velmi dobře zpracovaná kontextově citlivá nápověda
  • A mnoho dalšího...


Pokud Vás již toto zaujalo a chtěli byste si tento programovací nástroj vyzkoušet, lze si ze stránek MCS electronics stáhnout demoverzi, která je pouze omezená délkou výsledného kódu na 4kB. Což už je polovina flash paměti ATmega8. Download: BASCOM AVR

Pokračování příště..... :-)

--Polanjir 21. 4. 2010, 12:58 (UTC)

Osobní nástroje