Блоктину е средата за създаване на програми за микроконтролери, която работи с блокчета в браузър.
Платките Тинузавър вече имат OLED дисплей с резолюция 128 x 64 пиксела и ползват най-бързия драйвер за микроконтролери.
Преди няколко дена завършихме интеграцията между платките Тинузавър; OLED дисплей SSD1306; най-бързия драйвер за за управлението му; и Блоктину.
Засега са реализирани само няколко базови функции: изчистване и запълване на екрана; извеждане на текст; извеждане на числа. С времето ще добавим още.
Ето няколко демонстрации и примери за използването на тези функции.
Демонстрация на функциите
Нека да започнем с четирите базови функции налични за момента:
- изчистване и запълване на екрана;
- извеждане на текст;
- извеждане на числа.
Програмата не е сложна и по-скоро показва колко лесно се използват функциите за работа с OLED диспей.
Дисплея не е с висока резолюция – 128×64 px, но достатъчна, за да изведем полезна информация.
Показване на данни от сензори
Следващата стъпка е да прочетем данни от някакъв сензор и да ги покажем на екрана. В примера по-долу това са:
- Стойността на вградения датчик за температура;
- Стойността на един от аналоговите входове.
Както вече знаете, винаги можете да надникнете в кода на C, който Блоктину генерира вместо вас, за да разберете как всъщност работи програматат.
Вградения датчик за температура не е много прецизен, но може да ни даде горе-долу добра представа за заобикалящата ни среда.
Стойността, която ни дава не е в градуси, а число от 0 до 1023, което можем да апроксимираме до градуси, ако е нужно.
ВАЖНО: сензора е вграден в микроконтролера и е предназначен да измерва собствената му температура, но при нормални условия тя ще е много близка до околната. Това няма да е така, ако претоварим микроконтролера и той прегрее например; или е изложен на пряка слънчева светлина.
За по-прецизно измерване на температурата може да се използва външен сензор. Как се прави това ще напишем в някоя от следващите ни статии.
Данни от аналогов вход
Четене на данни от несвързан аналогов вход е интересен експеримент. Данните, които получаваме ще се променят постоянно тъй като входа е “плаващ” и няма фиксирана стойност.
Ако го докоснем с пръст ще видим, че тези стойности се променят, но отново варират в широки граници.
Използване на Scheduler
Преди време ви запознахме с една нова за Блоктину функция – Scheduler. Тя позволява изпълнението на (почти) паралелни задачи на микроконтролера.
В конкретния пример втората задача увеличава през 1 секунда стойността на променливата, а основната програма я показва на екрана.
Трябва да имаме предвид, че реално когато започне изпълнението на втората задача в Scheduler, основната програма спира изпълнението си. При приключване на изпълнение на кода в Scheduler изпълнението на основната програма продължава. Това е така, защото имаме само един мицропроцесор, а той не може да изпълнява повече от една операция по едно и също време. Този похват за изпълнение на повече от една задача се нарича времеделене, защото задачите си поделят процесорното време.
Планове
Предвиждаме съвсем скоро да добавим поддръжка на DHT-11 – сензор за влага и температура на въздуха.
Ако имате интересни предложения и препоръки – пишете ни.
Скоро ще ви покажем как можете да пишете програми за този OLED дисплей директно на езика C за да постигате много повече. Ще видите няколко примера във видеото по-долу.