0 голосов

Изучаем с ребенком набор Йодо. Хочется попробовать что-то сделать с дополнительными модулями.

Вроде у индикатора есть библиотека для Espruino - IskraJS.

http://wiki.amperka.ru/js:quaddisplay2

Чтобы сделать бегущую строку в виде слова, например, "amperka.ru":

// Подключаем индикатор к SPI2. Пин P9 — chip select
var quad2 = require('@amperka/quaddisplay2').connect(P9);
// Через 1 секунду после начала программы, запускаем бегущую строку
// с периодом кадров 300 миллисекунд
setTimeout(function() { quad2.marquee('amperka.ru', 300); }, 1000);

Все верно?

Далее если попробовать вывести значения с датчика температуры:

http://wiki.amperka.ru/js:thermometer

//подключаем модуль с датчиком температуры
var mySensor = require('@amperka/thermometer').connect(A0);

//подключаем индикатор
var quad2 = require('@amperka/quaddisplay2').connect(P9); 

//создаем переменную с числовым значением температуры в градусах Цельсия
var temperatureC = mySensor.read('C');

//выводим на индикатор значение температуры
quad2.display(temperatureC);

Все верно? Или как-то по-другому это нужно делать?

(10 баллов) 1 3 6

1 Ответ

+1 голос
 
Лучший ответ
Для вывода текущей температуры нужно использовать ф-ю setInterval(), внутри которой опрашивать датчик и делать вывод на экран. Для аналоговых датчиков еще полезно усреднение перед отображением.
Из опыта освоения моим сыном рекомендую дисплей oled-дисплей (troyka-модуль) ssd1306 (http://wiki.amperka.ru/%D0%BF%D1%80%D0%BE%D0%B4%D1%83%D0%BA%D1%82%D1%8B:troyka-oled)
Он намного функциональнее и пригодится под большее количество опытов.
(53 баллов) 2 3 8
выбран
Спасибо! Я как раз проверил индикатор. Просто строку выводит без проблем. Исключая некоторые буквы. А с датчиком температуры фигня получалась. Скорее всего точно, нужен интервал, чтобы индикатор успевал отрисовывать. Усреднение сделал. Спасибо за ответ!

Про oled - можете ли скинуть примеры скетчей для Espruino из Ваших опытов? С примерами получается быстрее разбираться. Если не сложно.
Вот совсем простенький пример показывающий некоторые возможности дисплея:
// I2C
I2C1.setup({sda: SDA, scl: SCL, bitrate: 100000}); //задать параметры I2C шины

let display = require("SSD1306").connect(I2C1); //инициализировать драйвер OLED дисплея
    display.clear(); //очистить экран

require("Font8x12").add(Graphics); //загрузить в систему "первый" шрифт
require("FontHaxorNarrow7x17").add(Graphics); //загрузить в систему "второй" шрифт

display.fillRect(0, 0, 127, 30); //нарисовать закрашенный прямоугольник

display.setColor(0, 0, 0); //задать черный цвет
    display.setFont8x12(); //задать в качестве текущего "первый" шрифт
        display.drawString("Hello", 50, 10); //вывести на экран Hello

display.setColor(1, 1, 1); //задать белый цвет
    display.setFontHaxorNarrow7x17(); //задать в качестве текущего "второй" шрифт
        display.drawString("World", 45, 40); //вывести на экран Word

display.flip(); //прикахать контроллеру дисплея отрисовать все что мы отправили на экран
Спасибо большое за примеры! Попробую с этим дисплеем тоже поэкспериментировать.
Если захотите с ним по серьезному "поиграть" то понадобятся методы класса Graphics из Espruino (выше именно через экземпляр данного класса и построена работа) которые появились только в версии 2.05 Espruino. У Амперки исторически официальная версия прошивки отстает на несколько ревизий, поэтому придется залить экспериментальную, ссылку на нее легко найти на форуме амперки. Нам тоже пришлось ее поставить (2.06), например что бы использовать метод setFont(). Сейчас ее тестируем.
Добро пожаловать на Бредборд! Сайт вопросов и ответов на тему Arduino, Raspberry Pi и хоббийной электроники в целом. Цель Бредборда — быть максимально полезным. Поэтому мы строго следим за соблюдением правил, боремся с холиворами и оффтопиком.
  1. Un_ka

    8 балл(ов)

  2. Eriak

    4 балл(ов)

  3. AlexGorr

    2 балл(ов)

...