<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Урок 21.1. UNITS. LIGHT]]></title><description><![CDATA[<h3>Цель урока</h3>
<p dir="auto">Привет! Сегодня мы познакомимся с LIGHT UNITS и научимся определять наличие света (рисунок 1).</p>
<p dir="auto"><img src="https://pp.userapi.com/c849432/v849432737/fe8a0/8HA-hN9dRIg.jpg" alt="" class=" img-fluid img-markdown" /></p>
<p dir="auto">Рисунок 1</p>
<p dir="auto">Этот урок научит: получать и обрабатывать цифровые данные о наличии источника света.</p>
<h3>Краткая справка</h3>
<ul>
<li>Назначение: применяют для определения наличия источника света</li>
<li>Сфера применения: сельское хозяйство, наука и домашний быт</li>
<li>Интерфейс подключения: I / O (разъём Groove Port B)</li>
<li>Напряжение питания: 5 В</li>
<li>Совместимость: M5 FIRE</li>
<li>Форм-фактор: LEGO-совместимый</li>
</ul>
<h3>Краткий обзор</h3>
<p dir="auto">LIGHT — один из большого семейства дополнительных модулей (UNITS), предназначенных прежде всего для М5 Fire. Поставляется данный модуль в пластиковой коробке. В комплект входит отличный кабель (15 см) с установленными вилками Groove (рисунок 2). На лицевой стороне датчика имеется наклейка с названием модуля и обозначением контактов. Интересно то, что датчик может работать в двух режимах: как в аналоговом, так и в цифровом.</p>
<p dir="auto"><img src="https://pp.userapi.com/c849432/v849432737/fe8ae/L78lMBoz2QQ.jpg" alt="" class=" img-fluid img-markdown" /></p>
<p dir="auto">Рисунок 2</p>
<p dir="auto">Для того, чтобы установить порог срабатывания для цифрового выхода, на обратной стороне датчика имеется движок подстроечного резистора (рисунок 3), который можно вращать с помощью отвертки.</p>
<p dir="auto"><img src="https://pp.userapi.com/c849432/v849432737/fe8df/kI4WlrymHaI.jpg" alt="" class=" img-fluid img-markdown" /></p>
<p dir="auto">Рисунок 3</p>
<p dir="auto">Габаритные размеры датчика смешные, и, проблем с установкой не будет (рисунок 4) :)</p>
<p dir="auto"><img src="https://pp.userapi.com/c849432/v849432737/fe8cc/7_XiNY54Kdc.jpg" alt="" class=" img-fluid img-markdown" /></p>
<p dir="auto">Рисунок 4</p>
<p dir="auto">Подключается датчик напрямую к указанному выше порту М5 с помощью прилагаемого кабеля. Свет должен падать в отверстие с датчиком (рисунок 5).</p>
<p dir="auto"><img src="https://pp.userapi.com/c851436/v851436654/8ae30/FdqOu2mCgBc.jpg" alt="" class=" img-fluid img-markdown" /></p>
<p dir="auto">Рисунок 5</p>
<h2>Начнём!</h2>
<h3>Blockly (<a href="http://flow.m5stack.com" target="_blank" rel="noopener noreferrer nofollow ugc">UI Flow</a>)</h3>
<p dir="auto">Прежде всего мы должны убедиться в том, что UI Flow подключён к M5. Если Вы видите надпись "Disconneted", то многократно нажимайте на стрелки (1) до тех, пор пока надпись (2) не смениться на "Connected". Отлично! Теперь можем добавить UNITS для этого кликните на плюс (3) (рисунок 6).</p>
<p dir="auto"><img src="https://pp.userapi.com/c851436/v851436654/8ae3e/7MtsbTa0d30.jpg" alt="" class=" img-fluid img-markdown" /></p>
<p dir="auto">Рисунок 6</p>
<p dir="auto">Хорошо, теперь поставьте галочку около LIGHT (1), затем нажмите ОК (2) (рисунок 6.1).</p>
<p dir="auto"><img src="https://pp.userapi.com/c851436/v851436654/8ae48/KR_89y0yBlE.jpg" alt="" class=" img-fluid img-markdown" /></p>
<p dir="auto">Рисунок 6.1</p>
<p dir="auto">Для того, чтобы получить цифровые данные с модуля необходимо добавить соответствующий пазл Blockly. Нажмите UNITS (1), затем Light (2), далее передащите в рабочую область пазл Digital Value (3) (рисунок 6.2).</p>
<p dir="auto"><img src="https://pp.userapi.com/c851436/v851436654/8ae5c/Aa4mQ6RBCrk.jpg" alt="" class=" img-fluid img-markdown" /></p>
<p dir="auto">Рисунок 6.2</p>
<p dir="auto">Когда свет падает на датчик он возвращает логическую единицу на цифровом выходе, в таком случае - нам подсветка не нужна и мы её отключаем, иначе наоборот зажигаем подсветку. Для того, чтобы управлять теплотой свечения используем клавишу A (холоднее) и клавишу С (теплее) (рисунок 7).</p>
<p dir="auto"><img src="https://pp.userapi.com/c851436/v851436654/8ae7e/JhR8okK1yBc.jpg" alt="" class=" img-fluid img-markdown" /></p>
<p dir="auto">Рисунок 7</p>
<p dir="auto">На этом урок закончен! :)</p>
<h3>MicroPython (<a href="http://flow.m5stack.com" target="_blank" rel="noopener noreferrer nofollow ugc">UI Flow</a>)</h3>
<pre><code>from m5stack import *
from m5ui import *
import units

clear_bg(0x000000)
light0 = units.Light(units.PORTB)



btnA = M5Button(name="ButtonA", text="ButtonA", visibility=False)
btnB = M5Button(name="ButtonB", text="ButtonB", visibility=False)
btnC = M5Button(name="ButtonC", text="ButtonC", visibility=False)

import random

red = None
blue = None
green = None


def buttonA_pressed():
  global red, blue, green, rgb, light0
  red = red - 25
  blue = blue + 25
  pass
def buttonC_pressed():
  global red, blue, green, rgb, light0
  red = red + 25
  blue = blue - 25
  pass
buttonA.wasPressed(callback=buttonA_pressed)
buttonC.wasPressed(callback=buttonC_pressed)
red = 100
green = 100
blue = 100
while True:
  if red &gt;= 255:
    red = 255
  if red &lt; 0:
    red = 0
  if green &gt;= 255:
    green = 255
  if green &lt; 0:
    green = 0
  if blue &gt;= 255:
    blue = 255
  if blue &lt; 0:
    blue = 0
  if light0.d_read():
    rgb.set_all(int('0x%02x%02x%02x' % (round(min(100, max(0, red)) * 2.55), round(min(100, max(0, green)) * 2.55), round(min(100, max(0, blue)) * 2.55))))
  else:
    rgb.set_all(0x000000)
  lcd.pixel(random.randint(0, 320), random.randint(0, 240), 0xccffff)
  wait(0.05)
  wait(0.001)
</code></pre>
<h3>C &amp; C++ (<a href="https://www.arduino.cc/en/Main/Software" target="_blank" rel="noopener noreferrer nofollow ugc">Arduino IDE</a>)</h3>
<p dir="auto">Пример ещё не написан ^_^</p>
<h3>Downloads</h3>
<h3>Demo</h3>
<ol>
<li><a href="https://youtu.be/AvBx1AhFtt8" target="_blank" rel="noopener noreferrer nofollow ugc">YouTube</a></li>
</ol>
]]></description><link>https://community.m5stack.com/topic/501/урок-21-1-units-light</link><generator>RSS for Node</generator><lastBuildDate>Wed, 06 May 2026 23:25:24 GMT</lastBuildDate><atom:link href="https://community.m5stack.com/topic/501.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 11 Jan 2019 08:00:38 GMT</pubDate><ttl>60</ttl></channel></rss>