Oznamovač
Zo stránky SensorWiki
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.
Literatúra:
- Manuál k použitému e-ink displej modulu
- Ťahák príkazov v programe OpenSCAD
- Kmeňová stránka dokumentácie RPi Pico/Rpi Pico W
- Dokumentácia jazyku Micropython
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
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 nasledovne:
- VCC -> VSYS
- GND -> GND
- DIN -> GPIO_11
- CLK -> GPIO_10
- CS -> GPIO_09
- DC -> GPIO_08
- RST -> GPIO_12
- BUSY -> GPIO_13
Algoritmus a program
Algoritmus programu je....
#include <avr/io.h>
int main(void)
{
unsigned int measuredValue;
while (1)
{
/* relax */
}
return(0);
}
#include <avr/io.h>
void adc_init(void); // A/D converter initialization
unsigned int adc_read(char a_pin);
Pridajte sem aj zbalený kompletný projekt, napríklad takto (použite jednoznačné pomenovanie, nemôžeme mať na serveri 10x zdrojaky.zip:
Zdrojový kód: zdrojaky.zip
Overenie
Na používanie našej aplikácie stačia dve tlačítka a postup používania je opísaný v sekcii popis riešenia. Na konci uvádzame fotku záverečnej obrazovky pred resetom. Vypísaný je tu priemerný čas a najlepší čas.
Video:
Kľúčové slová 'Category', ktoré sú na konci stránky nemeňte.