Tato stránka se zabývá programováním v assembleru a to mikrokontoléru STM8. Dále programováním v "Céčku" desek Arduina a nakonec i programováním malých
aplikací pro Windows v Delphi (Lazarusu). STM8 je jednoduchý, levný a spolehlivý 8-bitový jednočipový mikropočítač od STMicroelectronics, často používaný v jednoúčelových zařízeních.
Je jednodušší a levnější, než Arduino. V seznamu níže je několik ukázek, týkajících se různých elektronických modulů, které se pomocí STM8 a Arduina ovládají. Dále je v seznamu i
několik malých programů ke stažení napsaných v Delphi a Lazarusu.
|
|
|
|
|
Mikrokontrolér STM8 a programování v Assembleru
Zalíbil se mi osmibitový mikrokontrolér STM8S103, stejně jako programování v assembleru. Assembler byl vlastně první jazyk, na který jsem si v počítačovém
šerém dávnověku "sáhnul", protože na sálovém stroji, kde jsem začínal, jsme k dispozici nic jiného neměli.Podle mne je tento čip ideální pro stavbu jednoúčelových zařízení jako jsou různá čidla, jednoduché radiopřijímače, přehrávače MP3 a podobně. Assembler je asi jen takové okrajové téma, vypadá to, že dnes se jím zabývá málokdo. Nejspíše proto, že existují pohodlnější vývojové nástroje, a to i pro tento typ kontroléru (například Cosmic, Arduino-SDuino, oba pro jazyk "C"). Kdyby přece jen někoho zajímalo, jak to funguje na té nejnižší úrovni, tak se zde může mrknout. Co se mi však na assembleru líbí nejvíce, je jeho úspornost. Zde publikované příklady a projekty zabírají řádově stovky bajtů, sotva dosáhnou jediného kB. |
|
VKV radiopřijímače 87.5-108 MHz a čtení dat z RDS
Ukázka ovládání modulu radiopříjímače Si4703 přes sběrnici i2c a základní popis ohledně čtení dat z RDS, pro STM8.
Radiopřijímač VKV, s čipem Si4703 podporuje příjem dat z RDS. Během zápisu i čtení do/z sběrnice i2c se žádná čísla registrů nezadávají.
Prostě se odešle/přečte souvislá řada byte, podobně jakou TEA5767. V datasheetu Si4703 sice registry číslovány jsou, ale asi jen pro orientaci.
Registry jsou šestnactibitové a je jich celkem šestnáct (32 byte). Následující ukázka se týká připojení modulu ke kontroléru STM8 pro nastavení, ladění,
hlasitost a čtení z RDS (název stanice, radiotext a časová značka).Co se týče radiopřijímačů, je zde ještě návod na stavbu pro Arduino s čipem RDA5807 a ukázka, jak pomocí STM8 ovládat čip TEA5767 (který však nepodporuje RDS). |
Bezdráťák s bluetooth a jiné MP3 přehrávače Jsem zatížený na různé audio zařízení, jako rozhlasové přijímače, všelijaké přehrávače a podobně, tak jsem učinil tento pokus o
MP3 přehrávač + bluetooth reproduktor s dálkovým ovládáním s obousměrnou komunikací. To znamená, že na ovladači je kromě tlačítek
i displej, kde se zobrazuje kromě pořadí souboru, celkového počtu a času mp3 i název právě přehrávaného souboru. Klasický infra snímač zde
použít nejspíš nelze, takže jsem ke komunikaci použil 433MHz modul HC-12 připojený k seriové lince (UART).
Oproti předešlé verzi bezdráťáku, demostrující komunikaci přes SPI, která komunikuje ve wifi pásmu 2,4GHz, jde o velké
zjednodušení, protože na straně přehrávače ("serveru"), není žádný kontrolér a není tedy třeba ani nic programovat.Na těchto stránkách jsou ještě návody pro čip DFPlayer mini pro STM8 v assembleru a skoro totéž, ale programováno v "Cečku" v prostředí Arduino, s doinstalovanými knihovnami SDuino. Nakonec je tu i ukázka pro modul Serial MP3 Player pro STM8 v assembleru. |
Jednoduchý univerzální katalog Program pro evidenci libovolných položek a souvisejících dokumentů. Napsáno v Delphi. Jako starý "bastlíř" jsem potřeboval dát nějaký řád
svým bohatým zásobám různých součástek a modulů. Zároveň k nim i zaevidovat
kupu popisů, manuálů, schémat a jiných dokumentů, válejících se v různých složkách v počítači. Napsal jsem tedy tento jednoduchý prográmek a snad pomůže i jiným, k
evidenci kuchařských receptů, knížek, časopisů, nebo čehokoliv jiného. Položky jsou organizovány do stromu o libovolné struktuře. Je možné vkládat různé související
dokumenty, které se ukládají i do databáze (do pole typu blob).Program neobsahuje žádný instalátor, stačí jej rozbalit do libovolné složky, do které máte přístup. Pokud se Vám program nebude líbit, stačí jej z ní prostě vymazat. Program neprovádí žádný zápis do registrů Windows. Jde pouze o katalog, ne o skladovou evidenci. Skladové pohyby, ani zásoby program neeviduje. |
Servisy, termíny, lhůty Program slouží k evidenci provozu a servisních prací u různých strojů a jiných zařízení. Napsáno v Lazarusu.
Obsahuje základní seznam jednotlivých zařízení, jako jsou automobily, motocykly, sekačky, křovinořezy, motorové pily atd. K tomuto seznamu navázány tabulky:Předepsané práce (záznamy úkonů, limitů a intervalů pro sevisní práce zařízení). Provoz (seznam ujetých kilometrů, nebo odpracovaných hodin pro právě vybrané zařízení). Údržba (seznam provedených předepsaných prací). Na základě zadaných údajů program upozorní na blížící se a překročené termíny. Ani tento program není třeba instalovat, stačí jej rozbalit do libovolné složky, do které máte přístup. Pokud se Vám program nebude líbit, stačí jej z ní prostě vymazat. Program neprovádí žádný zápis do registrů Windows. Jde o beta verzi, bohužel nenám žádné testery, takže bych uvítal nějakou zpětnou vazbu přes formulár níže. |
Displeje, LCD a segmentové
Displeje jsou poměrně často používaná zařízení. Zde jsou ukázky pro LCD 16x2 a LCD 20x4 (dva řádky po 16-ti znacích, nebo čtyři řádky po 20-ti znacích)
s i2c řadičem HD44780, defaultně na adrese 0x27 (popřípadě 0x20). Pro zobrazení číslic je zde popsán sedmisegmentový čtyřmístný displej s čipem
TM-1637. Komunikuje pomocí dvou GPIO pinů (CLK a DIO) vlastním protokolem. Bližší popis je v ukázkách na této stránce.
Dále je zde popsán ovládací panel s osmimístným sedmisegmentovým displejem, s osmi led diodami a osmi tlačítky, s čipem TM-1638.
Má tedy kromě displeje navíc rosvěcování/zhasínání led diod a čtení tlačítek. Stav tlačítek se ukládá do jednoho byte, kde jednotlivá tlačítka určují jednotlivé bity
(tlačítko 1 až 8 => bity 7 - 0). Komunikace je podobná jako u sedmisegmentového displeje, piny CLK, DIO a navíc je zde signál STROBE. Napájení displejů a ovládacího panelu je 5V.
|
Posílání krátkých zpráv Komunikace peer to peer. Napsáno v Delphi. Tento dnes již historický prográmek jsem stvořil v dobách, kdy internetové komunikační nástroje
byly ještě v plenkách. Je opravdu velmi jednoduchý, vlastně umí jen poslat krátký text, max 200 znaků. Jakási SMS přes počítače. Jde o jedinou
UDP paketu. V programu je ošetřeno potvrzení doručení, protože UDP vrstva TCP/IP protokolu toto nezaručuje.Program není potřeba instalovat, vytvořte nějakou novou složku a tam program rozbalte. Pro zajímavost k němu přikládám i zdroják, kdyby se v něm někdo chtěl šťourat. Byl napsán v Delphi 4 s doinstalovanými komponentami INDY v prvních verzích. Já jsem jej nyní upravil v Delphi 7 (pouze jsem vyměnil některé již neaktuální texty). Pokud by jej někdo vylepšil a dal ho veřejně k dispozici, dejte mi o tom aspoň vědět. |
Ostatní všehochuť Nabízí se zde ještě ukázky pro další moduly, ohledně připojení k STM8 v assembleru. Je to malý vysílač VKV pomocí modulu Adafruit_Si4713. Jde o vysílač v rozhlasovém pásmu 87.5 - 108 MHz. Výrobce udává dosah kolem 10 metrů, nicméně podle mých zkušeností je trochu větší. Nejsem si však jist do jaké míry je používání takového zařízení v České Republice legální.Hodiny reálného času s čipem DS3231, který je velmi přesný. Je zde obsažen návod na stavbu stolních digitálních hodin. Čas je zobrazován na čtyřmístný sedmisegmentový diplej a čas se nastavuje přes dálkový infra ovladač. Modul pro měření teploty a vlhkosti čidlem DHT-22 (AM2302), nebo DHT-11 komunikuje pomocí jediného datového vodiče. Napájen je napětím 5V. Ukázka použití pohybového čidla, spínání relé pomocí něj. Velmi jednoduchý "projektík", demostrující použití in/out pinů a přerušení.
Nakonec je tu ještě něco z jiného soudku. Nejsem sice milovník počítačových her, ale Microsoft Train Simulátor a jeho následník Open Rails je výjimka. Do této hry jsem
vytvořil několik malých tratí.
|
|
|