fbpx

👉 За проекта STEM на МОН създадохме специализиран уебсайт STEM.Tinusaur.BG

OLED дисплей, който може да работи с платка Тинузавър и Блоктину

Блоктину е средата за създаване на програми за микроконтролери, която работи с блокчета в браузър.

Платките Тинузавър вече имат OLED дисплей с резолюция 128 x 64 пиксела и ползват най-бързия драйвер за микроконтролери.

Преди няколко дена завършихме интеграцията между платките Тинузавър; OLED дисплей SSD1306; най-бързия драйвер за за управлението му; и Блоктину.

Засега са реализирани само няколко базови функции: изчистване и запълване на екрана; извеждане на текст; извеждане на числа. С времето ще добавим още.

Ето няколко демонстрации и примери за използването на тези функции.

Демонстрация на функциите

Нека да започнем с четирите базови функции налични за момента:

  • изчистване и запълване на екрана;
  • извеждане на текст;
  • извеждане на числа.
Тинузавър, Блоктину и OLED дисплей

Програмата не е сложна и по-скоро показва колко лесно се използват функциите за работа с OLED диспей.

Тинузавър, Блоктину и OLED дисплей

Дисплея не е с висока резолюция – 128×64 px, но достатъчна, за да изведем полезна информация.

Показване на данни от сензори

Следващата стъпка е да прочетем данни от някакъв сензор и да ги покажем на екрана. В примера по-долу това са:

  • Стойността на вградения датчик за температура;
  • Стойността на един от аналоговите входове.

Както вече знаете, винаги можете да надникнете в кода на C, който Блоктину генерира вместо вас, за да разберете как всъщност работи програматат.

Тинузавър, Блоктину и OLED дисплей

Вградения датчик за температура не е много прецизен, но може да ни даде горе-долу добра представа за заобикалящата ни среда.

Тинузавър, Блоктину и OLED дисплей

Стойността, която ни дава не е в градуси, а число от 0 до 1023, което можем да апроксимираме до градуси, ако е нужно.

ВАЖНО: сензора е вграден в микроконтролера и е предназначен да измерва собствената му температура, но при нормални условия тя ще е много близка до околната. Това няма да е така, ако претоварим микроконтролера и той прегрее например; или е изложен на пряка слънчева светлина.

За по-прецизно измерване на температурата може да се използва външен сензор. Как се прави това ще напишем в някоя от следващите ни статии.

Данни от аналогов вход

Четене на данни от несвързан аналогов вход е интересен експеримент. Данните, които получаваме ще се променят постоянно тъй като входа е “плаващ” и няма фиксирана стойност.

Ако го докоснем с пръст ще видим, че тези стойности се променят, но отново варират в широки граници.

Използване на Scheduler

Преди време ви запознахме с една нова за Блоктину функция – Scheduler. Тя позволява изпълнението на (почти) паралелни задачи на микроконтролера.

Тинузавър, Блоктину и OLED дисплей

В конкретния пример втората задача увеличава през 1 секунда стойността на променливата, а основната програма я показва на екрана.

Тинузавър, Блоктину и OLED дисплей

Трябва да имаме предвид, че реално когато започне изпълнението на втората задача в Scheduler, основната програма спира изпълнението си. При приключване на изпълнение на кода в Scheduler изпълнението на основната програма продължава. Това е така, защото имаме само един мицропроцесор, а той не може да изпълнява повече от една операция по едно и също време. Този похват за изпълнение на повече от една задача се нарича времеделене, защото задачите си поделят процесорното време.

Планове

Предвиждаме съвсем скоро да добавим поддръжка на DHT-11 – сензор за влага и температура на въздуха.

Ако имате интересни предложения и препоръки – пишете ни.

Скоро ще ви покажем как можете да пишете програми за този OLED дисплей директно на езика C за да постигате много повече. Ще видите няколко примера във видеото по-долу.

Вашият коментар

Добавено в картата
0 продукта - 0.00лв.