У вас в устройстве в наличии только текстовый дисплей? А хочется бы вывести на него что-то этакое?
Почему бы не сделать этого, тем более, что такая возможность есть.

Давно хотел в качестве хобби попробовать «на вкус» работу с микроконтроллерами.
И тут на дилэкстриме появился в продаже очень интересный набор Arduino UNO Starter Kit.
Набор достаточно интересен тем, что в нем практически есть всё, что нужно начинающему за реально смешные деньги.
С помощью него, практически, можно собрать любое устройство из примеров идущих к Arduino и даже больше.
После двухнедельного ожидания набор попал мне в руки и, наверно, как и каждый, сначала я поморгал светодиодом, потом подключил серву, потом шаговые движки с джойстиком и наконец, дошли руки до идущего в комплекте LCD-1602.

Выведя пару строк текста, я заинтересовался тем, что контроллер 1602 позволяет создавать 8 пользовательских символов. Сразу вспомнилось далекое детство и компьютер Альфа-БК(Радио86-РК) и как мы создавали игры комбинируя символы псевдографики. Тут же пришло в голову: Почему бы не попробовать сделать подобное?
Ведь можно объединить символы, которые используются для пользовательского набора, например в строку или прямоугольник 2х4 и постоянно изменяя символы пользовательского набора сделать подобие графического окна с текстовом дисплее.
Быстрый серфинг по инету показал, что такого до меня никто не делал, а значит это интересно(а заодно и получить инвайт).
Вот, что в итоге получилось:
Каждый символ состоит из 5х8 точек, они составляются из 8 байт из которых используется по 5 бит под точки.
Примерно так можно загрузить в массив следующий набор:
0b00000000
0b00111100
0b01000010
0b01000010
0b01000010
0b00111100
0b00000000
0b00000000
… и получить символ «бублика».
Таким образом 8 символов составляют массив 8х8 байт (хотя даже меньше, ведь по горизонтали используется только 5 бит ) или графическое поле 8х40 точек.
Написал функции которые устанавливают нужный бит по координатам, стирают бит по координатам и определяют наличие точки, а так же функции обновления значений графического окна и пара вспомогательных — сдвиг она на 1 бит влево или вправо. Для тестирования придумалась игра ввиде ралли: формируется постоянно движущаяся дорога, которая скроллируется и по ней движется точка-машинка, управляемая с помощью джойстика. Столкновения с обочиной дороги регистрируются как штрафы. Выигрывает тот, кто за определенное время набрал меньше штрафов.
Подключение дисплея стандартное, как в примерах, джойстика — на аналоговые входы X->A0, Y->A1.
Вот, что получилось:
http://www.youtube.com/watch?v=PiMUPTLzK1w
Скетч для скачивания.
Сама возможность вывести немного графической информации на LCD-1602 на самом деле наверно имеет больше академическое значение, хотя вполне можно, например, для датчика температуры выводить графики дневного колебания.
Может кто-то придумает и другое назначение?
P.S. Сейчас на подходе более серьезный набор набор — простор для исследователя!
Почему бы не сделать этого, тем более, что такая возможность есть.

Давно хотел в качестве хобби попробовать «на вкус» работу с микроконтроллерами.
И тут на дилэкстриме появился в продаже очень интересный набор Arduino UNO Starter Kit.
Набор достаточно интересен тем, что в нем практически есть всё, что нужно начинающему за реально смешные деньги.
С помощью него, практически, можно собрать любое устройство из примеров идущих к Arduino и даже больше.
После двухнедельного ожидания набор попал мне в руки и, наверно, как и каждый, сначала я поморгал светодиодом, потом подключил серву, потом шаговые движки с джойстиком и наконец, дошли руки до идущего в комплекте LCD-1602.

Выведя пару строк текста, я заинтересовался тем, что контроллер 1602 позволяет создавать 8 пользовательских символов. Сразу вспомнилось далекое детство и компьютер Альфа-БК(Радио86-РК) и как мы создавали игры комбинируя символы псевдографики. Тут же пришло в голову: Почему бы не попробовать сделать подобное?
Ведь можно объединить символы, которые используются для пользовательского набора, например в строку или прямоугольник 2х4 и постоянно изменяя символы пользовательского набора сделать подобие графического окна с текстовом дисплее.
Быстрый серфинг по инету показал, что такого до меня никто не делал, а значит это интересно(а заодно и получить инвайт).
Вот, что в итоге получилось:
Каждый символ состоит из 5х8 точек, они составляются из 8 байт из которых используется по 5 бит под точки.
Примерно так можно загрузить в массив следующий набор:
0b00000000
0b00111100
0b01000010
0b01000010
0b01000010
0b00111100
0b00000000
0b00000000
… и получить символ «бублика».
Таким образом 8 символов составляют массив 8х8 байт (хотя даже меньше, ведь по горизонтали используется только 5 бит ) или графическое поле 8х40 точек.
Написал функции которые устанавливают нужный бит по координатам, стирают бит по координатам и определяют наличие точки, а так же функции обновления значений графического окна и пара вспомогательных — сдвиг она на 1 бит влево или вправо. Для тестирования придумалась игра ввиде ралли: формируется постоянно движущаяся дорога, которая скроллируется и по ней движется точка-машинка, управляемая с помощью джойстика. Столкновения с обочиной дороги регистрируются как штрафы. Выигрывает тот, кто за определенное время набрал меньше штрафов.
Подключение дисплея стандартное, как в примерах, джойстика — на аналоговые входы X->A0, Y->A1.
Вот, что получилось:
http://www.youtube.com/watch?v=PiMUPTLzK1w
Скетч для скачивания.
Сама возможность вывести немного графической информации на LCD-1602 на самом деле наверно имеет больше академическое значение, хотя вполне можно, например, для датчика температуры выводить графики дневного колебания.
Может кто-то придумает и другое назначение?
P.S. Сейчас на подходе более серьезный набор набор — простор для исследователя!