Operácie

Oznamovač: Rozdiel medzi revíziami

Z SensorWiki

 
(11 medziľahlých úprav od rovnakého používateľa nie je zobrazených.)
Riadok 5: Riadok 5:
 
Mojím cieľom pre tento projekt bolo najmä oboznámenie sa s e-ink displejom a bezdrôtovou funkcionalitou zvoleného mikrokontroléra.
 
Mojím cieľom pre tento projekt bolo najmä oboznámenie sa s e-ink displejom a bezdrôtovou funkcionalitou zvoleného mikrokontroléra.
 
Tento projekt ma však aj dôvernejšie oboznámil s 3D modelovaním v programe OpenSCAD a s opravou, a jej možnými rizikami, 3D tlačiarne.
 
Tento projekt ma však aj dôvernejšie oboznámil s 3D modelovaním v programe OpenSCAD a s opravou, a jej možnými rizikami, 3D tlačiarne.
 +
 +
Oznamovač ako taký slúži na oznamovanie všetkého možného, na čo si len užívateľ spomenie. Dá sa využiť na upovedomenie členov domácnosti na nedostatok danej potraviny, no i v pracovnom prostredí sa nestratí - naprogramovaním jedného z tlačidiel je možné jednoducho upovedomiť kolegov/zákazníkov že ste práve odišli na obed.
  
 
'''Literatúra:'''  
 
'''Literatúra:'''  
 
* [https://www.waveshare.com/wiki/2.9inch_e-Paper_Module_Manual Manuál k použitému e-ink displej modulu]
 
* [https://www.waveshare.com/wiki/2.9inch_e-Paper_Module_Manual Manuál k použitému e-ink displej modulu]
 
* [https://openscad.org/cheatsheet/index.html Ťahák príkazov v programe OpenSCAD]
 
* [https://openscad.org/cheatsheet/index.html Ťahák príkazov v programe OpenSCAD]
* [https://www.raspberrypi.com/documentation/microcontrollers/raspberry-pi-pico.html Kmeňová stránka dokumentácia RPi Pico/Rpi Pico W]
+
* [https://www.raspberrypi.com/documentation/microcontrollers/raspberry-pi-pico.html Kmeňová stránka dokumentácie RPi Pico/Rpi Pico W]
 +
* [https://docs.micropython.org/en/latest/index.html Dokumentácia jazyku Micropython]
  
  
 
__TOC__
 
__TOC__
  
== Analýza a opis riešenia ==
+
== Analýza a opis riešenia ==
  
 
Potrebujeme tieto súčiastky:
 
Potrebujeme tieto súčiastky:
 
* Raspberry Pi Pico W
 
* Raspberry Pi Pico W
* Waveshare 2.9 palcový e-ink modul
+
* Waveshare 2.9 palcový modul s e-ink displejom
 
* Li-Po batéria
 
* Li-Po batéria
 
* TP4056 nabíjací modul s ochranným obvodom  
 
* TP4056 nabíjací modul s ochranným obvodom  
 
* prepínač
 
* prepínač
 
* 3 tlačítka
 
* 3 tlačítka
 +
* 4 skrutky
  
 +
Na programovanie mikrokontroléra budeme používať Micropython, ktorý zavedieme na Pico W nasledovne: Zapojíme Pico do USB portu počítača, zatiaľ čo držíme tlačítko na doske kontroléra. Pico W by sa mal zobraziť ako bežný USB disk. Stiahneme najnovší micropython firmware z tejto stránky: [https://www.raspberrypi.com/documentation/microcontrollers/micropython.html#what-is-micropython link]. Stránka obsahuje taktiež názornejší návod inštalácie.
  
 +
Po skopírovaní súboru na Pico, by sa mal odpojiť, a po opätovnom zapojení schopný komunikácie cez sériový port. Na komunikáciu s Picom a najmä na jeho programovanie som použil jednoduché, no od výrobcu odporúčané, Python IDE - [https://thonny.org/ Thonny]. Podobnú funkcionalitu ako Thonny poskytuje taktiež plugin Pico-W-Go do praktického IDE Visual Studio Code, no je menej intuitívny a spoľahlivý.
  
[[Súbor:ledRGB.jpg|400px|thumb|center|RGB LED.]]
+
Na ovládanie najdôležitejšej časti projektu, e-ink displeja, je možné stiahnuť micropython súbor od výrobcu, ktorý uľahčuje komunikáciu (skrz SPI) s modulom. Tento súbor sa dá stiahnuť [https://github.com/waveshareteam/Pico_ePaper_Code/blob/main/python/Pico_ePaper-2.9.py tu]. Tento driver je kompatibilný aj s modulom špecificky zameraným na Pico/Pico W. Po stiahnutí a skopírovaní do flash pamäte mikrokontroléra zapojíme displej podľa tejto schémy:
 
 
[[Súbor:schema.svg|400px|thumb|center|Schéma zapojenia LCD displeja.]]
 
 
 
 
 
=== Algoritmus a program ===
 
 
 
Algoritmus programu je....
 
 
 
 
 
<tabs>
 
<tab name="AVR C-code"><source lang="c++" style="background: LightYellow;">
 
#include <avr/io.h>
 
 
 
int main(void)
 
{
 
  unsigned int measuredValue;
 
 
 
  while (1)
 
  {
 
    /*  relax  */
 
  }
 
 
 
  return(0);
 
}
 
 
 
</source></tab>
 
<tab name="filename.h"><source lang="c++" style="background: LightYellow;">
 
#include <avr/io.h>
 
  
void adc_init(void);                                  // A/D converter initialization
+
[[Obrázok:displej_zapojenie.png|400px|thumb|center|E-ink modul zapojenie]]
  
unsigned int adc_read(char a_pin);
+
Nasledovne spustíme stiahnutý micropython driver, keďže obsahuje krátke demo na test displeja (displej môže byt poškodený). Pri programovaní e-ink displejov sa neodporúča veľmi časté obnovovanie displeja - nie je na to stavaný a mohol by sa poškodiť. Ak nie je poškodený, skopírujte do pamäte mikrokontroléra zvyšné potrebné súbory: webserver.py, web.html, sprava0.txt, sprava1.txt a sprava2.txt. V súbore webserver.py si nastavte názov a heslo vašej Wifi siete a upravte import e-ink driver súboru, aby sa zhodoval s názvom vášho, už uploadnutého, driver súboru.
</source></tab>
 
</tabs>
 
  
Pridajte sem aj zbalený kompletný projekt, napríklad takto (použite jednoznačné pomenovanie, nemôžeme mať na serveri 10x ''zdrojaky.zip'':  
+
Ak po spustení súboru webserver.py všetko funguje, premenujte súbor na main.py, aby sa spustil pri každom zapnutí mikrokontroléra. Následovne môžeme zapojiť všetky súčiastky podľa tejto schémy:
 +
[[Obrázok:Oznamovac_schema.png|600px|thumb|center|Celkové zapojenie projektu]]
  
Zdrojový kód: [[Médiá:projektMenoPriezvisko.zip|zdrojaky.zip]]
+
Posledná položka je vytlačenie samotnej krabičky, ktorá všetky komponenty uschová. V .zip archíve sú poskytnuté obidva .stl súbory (krabička a veko), ale aj parametrický OpenSCAD zdrojový kód, v ktorom možno podľa potreby upraviť rôzne parametre modelu. Na uzatvorenie krabičky treba ešte 4 skrutky.
  
 +
[[Obrázok:Oznamovac_modely.png|400px|thumb|center|Krabička a veko]]
  
=== Overenie ===
+
== Kód, 3D modely a iné materiály ==
  
Na používanie našej aplikácie stačia dve tlačítka a postup používania je opísaný v sekcii popis riešenia.  
+
Zdrojový kód webservera je bohužiaľ príliš dlhý, aby tu bol zobrazený vcelku, a preto je poskytnutý až v .zip archíve. Archív obsahuje, okrem micropython a OpenSCAD kódu, vygenerované .stl modely, schému zapojenia, html súbor poskytovaný webserverom a 3 textové súbory, ktorých obsah je možné zobraziť na displeji po stlačení daného tlačítka a najmä pozmeniť cez rozhranie html webstránky.
Na konci uvádzame fotku záverečnej obrazovky pred resetom. Vypísaný je tu priemerný čas a najlepší čas.  
 
  
[[Súbor:fotka.jpg|400px|thumb|center|Aplikácia.]]
+
archív: [[Médiá:OznamovacMartinBartos.zip|oznamovac.zip]]
  
'''Video:'''
+
== Záver ==
<center><youtube>_l02MBu41n0</youtube></center>
+
Dúfam, že tento projekt niekomu, niekedy v istom smere poslúži.
  
Kľúčové slová 'Category', ktoré sú na konci stránky nemeňte.  
+
Ku koncu dám ešte do pozornosti tento foto rámik od [https://spritesmods.com/?art=wifipicframe&f=rss spritesmods.com] - využitie pre ktoré je e-ink ako stvorený.
  
 
[[Category:AVR]] [[Category:MIPS]]
 
[[Category:AVR]] [[Category:MIPS]]

Aktuálna revízia z 04:19, 21. jún 2023

Záverečný projekt predmetu DTV / LS2023 - Martin Bartoš


Úvod

Mojím cieľom pre tento projekt bolo najmä oboznámenie sa s e-ink displejom a bezdrôtovou funkcionalitou zvoleného mikrokontroléra. Tento projekt ma však aj dôvernejšie oboznámil s 3D modelovaním v programe OpenSCAD a s opravou, a jej možnými rizikami, 3D tlačiarne.

Oznamovač ako taký slúži na oznamovanie všetkého možného, na čo si len užívateľ spomenie. Dá sa využiť na upovedomenie členov domácnosti na nedostatok danej potraviny, no i v pracovnom prostredí sa nestratí - naprogramovaním jedného z tlačidiel je možné jednoducho upovedomiť kolegov/zákazníkov že ste práve odišli na obed.

Literatúra:


Analýza a opis riešenia

Potrebujeme tieto súčiastky:

  • Raspberry Pi Pico W
  • Waveshare 2.9 palcový modul s e-ink displejom
  • Li-Po batéria
  • TP4056 nabíjací modul s ochranným obvodom
  • prepínač
  • 3 tlačítka
  • 4 skrutky

Na programovanie mikrokontroléra budeme používať Micropython, ktorý zavedieme na Pico W nasledovne: Zapojíme Pico do USB portu počítača, zatiaľ čo držíme tlačítko na doske kontroléra. Pico W by sa mal zobraziť ako bežný USB disk. Stiahneme najnovší micropython firmware z tejto stránky: link. Stránka obsahuje taktiež názornejší návod inštalácie.

Po skopírovaní súboru na Pico, by sa mal odpojiť, a po opätovnom zapojení schopný komunikácie cez sériový port. Na komunikáciu s Picom a najmä na jeho programovanie som použil jednoduché, no od výrobcu odporúčané, Python IDE - Thonny. Podobnú funkcionalitu ako Thonny poskytuje taktiež plugin Pico-W-Go do praktického IDE Visual Studio Code, no je menej intuitívny a spoľahlivý.

Na ovládanie najdôležitejšej časti projektu, e-ink displeja, je možné stiahnuť micropython súbor od výrobcu, ktorý uľahčuje komunikáciu (skrz SPI) s modulom. Tento súbor sa dá stiahnuť tu. Tento driver je kompatibilný aj s modulom špecificky zameraným na Pico/Pico W. Po stiahnutí a skopírovaní do flash pamäte mikrokontroléra zapojíme displej podľa tejto schémy:

E-ink modul zapojenie

Nasledovne spustíme stiahnutý micropython driver, keďže obsahuje krátke demo na test displeja (displej môže byt poškodený). Pri programovaní e-ink displejov sa neodporúča veľmi časté obnovovanie displeja - nie je na to stavaný a mohol by sa poškodiť. Ak nie je poškodený, skopírujte do pamäte mikrokontroléra zvyšné potrebné súbory: webserver.py, web.html, sprava0.txt, sprava1.txt a sprava2.txt. V súbore webserver.py si nastavte názov a heslo vašej Wifi siete a upravte import e-ink driver súboru, aby sa zhodoval s názvom vášho, už uploadnutého, driver súboru.

Ak po spustení súboru webserver.py všetko funguje, premenujte súbor na main.py, aby sa spustil pri každom zapnutí mikrokontroléra. Následovne môžeme zapojiť všetky súčiastky podľa tejto schémy:

Celkové zapojenie projektu

Posledná položka je vytlačenie samotnej krabičky, ktorá všetky komponenty uschová. V .zip archíve sú poskytnuté obidva .stl súbory (krabička a veko), ale aj parametrický OpenSCAD zdrojový kód, v ktorom možno podľa potreby upraviť rôzne parametre modelu. Na uzatvorenie krabičky treba ešte 4 skrutky.

Krabička a veko

Kód, 3D modely a iné materiály

Zdrojový kód webservera je bohužiaľ príliš dlhý, aby tu bol zobrazený vcelku, a preto je poskytnutý až v .zip archíve. Archív obsahuje, okrem micropython a OpenSCAD kódu, vygenerované .stl modely, schému zapojenia, html súbor poskytovaný webserverom a 3 textové súbory, ktorých obsah je možné zobraziť na displeji po stlačení daného tlačítka a najmä pozmeniť cez rozhranie html webstránky.

archív: oznamovac.zip

Záver

Dúfam, že tento projekt niekomu, niekedy v istom smere poslúži.

Ku koncu dám ešte do pozornosti tento foto rámik od spritesmods.com - využitie pre ktoré je e-ink ako stvorený.