четверг, 7 февраля 2013 г.

динамический вывод информации на трехразрядный семисегментный индикатор

Таки отпуск кончился и нашел время для написания министатьи про одну мою поделку. Для начала хотелось бы извинится перед теми, кто читает мой ЖЖ, что давно не выкладывал материал по компьютерам. Материала хватает, так что в скором времени планирую все это дело возобновить. Ну да ладно, лирическое отступление сделал, теперь к сути. Началось все это два года назад, после того как один мой знакомый сказал: ".... было бы здорово иметь что-то вроде usb спидометра для компьютера". Тут то я и решил попробовать сделать что-то путнее, тем более как-раз только начал изучать USB HID для AVR'ов. Первым из моих проектор стал "USB-7SEG LED" (Позже переименованный в "Спидометр-мини"). Суть сего девайса такова: к микроконтроллеру ATmega8, который программно общается с компьютером через USB, подключается трехразрядный семисегментный индикатор с общим анодом. Программа на компьютере пересылает информацию микроконтроллеру, а МК уже отображает ее на индикаторе. Все просто. Самое сложное было сделать так, чтобы программа "вытаскивала" значения скорости из игры. Решение нашлось пока одно-действовать как в ArtMoney. Т.е. сначала мы находим адрес переменной, а потом считываем из нее значения. Алгоритм нахождения адреса такой: (вот тут нам и приходит на помощь ARTmoney)  Запускаем игру. Даем "машинке" набрать некоторую скорость, запоминаем ее и выходим в паузу. Сворачиваем игру. Запускаем ARTmoney. В графе «выбери процесс» выбираем название игры. Нажимаем кнопку «Искать», вводим значение скорости и ОК. Выводится целый список адресов. Теперь переключаемся обратно в игру и меняем скорость, опять в паузу, переключаемся в ARTmoney, нажимаем кнопку «Отсеять», вводим число, ОК. И так делаем, пока количество адресов не уменьшится до единиц. Теперь, когда у нас есть адрес, можно модифицировать и программу для вывода данных на индикатор. Единственное, в чем может быть загвоздка - не все переменные игр в памяти имеют фиксированный адрес. К примеру, в той же GTA адрес переменной передачи постоянно меняется после запуска игры (динамический адрес), а адрес переменной скорости-нет. Вот собственно и вся фича.Поздней я все-же понял, что цифры несколько сложны для восприятия в игре и решил сделать что-то такое-же, но со стрелками. Так появился "Спидометр-мини v2". Смысл остался тем-же, но показания отображаются на микроамперметрах:Сего удалось добиться благодаря ШИМ (широкоимпульсному модулятору). Также изменения коснулись управляющей программы. Теперь принимаются значения не только скорости, но и оборотов двигателя в минуту (спидометр и тахометр). Не вижу смысла описывать принцип работы, т.к. он особ

USB-приборная панель для компьютерных игр

Gryphon's domain - USB-приборная панель для компьютерных игр

Комментариев нет:

Отправить комментарий