micropython-st7789py-lcd-dr.../docs/examples.html

776 wiersze
81 KiB
HTML
Czysty Wina Historia

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Example Programs &mdash; st7789py 0.1.0 documentation</title>
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<!--[if lt IE 9]>
<script src="_static/js/html5shiv.min.js"></script>
<![endif]-->
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
<script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
<script src="_static/jquery.js"></script>
<script src="_static/underscore.js"></script>
<script src="_static/doctools.js"></script>
<script type="text/javascript" src="_static/js/theme.js"></script>
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="next" title="Fonts" href="fonts.html" />
<link rel="prev" title="st7789py Reference" href="st7789py.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" style="background: #2980B9" >
<a href="index.html" class="icon icon-home"> st7789py
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="index.html">st7789py Driver</a></li>
<li class="toctree-l1"><a class="reference internal" href="st7789py.html">st7789py Reference</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Example Programs</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#ttgo-lines-py">ttgo_lines.py</a></li>
<li class="toctree-l2"><a class="reference internal" href="#ttgo-hello-py">ttgo_hello.py</a></li>
<li class="toctree-l2"><a class="reference internal" href="#ttgo-fonts-py">ttgo_fonts.py</a></li>
<li class="toctree-l2"><a class="reference internal" href="#ttgo-scroll-py">ttgo_scroll.py</a></li>
<li class="toctree-l2"><a class="reference internal" href="#toasters-py">toasters.py</a></li>
<li class="toctree-l2"><a class="reference internal" href="#chango-py">chango.py</a></li>
<li class="toctree-l2"><a class="reference internal" href="#noto-fonts-py">noto_fonts.py</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="fonts.html">Fonts</a><ul>
<li class="toctree-l2"><a class="reference internal" href="fonts.html#rom-font-conversion">Rom Font Conversion</a></li>
<li class="toctree-l2"><a class="reference internal" href="fonts.html#true-type-font-conversion">True-Type Font Conversion</a></li>
<li class="toctree-l2"><a class="reference internal" href="fonts.html#x8-rom-fonts">8x8 Rom Fonts</a></li>
<li class="toctree-l2"><a class="reference internal" href="fonts.html#x16-rom-fonts">8x16 Rom Fonts</a></li>
<li class="toctree-l2"><a class="reference internal" href="fonts.html#id1">16x16 Rom Fonts</a></li>
<li class="toctree-l2"><a class="reference internal" href="fonts.html#x32-rom-fonts">16x32 Rom Fonts</a></li>
</ul>
</li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="index.html">st7789py</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content style-external-links">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="index.html" class="icon icon-home"></a> &raquo;</li>
<li>Example Programs</li>
<li class="wy-breadcrumbs-aside">
<a href="_sources/examples.rst.txt" rel="nofollow"> View page source</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<div class="section" id="example-programs">
<h1>Example Programs<a class="headerlink" href="#example-programs" title="Permalink to this headline"></a></h1>
<p>These examples run on the LilyGo TTGO-T-Display available from the usual
locations. See <a class="reference external" href="https://github.com/Xinyuan-LilyGO/TTGO-T-Display">https://github.com/Xinyuan-LilyGO/TTGO-T-Display</a> for more
information.</p>
<div class="section" id="ttgo-lines-py">
<h2>ttgo_lines.py<a class="headerlink" href="#ttgo-lines-py" title="Permalink to this headline"></a></h2>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="linenos"> 1</span><span class="sd">&quot;&quot;&quot;</span>
<span class="linenos"> 2</span><span class="sd">lines.py</span>
<span class="linenos"> 3</span>
<span class="linenos"> 4</span><span class="sd"> Draws lines and rectangles in random colors at random locations on the</span>
<span class="linenos"> 5</span><span class="sd"> display.</span>
<span class="linenos"> 6</span>
<span class="linenos"> 7</span><span class="sd">&quot;&quot;&quot;</span>
<span class="linenos"> 8</span><span class="kn">import</span> <span class="nn">random</span>
<span class="linenos"> 9</span><span class="kn">from</span> <span class="nn">machine</span> <span class="kn">import</span> <span class="n">Pin</span><span class="p">,</span> <span class="n">SoftSPI</span>
<span class="linenos">10</span><span class="kn">import</span> <span class="nn">st7789py</span> <span class="k">as</span> <span class="nn">st7789</span>
<span class="linenos">11</span>
<span class="linenos">12</span>
<span class="linenos">13</span><span class="k">def</span> <span class="nf">main</span><span class="p">():</span>
<span class="linenos">14</span> <span class="n">spi</span> <span class="o">=</span> <span class="n">SoftSPI</span><span class="p">(</span>
<span class="linenos">15</span> <span class="n">baudrate</span><span class="o">=</span><span class="mi">20000000</span><span class="p">,</span>
<span class="linenos">16</span> <span class="n">polarity</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
<span class="linenos">17</span> <span class="n">phase</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span>
<span class="linenos">18</span> <span class="n">sck</span><span class="o">=</span><span class="n">Pin</span><span class="p">(</span><span class="mi">18</span><span class="p">),</span>
<span class="linenos">19</span> <span class="n">mosi</span><span class="o">=</span><span class="n">Pin</span><span class="p">(</span><span class="mi">19</span><span class="p">),</span>
<span class="linenos">20</span> <span class="n">miso</span><span class="o">=</span><span class="n">Pin</span><span class="p">(</span><span class="mi">13</span><span class="p">))</span>
<span class="linenos">21</span>
<span class="linenos">22</span> <span class="n">tft</span> <span class="o">=</span> <span class="n">st7789</span><span class="o">.</span><span class="n">ST7789</span><span class="p">(</span>
<span class="linenos">23</span> <span class="n">spi</span><span class="p">,</span>
<span class="linenos">24</span> <span class="mi">135</span><span class="p">,</span>
<span class="linenos">25</span> <span class="mi">240</span><span class="p">,</span>
<span class="linenos">26</span> <span class="n">reset</span><span class="o">=</span><span class="n">Pin</span><span class="p">(</span><span class="mi">23</span><span class="p">,</span> <span class="n">Pin</span><span class="o">.</span><span class="n">OUT</span><span class="p">),</span>
<span class="linenos">27</span> <span class="n">cs</span><span class="o">=</span><span class="n">Pin</span><span class="p">(</span><span class="mi">5</span><span class="p">,</span> <span class="n">Pin</span><span class="o">.</span><span class="n">OUT</span><span class="p">),</span>
<span class="linenos">28</span> <span class="n">dc</span><span class="o">=</span><span class="n">Pin</span><span class="p">(</span><span class="mi">16</span><span class="p">,</span> <span class="n">Pin</span><span class="o">.</span><span class="n">OUT</span><span class="p">),</span>
<span class="linenos">29</span> <span class="n">backlight</span><span class="o">=</span><span class="n">Pin</span><span class="p">(</span><span class="mi">4</span><span class="p">,</span> <span class="n">Pin</span><span class="o">.</span><span class="n">OUT</span><span class="p">),</span>
<span class="linenos">30</span> <span class="n">rotation</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span>
<span class="linenos">31</span>
<span class="linenos">32</span> <span class="n">tft</span><span class="o">.</span><span class="n">fill</span><span class="p">(</span><span class="n">st7789</span><span class="o">.</span><span class="n">BLACK</span><span class="p">)</span>
<span class="linenos">33</span>
<span class="linenos">34</span> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span>
<span class="linenos">35</span> <span class="n">tft</span><span class="o">.</span><span class="n">line</span><span class="p">(</span>
<span class="linenos">36</span> <span class="n">random</span><span class="o">.</span><span class="n">randint</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">tft</span><span class="o">.</span><span class="n">width</span><span class="p">),</span>
<span class="linenos">37</span> <span class="n">random</span><span class="o">.</span><span class="n">randint</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">tft</span><span class="o">.</span><span class="n">height</span><span class="p">),</span>
<span class="linenos">38</span> <span class="n">random</span><span class="o">.</span><span class="n">randint</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">tft</span><span class="o">.</span><span class="n">width</span><span class="p">),</span>
<span class="linenos">39</span> <span class="n">random</span><span class="o">.</span><span class="n">randint</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">tft</span><span class="o">.</span><span class="n">height</span><span class="p">),</span>
<span class="linenos">40</span> <span class="n">st7789</span><span class="o">.</span><span class="n">color565</span><span class="p">(</span>
<span class="linenos">41</span> <span class="n">random</span><span class="o">.</span><span class="n">getrandbits</span><span class="p">(</span><span class="mi">8</span><span class="p">),</span>
<span class="linenos">42</span> <span class="n">random</span><span class="o">.</span><span class="n">getrandbits</span><span class="p">(</span><span class="mi">8</span><span class="p">),</span>
<span class="linenos">43</span> <span class="n">random</span><span class="o">.</span><span class="n">getrandbits</span><span class="p">(</span><span class="mi">8</span><span class="p">)</span>
<span class="linenos">44</span> <span class="p">)</span>
<span class="linenos">45</span> <span class="p">)</span>
<span class="linenos">46</span>
<span class="linenos">47</span> <span class="n">width</span> <span class="o">=</span> <span class="n">random</span><span class="o">.</span><span class="n">randint</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">tft</span><span class="o">.</span><span class="n">width</span> <span class="o">//</span> <span class="mi">2</span><span class="p">)</span>
<span class="linenos">48</span> <span class="n">height</span> <span class="o">=</span> <span class="n">random</span><span class="o">.</span><span class="n">randint</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">tft</span><span class="o">.</span><span class="n">height</span> <span class="o">//</span> <span class="mi">2</span><span class="p">)</span>
<span class="linenos">49</span> <span class="n">col</span> <span class="o">=</span> <span class="n">random</span><span class="o">.</span><span class="n">randint</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">tft</span><span class="o">.</span><span class="n">width</span> <span class="o">-</span> <span class="n">width</span><span class="p">)</span>
<span class="linenos">50</span> <span class="n">row</span> <span class="o">=</span> <span class="n">random</span><span class="o">.</span><span class="n">randint</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">tft</span><span class="o">.</span><span class="n">height</span> <span class="o">-</span> <span class="n">height</span><span class="p">)</span>
<span class="linenos">51</span> <span class="n">tft</span><span class="o">.</span><span class="n">fill_rect</span><span class="p">(</span>
<span class="linenos">52</span> <span class="n">col</span><span class="p">,</span>
<span class="linenos">53</span> <span class="n">row</span><span class="p">,</span>
<span class="linenos">54</span> <span class="n">width</span><span class="p">,</span>
<span class="linenos">55</span> <span class="n">height</span><span class="p">,</span>
<span class="linenos">56</span> <span class="n">st7789</span><span class="o">.</span><span class="n">color565</span><span class="p">(</span>
<span class="linenos">57</span> <span class="n">random</span><span class="o">.</span><span class="n">getrandbits</span><span class="p">(</span><span class="mi">8</span><span class="p">),</span>
<span class="linenos">58</span> <span class="n">random</span><span class="o">.</span><span class="n">getrandbits</span><span class="p">(</span><span class="mi">8</span><span class="p">),</span>
<span class="linenos">59</span> <span class="n">random</span><span class="o">.</span><span class="n">getrandbits</span><span class="p">(</span><span class="mi">8</span><span class="p">)</span>
<span class="linenos">60</span> <span class="p">)</span>
<span class="linenos">61</span> <span class="p">)</span>
<span class="linenos">62</span>
<span class="linenos">63</span>
<span class="linenos">64</span><span class="n">main</span><span class="p">()</span>
</pre></div>
</div>
</div>
<div class="section" id="ttgo-hello-py">
<h2>ttgo_hello.py<a class="headerlink" href="#ttgo-hello-py" title="Permalink to this headline"></a></h2>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="linenos"> 1</span><span class="sd">&quot;&quot;&quot;</span>
<span class="linenos"> 2</span><span class="sd">ttgo_hello.py</span>
<span class="linenos"> 3</span>
<span class="linenos"> 4</span><span class="sd"> Writes &quot;Hello!&quot; in random colors at random locations on a</span>
<span class="linenos"> 5</span><span class="sd"> LILYGO® TTGO T-Display.</span>
<span class="linenos"> 6</span>
<span class="linenos"> 7</span><span class="sd"> https://www.youtube.com/watch?v=atBa0BYPAAc</span>
<span class="linenos"> 8</span>
<span class="linenos"> 9</span><span class="sd">&quot;&quot;&quot;</span>
<span class="linenos">10</span><span class="kn">import</span> <span class="nn">random</span>
<span class="linenos">11</span><span class="kn">from</span> <span class="nn">machine</span> <span class="kn">import</span> <span class="n">Pin</span><span class="p">,</span> <span class="n">SoftSPI</span>
<span class="linenos">12</span><span class="kn">import</span> <span class="nn">st7789py</span> <span class="k">as</span> <span class="nn">st7789</span>
<span class="linenos">13</span>
<span class="linenos">14</span><span class="c1"># Choose a font</span>
<span class="linenos">15</span>
<span class="linenos">16</span><span class="c1"># from romfonts import vga1_8x8 as font</span>
<span class="linenos">17</span><span class="c1"># from romfonts import vga2_8x8 as font</span>
<span class="linenos">18</span><span class="c1"># from romfonts import vga1_8x16 as font</span>
<span class="linenos">19</span><span class="c1"># from romfonts import vga2_8x16 as font</span>
<span class="linenos">20</span><span class="c1"># from romfonts import vga1_16x16 as font</span>
<span class="linenos">21</span><span class="c1"># from romfonts import vga1_bold_16x16 as font</span>
<span class="linenos">22</span><span class="c1"># from romfonts import vga2_16x16 as font</span>
<span class="linenos">23</span><span class="c1"># from romfonts import vga2_bold_16x16 as font</span>
<span class="linenos">24</span><span class="c1"># from romfonts import vga1_16x32 as font</span>
<span class="linenos">25</span><span class="c1"># from romfonts import vga1_bold_16x32 as font</span>
<span class="linenos">26</span><span class="c1"># from romfonts import vga2_16x32 as font</span>
<span class="linenos">27</span><span class="kn">from</span> <span class="nn">romfonts</span> <span class="kn">import</span> <span class="n">vga2_bold_16x32</span> <span class="k">as</span> <span class="n">font</span>
<span class="linenos">28</span>
<span class="linenos">29</span>
<span class="linenos">30</span><span class="k">def</span> <span class="nf">main</span><span class="p">():</span>
<span class="linenos">31</span> <span class="n">spi</span> <span class="o">=</span> <span class="n">SoftSPI</span><span class="p">(</span>
<span class="linenos">32</span> <span class="n">baudrate</span><span class="o">=</span><span class="mi">20000000</span><span class="p">,</span>
<span class="linenos">33</span> <span class="n">polarity</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
<span class="linenos">34</span> <span class="n">phase</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span>
<span class="linenos">35</span> <span class="n">sck</span><span class="o">=</span><span class="n">Pin</span><span class="p">(</span><span class="mi">18</span><span class="p">),</span>
<span class="linenos">36</span> <span class="n">mosi</span><span class="o">=</span><span class="n">Pin</span><span class="p">(</span><span class="mi">19</span><span class="p">),</span>
<span class="linenos">37</span> <span class="n">miso</span><span class="o">=</span><span class="n">Pin</span><span class="p">(</span><span class="mi">13</span><span class="p">))</span>
<span class="linenos">38</span>
<span class="linenos">39</span> <span class="n">tft</span> <span class="o">=</span> <span class="n">st7789</span><span class="o">.</span><span class="n">ST7789</span><span class="p">(</span>
<span class="linenos">40</span> <span class="n">spi</span><span class="p">,</span>
<span class="linenos">41</span> <span class="mi">135</span><span class="p">,</span>
<span class="linenos">42</span> <span class="mi">240</span><span class="p">,</span>
<span class="linenos">43</span> <span class="n">reset</span><span class="o">=</span><span class="n">Pin</span><span class="p">(</span><span class="mi">23</span><span class="p">,</span> <span class="n">Pin</span><span class="o">.</span><span class="n">OUT</span><span class="p">),</span>
<span class="linenos">44</span> <span class="n">cs</span><span class="o">=</span><span class="n">Pin</span><span class="p">(</span><span class="mi">5</span><span class="p">,</span> <span class="n">Pin</span><span class="o">.</span><span class="n">OUT</span><span class="p">),</span>
<span class="linenos">45</span> <span class="n">dc</span><span class="o">=</span><span class="n">Pin</span><span class="p">(</span><span class="mi">16</span><span class="p">,</span> <span class="n">Pin</span><span class="o">.</span><span class="n">OUT</span><span class="p">),</span>
<span class="linenos">46</span> <span class="n">backlight</span><span class="o">=</span><span class="n">Pin</span><span class="p">(</span><span class="mi">4</span><span class="p">,</span> <span class="n">Pin</span><span class="o">.</span><span class="n">OUT</span><span class="p">),</span>
<span class="linenos">47</span> <span class="n">rotation</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span>
<span class="linenos">48</span>
<span class="linenos">49</span> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span>
<span class="linenos">50</span> <span class="k">for</span> <span class="n">rotation</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">4</span><span class="p">):</span>
<span class="linenos">51</span> <span class="n">tft</span><span class="o">.</span><span class="n">rotation</span><span class="p">(</span><span class="n">rotation</span><span class="p">)</span>
<span class="linenos">52</span> <span class="n">tft</span><span class="o">.</span><span class="n">fill</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
<span class="linenos">53</span> <span class="n">col_max</span> <span class="o">=</span> <span class="n">tft</span><span class="o">.</span><span class="n">width</span> <span class="o">-</span> <span class="n">font</span><span class="o">.</span><span class="n">WIDTH</span><span class="o">*</span><span class="mi">6</span>
<span class="linenos">54</span> <span class="n">row_max</span> <span class="o">=</span> <span class="n">tft</span><span class="o">.</span><span class="n">height</span> <span class="o">-</span> <span class="n">font</span><span class="o">.</span><span class="n">HEIGHT</span>
<span class="linenos">55</span>
<span class="linenos">56</span> <span class="k">for</span> <span class="n">_</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">100</span><span class="p">):</span>
<span class="linenos">57</span> <span class="n">tft</span><span class="o">.</span><span class="n">text</span><span class="p">(</span>
<span class="linenos">58</span> <span class="n">font</span><span class="p">,</span>
<span class="linenos">59</span> <span class="s2">&quot;Hello!&quot;</span><span class="p">,</span>
<span class="linenos">60</span> <span class="n">random</span><span class="o">.</span><span class="n">randint</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">col_max</span><span class="p">),</span>
<span class="linenos">61</span> <span class="n">random</span><span class="o">.</span><span class="n">randint</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">row_max</span><span class="p">),</span>
<span class="linenos">62</span> <span class="n">st7789</span><span class="o">.</span><span class="n">color565</span><span class="p">(</span>
<span class="linenos">63</span> <span class="n">random</span><span class="o">.</span><span class="n">getrandbits</span><span class="p">(</span><span class="mi">8</span><span class="p">),</span>
<span class="linenos">64</span> <span class="n">random</span><span class="o">.</span><span class="n">getrandbits</span><span class="p">(</span><span class="mi">8</span><span class="p">),</span>
<span class="linenos">65</span> <span class="n">random</span><span class="o">.</span><span class="n">getrandbits</span><span class="p">(</span><span class="mi">8</span><span class="p">)),</span>
<span class="linenos">66</span> <span class="n">st7789</span><span class="o">.</span><span class="n">color565</span><span class="p">(</span>
<span class="linenos">67</span> <span class="n">random</span><span class="o">.</span><span class="n">getrandbits</span><span class="p">(</span><span class="mi">8</span><span class="p">),</span>
<span class="linenos">68</span> <span class="n">random</span><span class="o">.</span><span class="n">getrandbits</span><span class="p">(</span><span class="mi">8</span><span class="p">),</span>
<span class="linenos">69</span> <span class="n">random</span><span class="o">.</span><span class="n">getrandbits</span><span class="p">(</span><span class="mi">8</span><span class="p">))</span>
<span class="linenos">70</span> <span class="p">)</span>
<span class="linenos">71</span>
<span class="linenos">72</span>
<span class="linenos">73</span><span class="n">main</span><span class="p">()</span>
</pre></div>
</div>
</div>
<div class="section" id="ttgo-fonts-py">
<h2>ttgo_fonts.py<a class="headerlink" href="#ttgo-fonts-py" title="Permalink to this headline"></a></h2>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="linenos"> 1</span><span class="sd">&quot;&quot;&quot;</span>
<span class="linenos"> 2</span><span class="sd">ttgo_fonts.py</span>
<span class="linenos"> 3</span>
<span class="linenos"> 4</span><span class="sd"> Pages through all characters of four fonts on the LILYGO® TTGO T-Display.</span>
<span class="linenos"> 5</span>
<span class="linenos"> 6</span><span class="sd"> https://www.youtube.com/watch?v=2cnAhEucPD4</span>
<span class="linenos"> 7</span>
<span class="linenos"> 8</span><span class="sd">&quot;&quot;&quot;</span>
<span class="linenos"> 9</span><span class="kn">import</span> <span class="nn">utime</span>
<span class="linenos">10</span><span class="kn">from</span> <span class="nn">machine</span> <span class="kn">import</span> <span class="n">Pin</span><span class="p">,</span> <span class="n">SoftSPI</span>
<span class="linenos">11</span><span class="kn">import</span> <span class="nn">st7789py</span> <span class="k">as</span> <span class="nn">st7789</span>
<span class="linenos">12</span>
<span class="linenos">13</span><span class="c1"># Choose fonts</span>
<span class="linenos">14</span>
<span class="linenos">15</span><span class="c1"># from romfonts import vga1_8x8 as font</span>
<span class="linenos">16</span><span class="kn">from</span> <span class="nn">romfonts</span> <span class="kn">import</span> <span class="n">vga2_8x8</span> <span class="k">as</span> <span class="n">font1</span>
<span class="linenos">17</span><span class="c1"># from romfonts import vga1_8x16 as font</span>
<span class="linenos">18</span><span class="kn">from</span> <span class="nn">romfonts</span> <span class="kn">import</span> <span class="n">vga2_8x16</span> <span class="k">as</span> <span class="n">font2</span>
<span class="linenos">19</span><span class="c1"># from romfonts import vga1_16x16 as font</span>
<span class="linenos">20</span><span class="c1"># from romfonts import vga1_bold_16x16 as font</span>
<span class="linenos">21</span><span class="c1"># from romfonts import vga2_16x16 as font</span>
<span class="linenos">22</span><span class="kn">from</span> <span class="nn">romfonts</span> <span class="kn">import</span> <span class="n">vga2_bold_16x16</span> <span class="k">as</span> <span class="n">font3</span>
<span class="linenos">23</span><span class="c1"># from romfonts import vga1_16x32 as font</span>
<span class="linenos">24</span><span class="c1"># from romfonts import vga1_bold_16x32 as font</span>
<span class="linenos">25</span><span class="c1"># from romfonts import vga2_16x32 as font</span>
<span class="linenos">26</span><span class="kn">from</span> <span class="nn">romfonts</span> <span class="kn">import</span> <span class="n">vga2_bold_16x32</span> <span class="k">as</span> <span class="n">font4</span>
<span class="linenos">27</span>
<span class="linenos">28</span>
<span class="linenos">29</span><span class="k">def</span> <span class="nf">main</span><span class="p">():</span>
<span class="linenos">30</span> <span class="n">spi</span> <span class="o">=</span> <span class="n">SoftSPI</span><span class="p">(</span>
<span class="linenos">31</span> <span class="n">baudrate</span><span class="o">=</span><span class="mi">20000000</span><span class="p">,</span>
<span class="linenos">32</span> <span class="n">polarity</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
<span class="linenos">33</span> <span class="n">phase</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span>
<span class="linenos">34</span> <span class="n">sck</span><span class="o">=</span><span class="n">Pin</span><span class="p">(</span><span class="mi">18</span><span class="p">),</span>
<span class="linenos">35</span> <span class="n">mosi</span><span class="o">=</span><span class="n">Pin</span><span class="p">(</span><span class="mi">19</span><span class="p">),</span>
<span class="linenos">36</span> <span class="n">miso</span><span class="o">=</span><span class="n">Pin</span><span class="p">(</span><span class="mi">13</span><span class="p">))</span>
<span class="linenos">37</span>
<span class="linenos">38</span> <span class="n">tft</span> <span class="o">=</span> <span class="n">st7789</span><span class="o">.</span><span class="n">ST7789</span><span class="p">(</span>
<span class="linenos">39</span> <span class="n">spi</span><span class="p">,</span>
<span class="linenos">40</span> <span class="mi">135</span><span class="p">,</span>
<span class="linenos">41</span> <span class="mi">240</span><span class="p">,</span>
<span class="linenos">42</span> <span class="n">reset</span><span class="o">=</span><span class="n">Pin</span><span class="p">(</span><span class="mi">23</span><span class="p">,</span> <span class="n">Pin</span><span class="o">.</span><span class="n">OUT</span><span class="p">),</span>
<span class="linenos">43</span> <span class="n">cs</span><span class="o">=</span><span class="n">Pin</span><span class="p">(</span><span class="mi">5</span><span class="p">,</span> <span class="n">Pin</span><span class="o">.</span><span class="n">OUT</span><span class="p">),</span>
<span class="linenos">44</span> <span class="n">dc</span><span class="o">=</span><span class="n">Pin</span><span class="p">(</span><span class="mi">16</span><span class="p">,</span> <span class="n">Pin</span><span class="o">.</span><span class="n">OUT</span><span class="p">),</span>
<span class="linenos">45</span> <span class="n">backlight</span><span class="o">=</span><span class="n">Pin</span><span class="p">(</span><span class="mi">4</span><span class="p">,</span> <span class="n">Pin</span><span class="o">.</span><span class="n">OUT</span><span class="p">),</span>
<span class="linenos">46</span> <span class="n">rotation</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span>
<span class="linenos">47</span>
<span class="linenos">48</span> <span class="n">tft</span><span class="o">.</span><span class="n">vscrdef</span><span class="p">(</span><span class="mi">40</span><span class="p">,</span> <span class="mi">240</span><span class="p">,</span> <span class="mi">40</span><span class="p">)</span>
<span class="linenos">49</span>
<span class="linenos">50</span> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span>
<span class="linenos">51</span> <span class="k">for</span> <span class="n">font</span> <span class="ow">in</span> <span class="p">(</span><span class="n">font1</span><span class="p">,</span> <span class="n">font2</span><span class="p">,</span> <span class="n">font3</span><span class="p">,</span> <span class="n">font4</span><span class="p">):</span>
<span class="linenos">52</span> <span class="n">tft</span><span class="o">.</span><span class="n">fill</span><span class="p">(</span><span class="n">st7789</span><span class="o">.</span><span class="n">BLUE</span><span class="p">)</span>
<span class="linenos">53</span> <span class="n">line</span> <span class="o">=</span> <span class="mi">0</span>
<span class="linenos">54</span> <span class="n">col</span> <span class="o">=</span> <span class="mi">0</span>
<span class="linenos">55</span>
<span class="linenos">56</span> <span class="k">for</span> <span class="n">char</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">font</span><span class="o">.</span><span class="n">FIRST</span><span class="p">,</span> <span class="n">font</span><span class="o">.</span><span class="n">LAST</span><span class="p">):</span>
<span class="linenos">57</span> <span class="n">tft</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="n">font</span><span class="p">,</span> <span class="nb">chr</span><span class="p">(</span><span class="n">char</span><span class="p">),</span> <span class="n">col</span><span class="p">,</span> <span class="n">line</span><span class="p">,</span> <span class="n">st7789</span><span class="o">.</span><span class="n">WHITE</span><span class="p">,</span> <span class="n">st7789</span><span class="o">.</span><span class="n">BLUE</span><span class="p">)</span>
<span class="linenos">58</span> <span class="n">col</span> <span class="o">+=</span> <span class="n">font</span><span class="o">.</span><span class="n">WIDTH</span>
<span class="linenos">59</span> <span class="k">if</span> <span class="n">col</span> <span class="o">&gt;</span> <span class="n">tft</span><span class="o">.</span><span class="n">width</span> <span class="o">-</span> <span class="n">font</span><span class="o">.</span><span class="n">WIDTH</span><span class="p">:</span>
<span class="linenos">60</span> <span class="n">col</span> <span class="o">=</span> <span class="mi">0</span>
<span class="linenos">61</span> <span class="n">line</span> <span class="o">+=</span> <span class="n">font</span><span class="o">.</span><span class="n">HEIGHT</span>
<span class="linenos">62</span>
<span class="linenos">63</span> <span class="k">if</span> <span class="n">line</span> <span class="o">&gt;</span> <span class="n">tft</span><span class="o">.</span><span class="n">height</span><span class="o">-</span><span class="n">font</span><span class="o">.</span><span class="n">HEIGHT</span><span class="p">:</span>
<span class="linenos">64</span> <span class="n">utime</span><span class="o">.</span><span class="n">sleep</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span>
<span class="linenos">65</span> <span class="n">tft</span><span class="o">.</span><span class="n">fill</span><span class="p">(</span><span class="n">st7789</span><span class="o">.</span><span class="n">BLUE</span><span class="p">)</span>
<span class="linenos">66</span> <span class="n">line</span> <span class="o">=</span> <span class="mi">0</span>
<span class="linenos">67</span> <span class="n">col</span> <span class="o">=</span> <span class="mi">0</span>
<span class="linenos">68</span>
<span class="linenos">69</span> <span class="n">utime</span><span class="o">.</span><span class="n">sleep</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span>
<span class="linenos">70</span>
<span class="linenos">71</span>
<span class="linenos">72</span><span class="n">main</span><span class="p">()</span>
</pre></div>
</div>
</div>
<div class="section" id="ttgo-scroll-py">
<h2>ttgo_scroll.py<a class="headerlink" href="#ttgo-scroll-py" title="Permalink to this headline"></a></h2>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="linenos"> 1</span><span class="sd">&quot;&quot;&quot;</span>
<span class="linenos"> 2</span><span class="sd">ttgo_fonts.py</span>
<span class="linenos"> 3</span>
<span class="linenos"> 4</span><span class="sd"> Smoothly scrolls all font characters up the screen on the LILYGO® TTGO</span>
<span class="linenos"> 5</span><span class="sd"> T-Display. Only works with fonts with heights that are even multiples of</span>
<span class="linenos"> 6</span><span class="sd"> the screen height, (i.e. 8 or 16 pixels high)</span>
<span class="linenos"> 7</span>
<span class="linenos"> 8</span><span class="sd">&quot;&quot;&quot;</span>
<span class="linenos"> 9</span><span class="kn">import</span> <span class="nn">utime</span>
<span class="linenos">10</span><span class="kn">import</span> <span class="nn">random</span>
<span class="linenos">11</span><span class="kn">from</span> <span class="nn">machine</span> <span class="kn">import</span> <span class="n">Pin</span><span class="p">,</span> <span class="n">SoftSPI</span>
<span class="linenos">12</span><span class="kn">import</span> <span class="nn">st7789py</span> <span class="k">as</span> <span class="nn">st7789</span>
<span class="linenos">13</span>
<span class="linenos">14</span><span class="c1"># choose a font</span>
<span class="linenos">15</span>
<span class="linenos">16</span><span class="c1"># from romfonts import vga1_8x8 as font</span>
<span class="linenos">17</span><span class="c1"># from romfonts import vga2_8x8 as font</span>
<span class="linenos">18</span><span class="c1"># from romfonts import vga1_8x16 as font</span>
<span class="linenos">19</span><span class="c1"># from romfonts import vga2_8x16 as font</span>
<span class="linenos">20</span><span class="c1"># from romfonts import vga1_16x16 as font</span>
<span class="linenos">21</span><span class="c1"># from romfonts import vga1_bold_16x16 as font</span>
<span class="linenos">22</span><span class="c1"># from romfonts import vga2_16x16 as font</span>
<span class="linenos">23</span><span class="kn">from</span> <span class="nn">romfonts</span> <span class="kn">import</span> <span class="n">vga2_bold_16x16</span> <span class="k">as</span> <span class="n">font</span>
<span class="linenos">24</span>
<span class="linenos">25</span>
<span class="linenos">26</span><span class="k">def</span> <span class="nf">main</span><span class="p">():</span>
<span class="linenos">27</span> <span class="n">spi</span> <span class="o">=</span> <span class="n">SoftSPI</span><span class="p">(</span>
<span class="linenos">28</span> <span class="n">baudrate</span><span class="o">=</span><span class="mi">20000000</span><span class="p">,</span>
<span class="linenos">29</span> <span class="n">polarity</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
<span class="linenos">30</span> <span class="n">phase</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span>
<span class="linenos">31</span> <span class="n">sck</span><span class="o">=</span><span class="n">Pin</span><span class="p">(</span><span class="mi">18</span><span class="p">),</span>
<span class="linenos">32</span> <span class="n">mosi</span><span class="o">=</span><span class="n">Pin</span><span class="p">(</span><span class="mi">19</span><span class="p">),</span>
<span class="linenos">33</span> <span class="n">miso</span><span class="o">=</span><span class="n">Pin</span><span class="p">(</span><span class="mi">13</span><span class="p">))</span>
<span class="linenos">34</span>
<span class="linenos">35</span> <span class="n">tft</span> <span class="o">=</span> <span class="n">st7789</span><span class="o">.</span><span class="n">ST7789</span><span class="p">(</span>
<span class="linenos">36</span> <span class="n">spi</span><span class="p">,</span>
<span class="linenos">37</span> <span class="mi">135</span><span class="p">,</span>
<span class="linenos">38</span> <span class="mi">240</span><span class="p">,</span>
<span class="linenos">39</span> <span class="n">reset</span><span class="o">=</span><span class="n">Pin</span><span class="p">(</span><span class="mi">23</span><span class="p">,</span> <span class="n">Pin</span><span class="o">.</span><span class="n">OUT</span><span class="p">),</span>
<span class="linenos">40</span> <span class="n">cs</span><span class="o">=</span><span class="n">Pin</span><span class="p">(</span><span class="mi">5</span><span class="p">,</span> <span class="n">Pin</span><span class="o">.</span><span class="n">OUT</span><span class="p">),</span>
<span class="linenos">41</span> <span class="n">dc</span><span class="o">=</span><span class="n">Pin</span><span class="p">(</span><span class="mi">16</span><span class="p">,</span> <span class="n">Pin</span><span class="o">.</span><span class="n">OUT</span><span class="p">),</span>
<span class="linenos">42</span> <span class="n">backlight</span><span class="o">=</span><span class="n">Pin</span><span class="p">(</span><span class="mi">4</span><span class="p">,</span> <span class="n">Pin</span><span class="o">.</span><span class="n">OUT</span><span class="p">),</span>
<span class="linenos">43</span> <span class="n">rotation</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span>
<span class="linenos">44</span>
<span class="linenos">45</span> <span class="n">last_line</span> <span class="o">=</span> <span class="n">tft</span><span class="o">.</span><span class="n">height</span> <span class="o">-</span> <span class="n">font</span><span class="o">.</span><span class="n">HEIGHT</span>
<span class="linenos">46</span> <span class="n">tfa</span> <span class="o">=</span> <span class="mi">40</span>
<span class="linenos">47</span> <span class="n">tfb</span> <span class="o">=</span> <span class="mi">40</span>
<span class="linenos">48</span> <span class="n">tft</span><span class="o">.</span><span class="n">vscrdef</span><span class="p">(</span><span class="n">tfa</span><span class="p">,</span> <span class="mi">240</span><span class="p">,</span> <span class="n">tfb</span><span class="p">)</span>
<span class="linenos">49</span>
<span class="linenos">50</span> <span class="n">tft</span><span class="o">.</span><span class="n">fill</span><span class="p">(</span><span class="n">st7789</span><span class="o">.</span><span class="n">BLUE</span><span class="p">)</span>
<span class="linenos">51</span> <span class="n">scroll</span> <span class="o">=</span> <span class="mi">0</span>
<span class="linenos">52</span> <span class="n">character</span> <span class="o">=</span> <span class="mi">0</span>
<span class="linenos">53</span> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span>
<span class="linenos">54</span> <span class="n">tft</span><span class="o">.</span><span class="n">fill_rect</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">scroll</span><span class="p">,</span> <span class="n">tft</span><span class="o">.</span><span class="n">width</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="n">st7789</span><span class="o">.</span><span class="n">BLUE</span><span class="p">)</span>
<span class="linenos">55</span>
<span class="linenos">56</span> <span class="k">if</span> <span class="n">scroll</span> <span class="o">%</span> <span class="n">font</span><span class="o">.</span><span class="n">HEIGHT</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
<span class="linenos">57</span> <span class="n">tft</span><span class="o">.</span><span class="n">text</span><span class="p">(</span>
<span class="linenos">58</span> <span class="n">font</span><span class="p">,</span>
<span class="linenos">59</span> <span class="s1">&#39;</span><span class="se">\\</span><span class="s1">x</span><span class="si">{:02x}</span><span class="s1">= </span><span class="si">{:s}</span><span class="s1"> &#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">character</span><span class="p">,</span> <span class="nb">chr</span><span class="p">(</span><span class="n">character</span><span class="p">)),</span>
<span class="linenos">60</span> <span class="mi">0</span><span class="p">,</span>
<span class="linenos">61</span> <span class="p">(</span><span class="n">scroll</span> <span class="o">+</span> <span class="n">last_line</span><span class="p">)</span> <span class="o">%</span> <span class="n">tft</span><span class="o">.</span><span class="n">height</span><span class="p">,</span>
<span class="linenos">62</span> <span class="n">st7789</span><span class="o">.</span><span class="n">WHITE</span><span class="p">,</span>
<span class="linenos">63</span> <span class="n">st7789</span><span class="o">.</span><span class="n">BLUE</span><span class="p">)</span>
<span class="linenos">64</span>
<span class="linenos">65</span> <span class="n">character</span> <span class="o">=</span> <span class="n">character</span> <span class="o">+</span> <span class="mi">1</span> <span class="k">if</span> <span class="n">character</span> <span class="o">&lt;</span> <span class="mi">256</span> <span class="k">else</span> <span class="mi">0</span>
<span class="linenos">66</span>
<span class="linenos">67</span> <span class="n">tft</span><span class="o">.</span><span class="n">vscsad</span><span class="p">(</span><span class="n">scroll</span> <span class="o">+</span> <span class="n">tfa</span><span class="p">)</span>
<span class="linenos">68</span> <span class="n">scroll</span> <span class="o">+=</span> <span class="mi">1</span>
<span class="linenos">69</span>
<span class="linenos">70</span> <span class="k">if</span> <span class="n">scroll</span> <span class="o">==</span> <span class="n">tft</span><span class="o">.</span><span class="n">height</span><span class="p">:</span>
<span class="linenos">71</span> <span class="n">scroll</span> <span class="o">=</span> <span class="mi">0</span>
<span class="linenos">72</span>
<span class="linenos">73</span> <span class="n">utime</span><span class="o">.</span><span class="n">sleep</span><span class="p">(</span><span class="mf">0.01</span><span class="p">)</span>
<span class="linenos">74</span>
<span class="linenos">75</span>
<span class="linenos">76</span><span class="n">main</span><span class="p">()</span>
</pre></div>
</div>
</div>
<div class="section" id="toasters-py">
<h2>toasters.py<a class="headerlink" href="#toasters-py" title="Permalink to this headline"></a></h2>
<p>Flying toasters sprite demo using bitmaps created from spritesheet using
ImageMagicks convert and imgtobitmap.py utility. See the maketoast script in the utils directory for details.</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="linenos"> 1</span><span class="sd">&quot;&quot;&quot;</span>
<span class="linenos"> 2</span><span class="sd">toasters.py</span>
<span class="linenos"> 3</span>
<span class="linenos"> 4</span><span class="sd"> An example using bitmap to draw sprites on the display.</span>
<span class="linenos"> 5</span>
<span class="linenos"> 6</span><span class="sd"> Spritesheet from CircuitPython_Flying_Toasters</span>
<span class="linenos"> 7</span><span class="sd"> https://learn.adafruit.com/circuitpython-sprite-animation-pendant-mario-clouds-flying-toasters</span>
<span class="linenos"> 8</span>
<span class="linenos"> 9</span><span class="sd">&quot;&quot;&quot;</span>
<span class="linenos">10</span>
<span class="linenos">11</span><span class="kn">import</span> <span class="nn">random</span>
<span class="linenos">12</span><span class="kn">from</span> <span class="nn">machine</span> <span class="kn">import</span> <span class="n">Pin</span><span class="p">,</span> <span class="n">SoftSPI</span>
<span class="linenos">13</span><span class="kn">import</span> <span class="nn">st7789py</span> <span class="k">as</span> <span class="nn">st7789</span>
<span class="linenos">14</span><span class="kn">import</span> <span class="nn">t1</span><span class="o">,</span> <span class="nn">t2</span><span class="o">,</span> <span class="nn">t3</span><span class="o">,</span> <span class="nn">t4</span><span class="o">,</span> <span class="nn">t5</span>
<span class="linenos">15</span>
<span class="linenos">16</span><span class="n">TOASTERS</span> <span class="o">=</span> <span class="p">[</span><span class="n">t1</span><span class="p">,</span> <span class="n">t2</span><span class="p">,</span> <span class="n">t3</span><span class="p">,</span> <span class="n">t4</span><span class="p">]</span>
<span class="linenos">17</span><span class="n">TOAST</span> <span class="o">=</span> <span class="p">[</span><span class="n">t5</span><span class="p">]</span>
<span class="linenos">18</span>
<span class="linenos">19</span>
<span class="linenos">20</span><span class="k">class</span> <span class="nc">toast</span><span class="p">():</span>
<span class="linenos">21</span> <span class="sd">&#39;&#39;&#39;</span>
<span class="linenos">22</span><span class="sd"> toast class to keep track of a sprites locaton and step</span>
<span class="linenos">23</span><span class="sd"> &#39;&#39;&#39;</span>
<span class="linenos">24</span> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sprites</span><span class="p">,</span> <span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">):</span>
<span class="linenos">25</span> <span class="bp">self</span><span class="o">.</span><span class="n">sprites</span> <span class="o">=</span> <span class="n">sprites</span>
<span class="linenos">26</span> <span class="bp">self</span><span class="o">.</span><span class="n">steps</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">sprites</span><span class="p">)</span>
<span class="linenos">27</span> <span class="bp">self</span><span class="o">.</span><span class="n">x</span> <span class="o">=</span> <span class="n">x</span>
<span class="linenos">28</span> <span class="bp">self</span><span class="o">.</span><span class="n">y</span> <span class="o">=</span> <span class="n">y</span>
<span class="linenos">29</span> <span class="bp">self</span><span class="o">.</span><span class="n">step</span> <span class="o">=</span> <span class="n">random</span><span class="o">.</span><span class="n">randint</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">steps</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span>
<span class="linenos">30</span> <span class="bp">self</span><span class="o">.</span><span class="n">speed</span> <span class="o">=</span> <span class="n">random</span><span class="o">.</span><span class="n">randint</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span>
<span class="linenos">31</span>
<span class="linenos">32</span> <span class="k">def</span> <span class="nf">move</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="linenos">33</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">x</span> <span class="o">&lt;=</span> <span class="mi">0</span><span class="p">:</span>
<span class="linenos">34</span> <span class="bp">self</span><span class="o">.</span><span class="n">speed</span> <span class="o">=</span> <span class="n">random</span><span class="o">.</span><span class="n">randint</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span>
<span class="linenos">35</span> <span class="bp">self</span><span class="o">.</span><span class="n">x</span> <span class="o">=</span> <span class="mi">135</span> <span class="o">-</span> <span class="mi">64</span>
<span class="linenos">36</span>
<span class="linenos">37</span> <span class="bp">self</span><span class="o">.</span><span class="n">step</span> <span class="o">+=</span> <span class="mi">1</span>
<span class="linenos">38</span> <span class="bp">self</span><span class="o">.</span><span class="n">step</span> <span class="o">%=</span> <span class="bp">self</span><span class="o">.</span><span class="n">steps</span>
<span class="linenos">39</span> <span class="bp">self</span><span class="o">.</span><span class="n">x</span> <span class="o">-=</span> <span class="bp">self</span><span class="o">.</span><span class="n">speed</span>
<span class="linenos">40</span>
<span class="linenos">41</span>
<span class="linenos">42</span><span class="k">def</span> <span class="nf">main</span><span class="p">():</span>
<span class="linenos">43</span> <span class="sd">&quot;&quot;&quot;</span>
<span class="linenos">44</span><span class="sd"> Initialize the display and draw flying toasters and toast</span>
<span class="linenos">45</span><span class="sd"> &quot;&quot;&quot;</span>
<span class="linenos">46</span> <span class="n">spi</span> <span class="o">=</span> <span class="n">SoftSPI</span><span class="p">(</span>
<span class="linenos">47</span> <span class="n">baudrate</span><span class="o">=</span><span class="mi">20000000</span><span class="p">,</span>
<span class="linenos">48</span> <span class="n">polarity</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
<span class="linenos">49</span> <span class="n">phase</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span>
<span class="linenos">50</span> <span class="n">sck</span><span class="o">=</span><span class="n">Pin</span><span class="p">(</span><span class="mi">18</span><span class="p">),</span>
<span class="linenos">51</span> <span class="n">mosi</span><span class="o">=</span><span class="n">Pin</span><span class="p">(</span><span class="mi">19</span><span class="p">),</span>
<span class="linenos">52</span> <span class="n">miso</span><span class="o">=</span><span class="n">Pin</span><span class="p">(</span><span class="mi">13</span><span class="p">))</span>
<span class="linenos">53</span>
<span class="linenos">54</span> <span class="n">tft</span> <span class="o">=</span> <span class="n">st7789</span><span class="o">.</span><span class="n">ST7789</span><span class="p">(</span>
<span class="linenos">55</span> <span class="n">spi</span><span class="p">,</span>
<span class="linenos">56</span> <span class="mi">135</span><span class="p">,</span>
<span class="linenos">57</span> <span class="mi">240</span><span class="p">,</span>
<span class="linenos">58</span> <span class="n">reset</span><span class="o">=</span><span class="n">Pin</span><span class="p">(</span><span class="mi">23</span><span class="p">,</span> <span class="n">Pin</span><span class="o">.</span><span class="n">OUT</span><span class="p">),</span>
<span class="linenos">59</span> <span class="n">cs</span><span class="o">=</span><span class="n">Pin</span><span class="p">(</span><span class="mi">5</span><span class="p">,</span> <span class="n">Pin</span><span class="o">.</span><span class="n">OUT</span><span class="p">),</span>
<span class="linenos">60</span> <span class="n">dc</span><span class="o">=</span><span class="n">Pin</span><span class="p">(</span><span class="mi">16</span><span class="p">,</span> <span class="n">Pin</span><span class="o">.</span><span class="n">OUT</span><span class="p">),</span>
<span class="linenos">61</span> <span class="n">backlight</span><span class="o">=</span><span class="n">Pin</span><span class="p">(</span><span class="mi">4</span><span class="p">,</span> <span class="n">Pin</span><span class="o">.</span><span class="n">OUT</span><span class="p">),</span>
<span class="linenos">62</span> <span class="n">rotation</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span>
<span class="linenos">63</span>
<span class="linenos">64</span> <span class="n">tft</span><span class="o">.</span><span class="n">fill</span><span class="p">(</span><span class="n">st7789</span><span class="o">.</span><span class="n">BLACK</span><span class="p">)</span>
<span class="linenos">65</span> <span class="c1"># create toast spites in random positions</span>
<span class="linenos">66</span> <span class="n">sprites</span> <span class="o">=</span> <span class="p">[</span>
<span class="linenos">67</span> <span class="n">toast</span><span class="p">(</span><span class="n">TOASTERS</span><span class="p">,</span> <span class="mi">135</span><span class="o">-</span><span class="mi">64</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span>
<span class="linenos">68</span> <span class="n">toast</span><span class="p">(</span><span class="n">TOAST</span><span class="p">,</span> <span class="mi">135</span><span class="o">-</span><span class="mi">64</span><span class="o">*</span><span class="mi">2</span><span class="p">,</span> <span class="mi">80</span><span class="p">),</span>
<span class="linenos">69</span> <span class="n">toast</span><span class="p">(</span><span class="n">TOASTERS</span><span class="p">,</span> <span class="mi">135</span><span class="o">-</span><span class="mi">64</span><span class="o">*</span><span class="mi">4</span><span class="p">,</span> <span class="mi">160</span><span class="p">)</span>
<span class="linenos">70</span> <span class="p">]</span>
<span class="linenos">71</span>
<span class="linenos">72</span> <span class="c1"># move and draw sprites</span>
<span class="linenos">73</span> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span>
<span class="linenos">74</span> <span class="k">for</span> <span class="n">man</span> <span class="ow">in</span> <span class="n">sprites</span><span class="p">:</span>
<span class="linenos">75</span> <span class="n">bitmap</span> <span class="o">=</span> <span class="n">man</span><span class="o">.</span><span class="n">sprites</span><span class="p">[</span><span class="n">man</span><span class="o">.</span><span class="n">step</span><span class="p">]</span>
<span class="linenos">76</span> <span class="n">tft</span><span class="o">.</span><span class="n">fill_rect</span><span class="p">(</span>
<span class="linenos">77</span> <span class="n">man</span><span class="o">.</span><span class="n">x</span><span class="o">+</span><span class="n">bitmap</span><span class="o">.</span><span class="n">WIDTH</span><span class="o">-</span><span class="n">man</span><span class="o">.</span><span class="n">speed</span><span class="p">,</span>
<span class="linenos">78</span> <span class="n">man</span><span class="o">.</span><span class="n">y</span><span class="p">,</span>
<span class="linenos">79</span> <span class="n">man</span><span class="o">.</span><span class="n">speed</span><span class="p">,</span>
<span class="linenos">80</span> <span class="n">bitmap</span><span class="o">.</span><span class="n">HEIGHT</span><span class="p">,</span>
<span class="linenos">81</span> <span class="n">st7789</span><span class="o">.</span><span class="n">BLACK</span><span class="p">)</span>
<span class="linenos">82</span>
<span class="linenos">83</span> <span class="n">man</span><span class="o">.</span><span class="n">move</span><span class="p">()</span>
<span class="linenos">84</span>
<span class="linenos">85</span> <span class="k">if</span> <span class="n">man</span><span class="o">.</span><span class="n">x</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
<span class="linenos">86</span> <span class="n">tft</span><span class="o">.</span><span class="n">bitmap</span><span class="p">(</span><span class="n">bitmap</span><span class="p">,</span> <span class="n">man</span><span class="o">.</span><span class="n">x</span><span class="p">,</span> <span class="n">man</span><span class="o">.</span><span class="n">y</span><span class="p">)</span>
<span class="linenos">87</span> <span class="k">else</span><span class="p">:</span>
<span class="linenos">88</span> <span class="n">tft</span><span class="o">.</span><span class="n">fill_rect</span><span class="p">(</span>
<span class="linenos">89</span> <span class="mi">0</span><span class="p">,</span>
<span class="linenos">90</span> <span class="n">man</span><span class="o">.</span><span class="n">y</span><span class="p">,</span>
<span class="linenos">91</span> <span class="n">bitmap</span><span class="o">.</span><span class="n">WIDTH</span><span class="p">,</span>
<span class="linenos">92</span> <span class="n">bitmap</span><span class="o">.</span><span class="n">HEIGHT</span><span class="p">,</span>
<span class="linenos">93</span> <span class="n">st7789</span><span class="o">.</span><span class="n">BLACK</span><span class="p">)</span>
<span class="linenos">94</span>
<span class="linenos">95</span>
<span class="linenos">96</span><span class="n">main</span><span class="p">()</span>
</pre></div>
</div>
</div>
<div class="section" id="chango-py">
<h2>chango.py<a class="headerlink" href="#chango-py" title="Permalink to this headline"></a></h2>
<p>Test for font2bitmap converter for the driver.
See the font2bitmap program in the utils directory.</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="linenos"> 1</span><span class="sd">&quot;&quot;&quot;</span>
<span class="linenos"> 2</span><span class="sd">chango.py</span>
<span class="linenos"> 3</span>
<span class="linenos"> 4</span><span class="sd"> Test for font2bitmap converter for the driver.</span>
<span class="linenos"> 5</span><span class="sd"> See the font2bitmap program in the utils directory.</span>
<span class="linenos"> 6</span><span class="sd">&quot;&quot;&quot;</span>
<span class="linenos"> 7</span>
<span class="linenos"> 8</span><span class="kn">from</span> <span class="nn">machine</span> <span class="kn">import</span> <span class="n">Pin</span><span class="p">,</span> <span class="n">SoftSPI</span>
<span class="linenos"> 9</span><span class="kn">import</span> <span class="nn">st7789py</span> <span class="k">as</span> <span class="nn">st7789</span>
<span class="linenos">10</span><span class="kn">import</span> <span class="nn">gc</span>
<span class="linenos">11</span><span class="kn">from</span> <span class="nn">truetype</span> <span class="kn">import</span> <span class="n">chango_16</span> <span class="k">as</span> <span class="n">font_16</span>
<span class="linenos">12</span><span class="kn">from</span> <span class="nn">truetype</span> <span class="kn">import</span> <span class="n">chango_32</span> <span class="k">as</span> <span class="n">font_32</span>
<span class="linenos">13</span><span class="kn">from</span> <span class="nn">truetype</span> <span class="kn">import</span> <span class="n">chango_64</span> <span class="k">as</span> <span class="n">font_64</span>
<span class="linenos">14</span>
<span class="linenos">15</span><span class="n">gc</span><span class="o">.</span><span class="n">collect</span><span class="p">()</span>
<span class="linenos">16</span>
<span class="linenos">17</span>
<span class="linenos">18</span><span class="k">def</span> <span class="nf">main</span><span class="p">():</span>
<span class="linenos">19</span> <span class="c1"># enable display and clear screen</span>
<span class="linenos">20</span> <span class="n">spi</span> <span class="o">=</span> <span class="n">SoftSPI</span><span class="p">(</span>
<span class="linenos">21</span> <span class="n">baudrate</span><span class="o">=</span><span class="mi">20000000</span><span class="p">,</span>
<span class="linenos">22</span> <span class="n">polarity</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
<span class="linenos">23</span> <span class="n">phase</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span>
<span class="linenos">24</span> <span class="n">sck</span><span class="o">=</span><span class="n">Pin</span><span class="p">(</span><span class="mi">18</span><span class="p">),</span>
<span class="linenos">25</span> <span class="n">mosi</span><span class="o">=</span><span class="n">Pin</span><span class="p">(</span><span class="mi">19</span><span class="p">),</span>
<span class="linenos">26</span> <span class="n">miso</span><span class="o">=</span><span class="n">Pin</span><span class="p">(</span><span class="mi">13</span><span class="p">))</span>
<span class="linenos">27</span>
<span class="linenos">28</span> <span class="n">tft</span> <span class="o">=</span> <span class="n">st7789</span><span class="o">.</span><span class="n">ST7789</span><span class="p">(</span>
<span class="linenos">29</span> <span class="n">spi</span><span class="p">,</span>
<span class="linenos">30</span> <span class="mi">135</span><span class="p">,</span>
<span class="linenos">31</span> <span class="mi">240</span><span class="p">,</span>
<span class="linenos">32</span> <span class="n">reset</span><span class="o">=</span><span class="n">Pin</span><span class="p">(</span><span class="mi">23</span><span class="p">,</span> <span class="n">Pin</span><span class="o">.</span><span class="n">OUT</span><span class="p">),</span>
<span class="linenos">33</span> <span class="n">cs</span><span class="o">=</span><span class="n">Pin</span><span class="p">(</span><span class="mi">5</span><span class="p">,</span> <span class="n">Pin</span><span class="o">.</span><span class="n">OUT</span><span class="p">),</span>
<span class="linenos">34</span> <span class="n">dc</span><span class="o">=</span><span class="n">Pin</span><span class="p">(</span><span class="mi">16</span><span class="p">,</span> <span class="n">Pin</span><span class="o">.</span><span class="n">OUT</span><span class="p">),</span>
<span class="linenos">35</span> <span class="n">backlight</span><span class="o">=</span><span class="n">Pin</span><span class="p">(</span><span class="mi">4</span><span class="p">,</span> <span class="n">Pin</span><span class="o">.</span><span class="n">OUT</span><span class="p">),</span>
<span class="linenos">36</span> <span class="n">rotation</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
<span class="linenos">37</span>
<span class="linenos">38</span> <span class="n">tft</span><span class="o">.</span><span class="n">fill</span><span class="p">(</span><span class="n">st7789</span><span class="o">.</span><span class="n">BLACK</span><span class="p">)</span>
<span class="linenos">39</span>
<span class="linenos">40</span> <span class="n">row</span> <span class="o">=</span> <span class="mi">0</span>
<span class="linenos">41</span> <span class="n">tft</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">font_16</span><span class="p">,</span> <span class="s2">&quot;abcdefghijklmnopqrst&quot;</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">row</span><span class="p">,</span> <span class="n">st7789</span><span class="o">.</span><span class="n">RED</span><span class="p">)</span>
<span class="linenos">42</span> <span class="n">row</span> <span class="o">+=</span> <span class="n">font_16</span><span class="o">.</span><span class="n">HEIGHT</span>
<span class="linenos">43</span>
<span class="linenos">44</span> <span class="n">tft</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">font_32</span><span class="p">,</span> <span class="s2">&quot;abcdefghij&quot;</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">row</span><span class="p">,</span> <span class="n">st7789</span><span class="o">.</span><span class="n">GREEN</span><span class="p">)</span>
<span class="linenos">45</span> <span class="n">row</span> <span class="o">+=</span> <span class="n">font_32</span><span class="o">.</span><span class="n">HEIGHT</span>
<span class="linenos">46</span>
<span class="linenos">47</span> <span class="n">tft</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">font_64</span><span class="p">,</span> <span class="s2">&quot;abcd&quot;</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">row</span><span class="p">,</span> <span class="n">st7789</span><span class="o">.</span><span class="n">BLUE</span><span class="p">)</span>
<span class="linenos">48</span> <span class="n">row</span> <span class="o">+=</span> <span class="n">font_64</span><span class="o">.</span><span class="n">HEIGHT</span>
<span class="linenos">49</span>
<span class="linenos">50</span>
<span class="linenos">51</span><span class="n">main</span><span class="p">()</span>
</pre></div>
</div>
</div>
<div class="section" id="noto-fonts-py">
<h2>noto_fonts.py<a class="headerlink" href="#noto-fonts-py" title="Permalink to this headline"></a></h2>
<p>Test for font2bitmap converter for the driver.
See the font2bitmap program in the utils directory.</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="linenos"> 1</span><span class="sd">&quot;&quot;&quot;</span>
<span class="linenos"> 2</span><span class="sd">noto_fonts Writes the names of three Noto fonts centered on the display</span>
<span class="linenos"> 3</span><span class="sd"> using the font. The fonts were converted from True Type fonts using</span>
<span class="linenos"> 4</span><span class="sd"> the font2bitmap utility.</span>
<span class="linenos"> 5</span><span class="sd">&quot;&quot;&quot;</span>
<span class="linenos"> 6</span>
<span class="linenos"> 7</span><span class="kn">from</span> <span class="nn">machine</span> <span class="kn">import</span> <span class="n">SoftSPI</span><span class="p">,</span> <span class="n">Pin</span>
<span class="linenos"> 8</span><span class="kn">import</span> <span class="nn">st7789py</span> <span class="k">as</span> <span class="nn">st7789</span>
<span class="linenos"> 9</span>
<span class="linenos">10</span><span class="kn">from</span> <span class="nn">truetype</span> <span class="kn">import</span> <span class="n">NotoSans_32</span> <span class="k">as</span> <span class="n">noto_sans</span>
<span class="linenos">11</span><span class="kn">from</span> <span class="nn">truetype</span> <span class="kn">import</span> <span class="n">NotoSerif_32</span> <span class="k">as</span> <span class="n">noto_serif</span>
<span class="linenos">12</span><span class="kn">from</span> <span class="nn">truetype</span> <span class="kn">import</span> <span class="n">NotoSansMono_32</span> <span class="k">as</span> <span class="n">noto_mono</span>
<span class="linenos">13</span>
<span class="linenos">14</span>
<span class="linenos">15</span><span class="k">def</span> <span class="nf">main</span><span class="p">():</span>
<span class="linenos">16</span>
<span class="linenos">17</span> <span class="k">def</span> <span class="nf">center</span><span class="p">(</span><span class="n">font</span><span class="p">,</span> <span class="n">string</span><span class="p">,</span> <span class="n">row</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="n">st7789</span><span class="o">.</span><span class="n">WHITE</span><span class="p">):</span>
<span class="linenos">18</span> <span class="n">screen</span> <span class="o">=</span> <span class="n">tft</span><span class="o">.</span><span class="n">width</span> <span class="c1"># get screen width</span>
<span class="linenos">19</span> <span class="n">width</span> <span class="o">=</span> <span class="n">tft</span><span class="o">.</span><span class="n">write_width</span><span class="p">(</span><span class="n">font</span><span class="p">,</span> <span class="n">string</span><span class="p">)</span> <span class="c1"># get the width of the string</span>
<span class="linenos">20</span> <span class="k">if</span> <span class="n">width</span> <span class="ow">and</span> <span class="n">width</span> <span class="o">&lt;</span> <span class="n">screen</span><span class="p">:</span> <span class="c1"># if the string &lt; display</span>
<span class="linenos">21</span> <span class="n">col</span> <span class="o">=</span> <span class="n">tft</span><span class="o">.</span><span class="n">width</span> <span class="o">//</span> <span class="mi">2</span> <span class="o">-</span> <span class="n">width</span> <span class="o">//</span> <span class="mi">2</span> <span class="c1"># find the column to center</span>
<span class="linenos">22</span> <span class="k">else</span><span class="p">:</span> <span class="c1"># otherwise</span>
<span class="linenos">23</span> <span class="n">col</span> <span class="o">=</span> <span class="mi">0</span> <span class="c1"># left justify</span>
<span class="linenos">24</span>
<span class="linenos">25</span> <span class="n">tft</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">font</span><span class="p">,</span> <span class="n">string</span><span class="p">,</span> <span class="n">col</span><span class="p">,</span> <span class="n">row</span><span class="p">,</span> <span class="n">color</span><span class="p">)</span> <span class="c1"># and write the string</span>
<span class="linenos">26</span>
<span class="linenos">27</span> <span class="k">try</span><span class="p">:</span>
<span class="linenos">28</span> <span class="n">spi</span> <span class="o">=</span> <span class="n">SoftSPI</span><span class="p">(</span>
<span class="linenos">29</span> <span class="n">baudrate</span><span class="o">=</span><span class="mi">20000000</span><span class="p">,</span>
<span class="linenos">30</span> <span class="n">polarity</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
<span class="linenos">31</span> <span class="n">phase</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span>
<span class="linenos">32</span> <span class="n">sck</span><span class="o">=</span><span class="n">Pin</span><span class="p">(</span><span class="mi">18</span><span class="p">),</span>
<span class="linenos">33</span> <span class="n">mosi</span><span class="o">=</span><span class="n">Pin</span><span class="p">(</span><span class="mi">19</span><span class="p">),</span>
<span class="linenos">34</span> <span class="n">miso</span><span class="o">=</span><span class="n">Pin</span><span class="p">(</span><span class="mi">13</span><span class="p">))</span>
<span class="linenos">35</span>
<span class="linenos">36</span> <span class="n">tft</span> <span class="o">=</span> <span class="n">st7789</span><span class="o">.</span><span class="n">ST7789</span><span class="p">(</span>
<span class="linenos">37</span> <span class="n">spi</span><span class="p">,</span>
<span class="linenos">38</span> <span class="mi">135</span><span class="p">,</span>
<span class="linenos">39</span> <span class="mi">240</span><span class="p">,</span>
<span class="linenos">40</span> <span class="n">reset</span><span class="o">=</span><span class="n">Pin</span><span class="p">(</span><span class="mi">23</span><span class="p">,</span> <span class="n">Pin</span><span class="o">.</span><span class="n">OUT</span><span class="p">),</span>
<span class="linenos">41</span> <span class="n">cs</span><span class="o">=</span><span class="n">Pin</span><span class="p">(</span><span class="mi">5</span><span class="p">,</span> <span class="n">Pin</span><span class="o">.</span><span class="n">OUT</span><span class="p">),</span>
<span class="linenos">42</span> <span class="n">dc</span><span class="o">=</span><span class="n">Pin</span><span class="p">(</span><span class="mi">16</span><span class="p">,</span> <span class="n">Pin</span><span class="o">.</span><span class="n">OUT</span><span class="p">),</span>
<span class="linenos">43</span> <span class="n">backlight</span><span class="o">=</span><span class="n">Pin</span><span class="p">(</span><span class="mi">4</span><span class="p">,</span> <span class="n">Pin</span><span class="o">.</span><span class="n">OUT</span><span class="p">),</span>
<span class="linenos">44</span> <span class="n">rotation</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
<span class="linenos">45</span>
<span class="linenos">46</span> <span class="c1"># enable display and clear screen</span>
<span class="linenos">47</span> <span class="n">tft</span><span class="o">.</span><span class="n">fill</span><span class="p">(</span><span class="n">st7789</span><span class="o">.</span><span class="n">BLACK</span><span class="p">)</span>
<span class="linenos">48</span>
<span class="linenos">49</span> <span class="n">row</span> <span class="o">=</span> <span class="mi">16</span>
<span class="linenos">50</span>
<span class="linenos">51</span> <span class="c1"># center the name of the first font, using the font</span>
<span class="linenos">52</span> <span class="n">center</span><span class="p">(</span><span class="n">noto_sans</span><span class="p">,</span> <span class="s2">&quot;NotoSans&quot;</span><span class="p">,</span> <span class="n">row</span><span class="p">,</span> <span class="n">st7789</span><span class="o">.</span><span class="n">RED</span><span class="p">)</span>
<span class="linenos">53</span> <span class="n">row</span> <span class="o">+=</span> <span class="n">noto_sans</span><span class="o">.</span><span class="n">HEIGHT</span>
<span class="linenos">54</span>
<span class="linenos">55</span> <span class="c1"># center the name of the second font, using the font</span>
<span class="linenos">56</span> <span class="n">center</span><span class="p">(</span><span class="n">noto_serif</span><span class="p">,</span> <span class="s2">&quot;NotoSerif&quot;</span><span class="p">,</span> <span class="n">row</span><span class="p">,</span> <span class="n">st7789</span><span class="o">.</span><span class="n">GREEN</span><span class="p">)</span>
<span class="linenos">57</span> <span class="n">row</span> <span class="o">+=</span> <span class="n">noto_serif</span><span class="o">.</span><span class="n">HEIGHT</span>
<span class="linenos">58</span>
<span class="linenos">59</span> <span class="c1"># center the name of the third font, using the font</span>
<span class="linenos">60</span> <span class="n">center</span><span class="p">(</span><span class="n">noto_mono</span><span class="p">,</span> <span class="s2">&quot;NotoSansMono&quot;</span><span class="p">,</span> <span class="n">row</span><span class="p">,</span> <span class="n">st7789</span><span class="o">.</span><span class="n">BLUE</span><span class="p">)</span>
<span class="linenos">61</span> <span class="n">row</span> <span class="o">+=</span> <span class="n">noto_mono</span><span class="o">.</span><span class="n">HEIGHT</span>
<span class="linenos">62</span>
<span class="linenos">63</span> <span class="k">finally</span><span class="p">:</span>
<span class="linenos">64</span> <span class="c1"># shutdown spi</span>
<span class="linenos">65</span> <span class="k">if</span> <span class="s1">&#39;spi&#39;</span> <span class="ow">in</span> <span class="nb">locals</span><span class="p">():</span>
<span class="linenos">66</span> <span class="n">spi</span><span class="o">.</span><span class="n">deinit</span><span class="p">()</span>
<span class="linenos">67</span>
<span class="linenos">68</span>
<span class="linenos">69</span><span class="n">main</span><span class="p">()</span>
</pre></div>
</div>
</div>
</div>
</div>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="fonts.html" class="btn btn-neutral float-right" title="Fonts" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
<a href="st7789py.html" class="btn btn-neutral float-left" title="st7789py Reference" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
</div>
<hr/>
<div role="contentinfo">
<p>
</p>
</div>
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>