Карта сайта Хакер в RSS Энциклопедия Хакера PDA версия сайта Почтовые рассылки Хакера    Хакер в Twitter Хакер в ВКонтакте Приложение Хакер для Facebook Хакер на Formspring.me
Журнал Новости Форум Видео Life Xakep Live (блоги)
Bugtrack Статьи Блог Поиск English
Взлом как образ мысли Взлом как образ мысли
Интервью с человеком, который, как оказалось, является не только талантливым пентестером в одной из крупных ИБ-компании, но и хакером-ветераном, который уверенными шагами вышел на свет и прикоснулся к истории российской хак-сцены....
Полный гид по накрутке онлайн-голосований Полный гид по накрутке онлайн-голосований
Конкурсы с голосованием привлекают большое количество посетителей, а трафик, как известно, — это деньги. Особый интерес вызывают конкурсы, где за победу предлагаются лакомые призы....

Заведи экран: свой TFT–дисплей

Bookmark and Share

Начался новый семестр. В качестве курсовой работы в институте решил замутить такой вот девайс для вывода графики на дисплей от NOKIA.

Ты конечно понимаешь, мой друг, как можно использовать этот девайс в своих хакерских (и не только) целях. Если выбрать все детальки SMD-шные, то можно получить реально небольшое устройство для вывода на экран с портом RS232. Дисплей использовал: Nokia 6100/6610/7200/7250/3100 в рамке с коннектором.

Такой экран несложно найти в Интернет-магазинах, например www.siruist.ru, www.sparkfun.com или в палатках, где продают запчасти для мобильных телефонов (стоит он 150-200 руб). Либо просто выдрать дисплей из старого телефона. Но если такой не нашёл - не беда. Изучив эту статью и исходные коды и поразмыслив головой, ты можешь завести дисплеи от Nokia N95 или Sony PSP.

Почему я выбрал такой дисплей – он удобен в пайке. Смотри на скриншоте распиновку.

Как видно, существует коннектор на дисплее к которому тяжело подпаяться (шаг 0.5мм). Поэтому лучше ищите дисплеи с такой распиновкой как здесь.

Распиновка дисплея:

  1. VCC-Digital (3.3V)

  2. RESET

  3. SDATA

  4. SCK

  5. CS

  6. VCC-Display (3.3V)

  7. N/C

  8. GND

  9. LED GND

  10. LED V+ (6-7V)

На рисунке вы можете видеть 3 дисплея:

На крайнем левом отсутствуют контакты для удобной пайки (только коннектор). На остальных контакты и коннектор присутствуют. Также важно, что встроенный контроллер у каждого экрана разный. Для этого дисплея существует 2 вида контроллеров:

  • PCF8833;

  • Epson S1D15G10.

У каждого контроллера своя система команд и, соответственно, софт для одного из них не будет работать для другого. Народ научился различать эти контроллеры по цвету коннектора: коричневый - Epson S1D15G10, зелёный - PCF8833.

Но это не факт. Я советую прошить микроконтроллер для 2 видов дисплеев и посмотреть результат. К примеру на скриншоте все дисплеи с контроллером PCF8833. Я писал исходный код микроконтроллера для PCF8833, но совершенно не сложно  изменить его и для Epson`a!

Ну вроде с трудностями закончили, переходим к нашей схемке:

Контроллер

Atmega32 , др. с объёмом памяти Flash > 16кб.

Преобразователь(CMOS/TTL)

MAX232A или аналог.

Преобразователь из 5В в 3.3В

MC33269DT-3.3 или аналог.

Преобразователь из 5В в 6.5В

MP1541

А остальное всё есть на схеме.

6.5В нам нужно на подсветку (от 6В до 7В = max). Регулируется подстроечным R8. Также ВАЖНО – разделить землю у дисплея (т.е. землю (выводы 8,9 коннектора) напрямую присоединить к входу 2 разъёма источника питания) – это нужно для защиты от помех. Желательно поставить 2 различных преобразователя из 5В в 3.3В – один для питания контроллера и периферии дисплея, второй – для непосредственно дисплея (выходы 1,6 – соответственно коннектора дисплея).

После разбора с железкой и пайкой приступаем к программированию для Atmega.

Открываем WinAVR, создаём проект, будем писать на С. Я отказался от assembler`a потому что код стал реально громоздким.

#include <avr/io.h>
#include <util/delay.h> //
для задержки
#include "lcd.h" //
определения для PFC8833
#include "font.h" //
определение шрифта


void sendCMD(byte cmd); //
послать команду на PFC8833
void sendData(byte cmd); //
послать байт данных
void InitLCD(void); //
инициализация дисплея
void shiftBits(byte b); //
перестановкой выводов портов эмулируем SPI
void setPixel(byte r,byte g,byte b);
//
пишет в видеопамять дисплея 3 байта (r,g,b) с заданным цветом
…..
void PointXY(int x,int y,byte r,byte g,byte b)
//
рисует точку на экране с координатами x,y и цветом r,g,b
{
sendCMD(CASET); //
column set (po x)
sendData(x);
//
команда CASET – задаёт область рисования по x, от byte1 до byte2
sendData(x); //
у нас byte1=byte2 , так как рисуем точку
sendCMD(PASET); //
page set (po y)
sendData(y); //
аналогично для y
sendData(y);
sendCMD(RAMWR);
setPixel(r,g,b); //пишем в память
}

Я привёл только часть кода. Все исходники можно найти в архиве. У данного дисплея – 4096 цветов, следовательно 12 бит на пиксел RRRRGGGGBBBB.

Так же я написал консольную прожку для компа для рисования (исходники также есть в архиве).

В итоге наш девайс способен выводить:

  • точку;

  • окружность;

  • линию;

  • прямоугольник (закрашенный/нет);

  • символ (первой половины ASCII (0x00<c<0x80));

  • текст;

  • изображение (до (132 на 132)).

С символами нет проблем, ты можешь запросто добавить любой шрифт. Давайте взглянем на результаты:

Выводы

Ну вот в итоге и завели дисплей. Какие перспективы? Вот они:

  • добавить поддержку системных шрифтов и поместить их не в память микроконтроллера, а посылать символы по байтам по RS232;

  • воспроизвести анимацию;

  • попробовать завести дисплеи покруче – от Iphone, N95, PSP.

Что посмотреть:



Теги: фрикинг





СЛЕДУЮЩИЕ СТАТЬИ
802.22 White Space: новый стандарт беспроводной связи
Как создатель гаджета перехитрил копирайтных троллей
Тестирование роутера ASUS RT-N56U
В сборе: USN Business 715
В сборе: USN Zeus Intel iGT100
N значит "Нитро": тестирование гигабитных Wi-Fi роутеров стандарта IEEE 802.11n
Твой маленький сетевой друг: тестирование NAS накопителей
Превращение планшетов
Дверной замок на Arduino
Verbatim GT: пять сотен под капотом
ПРЕДЫДУЩИЕ СТАТЬИ
Датчики биополя на службе сохранности данных на дисках Western Digital
Софтостены VS. Хардмауэры: с чем безопаснее?
Доспехи для HDD: тестирование кейсов для жестких дисков
Слияние двух лун: технология AMD Fusion
Игра ядрами: AMD Athlon 64 6000+ против Intel Core 2 Duo E6700
Авто-гон: эволюция систем автоматического разгона
По-настоящему случайные числа
Серфим быстрее: тестирование модемов ADSL2+
Кардшаринг: ключ на раздачу
Взлом iPhone по шагам
ОБСУЖДЕНИЕ СТАТЬИ
Логин:
Пароль:
Если у вас есть форумный логин - вы можете использовать его, иначе анонимный гостевой доступ.

Для оставления комментария вы можете зарегистрироваться по упрощенной процедуре.

Обсуждение этой статьи на forum.xakep.ru
Для отправки сообщения введите код, указанный на картинке
Сообщение

UserГость
14.05.2008 20:42:19
Ответить Ссылка
респектище автору!
UserГость
15.05.2008 15:49:25
Ответить Ссылка
аффтор жжот! Ждем следующей статьи где он расскажет, как посылать символы по байтам?
UserГость
15.05.2008 16:50:22
Ответить Ссылка
Вот объясните, нехрен это всё надо?
UserГость
15.05.2008 20:10:05
Ответить Ссылка
Можно запрограммить чтобы из counter-strike показывал УБИЙСТВА и СМЕРТИ
UserГость
15.05.2008 21:03:00
Ответить Ссылка
Леха, ты крут))
UserГость
15.05.2008 23:22:57
Ответить Ссылка
крутая тема. дисплей от мобилы дешевле монитора в 30-40 раз и компактнее.

можно замутить дохера таких дисплейчиков, каждый из которых будет отражать определенные интересующие данные (например, курсы акций или валют при игре на бирже). удобная тема. надо попробовать
UserГость
16.05.2008 2:09:38
Ответить Ссылка
Ищите простой вариант схемы в журнале Радио, там можно эти жекажки подключать непосредственно к VGA или HDMI портам ПК... а это ерунда просто...
БЕЗДЕЛУШКА... Есть схемы и на одном чипе....
UserГость
16.05.2008 9:10:39
Ответить Ссылка
Главный козырь здесь - удобство
программирования,
возможность подключения хоть сотни различных дисплеев.
Причём зная даташит конкретного дисплея, можно реализовать все его возможности (работа в Partial Mode, релизация разл. цветности, т.д.)
UserГость
17.05.2008 0:08:54
Ответить Ссылка
Вообщето на сайтах типо modding.ru таких статей пруд пруди
UserГость
17.05.2008 13:10:57
Ответить Ссылка
Вещь интересна, но далеко не новая. Данная статья - маленький шаг для человека... А вот серия статей на данную тему - большой скачок для всего человечества. Верной дорогой идёте товарищи...
UserГость
18.05.2008 20:52:46
Ответить Ссылка
АААА! Чувааак! Ты крут! Побробую на досуге повторить! Спасибо!!!
UserГость
19.05.2008 11:10:33
Ответить Ссылка
бессмысленная херня
UserГость
20.05.2008 0:37:40
Ответить Ссылка
>>Ищите простой вариант схемы в журнале Радио, там можно эти жекажки подключать непосредственно к VGA или HDMI портам ПК...

очень интересно узнать в каком конкретно номере журнала об этом повествуется
UserГость
20.05.2008 15:15:01
Ответить Ссылка
А если взять юсб шнурок от моб телефона (например от сименса) в котором есть эмулятор ком порта, то и надобность в отдельном питании отпадает, ибо девайс можно питать от самого юсб :)
UserГость
24.05.2008 1:05:17
Ответить Ссылка
2 автор:
А нет ли в планах сделать то же самое для панелек от магнитол?
Особенно которые с ИК-датчиком. Для самодельного медиацентра было бы идеально.
UserГость
25.05.2008 14:52:18
Ответить Ссылка
а вот хотел я сделать что то типа индикатора на светодиодах а теперь мона такой дисплей самому мутить и врубать любую визуализацию мне нравицо частотная. ну ессесно автору респект и бляблябля но есть люди инвалиды у которых руки из жопы растут так что я не смогу))0
UserГость
26.05.2008 0:51:33
Ответить Ссылка
можно получит программу просмотор через спутник атпрафте пожауста мне
UserГость
02.06.2008 16:27:44
Ответить Ссылка
конечно чел постарался (по крайней мере не покупал курсак) но ведь дисплей можно разобрать (аккуратно!!) и всунуть в старый проектор, и рисовать на потолке курсы валют или голых баб ;)
правда разрешение маловато и дисплей охлаждать надо
UserГость
12.06.2008 13:57:42
Ответить Ссылка
Нехилая тут премодерация судя по пред.посту
Аффтору респект
UserГость
20.06.2008 11:13:53
Ответить Ссылка
что за х_У_йня с этим сайтом
почему не отображаются картинки....
UserГость
30.09.2008 23:22:03
Ответить Ссылка
Хочу завести дисплей от принтера Епсон Р240. Ничево не нашёл про него кроме http://www.mikrocontroller.net/topic/73814#postform
может чем поможешь? 327320255 ася
UserГость
28.10.2008 18:50:25
Ответить Ссылка
блин, удалите предыдущее сообщение с № аси! спам замучил!
UserГость
30.10.2008 15:56:37
Ответить Ссылка
Можно вывести часы и день недели, освободив место на панели задач. Или индикатор громкости для Винампа. А вообще имеет смысл мутить такие дисплеи, если у них разрешение по горизонтали минимум 480 точек -- тогда можно будет кинуть /dev/console. А так -- штука интересная, но заморачиваться я буду только в том случае, когда станет совсем нефиг делать: 132*132 -- это для меня МАЛО.
UserГость
02.12.2008 11:38:55
Ответить Ссылка
Идея великолепная! На её базе можно решать многие интересные проекты. adzeriho@rambler.ru
UserГость
03.01.2009 17:51:19
Ответить Ссылка
афтору Респект !!!
UserГость
17.01.2009 13:59:55
Ответить Ссылка
как правило на тему "курса" или диплома выбирают абсолютно бесполезные, никому не нужные вещи.




Keywords: zPOSTz zHARDz, zINFOz, zYANDEXz z43590z
Для Авторов: edit Lock delete Lock



    Rambler's Top100