Компьютер для обучения программированию - Моддинг
Несколько лет назад у меня появилось хобби — собирать компы из б\у деталей и раздавать их тем, кому они нужны — в офис организациям типа правозащитников, детям из многодетных и неполных семей. В свое время я очень любил компьютерные игрушки, да и что говорить — люблю до сих пор, как и интернет — в нем я работаю. Ну и любовь эта выросла до таких масштабов, что я уже должен был поделиться с кем-то ею, т. к. моих собственных ощущений было уже недостаточно чтобы удовлетворить всё это :) Теперь каждый вечер я точно знаю что именно в это время 3-4 компа минимум устраивают крутой гейминг.
Счет компов пошел на десятки, ну и в какой-то момент мне надоело собирать просто серые невзрачные ящики и захотелось делать их красивыми. Хотя бы потому что внешний вид компа для детей тоже очень много значит. Да и не только для них.
В институте у меня был небольшой опыт общения с AVR микроконтролелрами, ну и тут они тоже пошли в ход — начал я от управления подстветкой и финал — управление подстветкой и куллерами + возможность всё это программировать.
Всё что вы увидите ниже - это некоммерческие проекты, делалось в качестве хобби и раздавлось на халяву нуждающимся
Микроконтроллеры AVR
AVR — это некий компьютер в одной микросхеме. В ней же и процессор и память и ты напрямую можешь управлять всеми ее ногами. Есть встроенные функции в видео COM порта, аналого-цифрового преобразователя, широтно импульсной модуляции и другие. Всё это управляется чистым Си языком, причем есть компиляторы, которые пишут за тебя чуть ли не половину программы — инициализация всех служебных регистров.
Xpider2 - синяя подстветка на AVR
Первым компом, на котором я сделал подсветку корпуса при помощи микроконтроллера был Xpider2 — тема паука. Здесь схема состояла всего лишь из одного МК Atmega8, стабилизатора питания и транзистора КТ815Б, который и управлял подстветкой — светодиодной лентой.
Схема простая, и вы без труда спаяете ее за пару часов даже при минимальном навыке.
Были реализованы режимы:
- Азбука Морзе — микроконтроллер мигая подстветкой проигрывал записанные в памяти предложения — цитаты из фильмов, компьютерных игр. Случайным образом выбирался номер предложения.
- Сердце — в память была записана «кардиограмма», массив значения яркости подстветки, который отображался последовательно. Получалось что-то типа сердцебиейний. Их количество так же выбиралось случайным образом.
- Режим дыхания — один из самых простых, плавное нарастание яркости и убывание эмитируют вдох и выдох. Выдох чуть быстрее. Количество вдохов-выдохов тоже выбирается каждый раз случайным образом.
- Выбор режима - микроконтроллер сам решает делать ему что-то в конкретный момент или нет — выбор происходит случайным образом: делать или нет и что делать.
Лучше один раз увидеть, чем сто раз услышать, на память я снял призентационный фильм:
Розовый компьютер для девочки
Полностью аналогичный код предыдущей реализации Xpider2, разница только в том, что светодиодная лента была выбрана розовая:
Красная планета — компьютер для программиста
Ну и самый мощный вариант, который получилось сделать на микроконтроллере AVR это «Красная Планета» - стилизация под «марс», фильм «вспомнить всё» со Шварцнеггером.
Помимо управления подсветкой здесь было реализовано:
- Управление вентиляторами компьютера. У микроконтроллера atmega8 есть 3 аппаратных канала ШИМ (широтно импульсной модуляции) посему один канал пошел на подстветку, а 2 других управляют 4мя куллерами (попарно соединены 2 в крышке корпуса и 2 в его торце).
- Вентиляторы умеют играть музыку :) - при помощи проекта одного куртого программиста получилось реализовать забавную функциональность: куллеры компьютера могут играть музыку конвертированную из midi. Делают они это правда довольно тихо, но всё равно получилось весьма забавно.
- Внешние датчики — на плате заготовлены разъемы под внешние датчики, что-то соединено с внешними прерываниями, что-то с аналого-цировым преобразователям. Прямо на плате впаян датчик температуры LM35, подключенный к одному из каналов АЦП
- COM порт для связи с компьютером — на этот раз плата не автономная, а имеет канал связи с компьютером через RS232 (он же последовательный порт). Я на скорую руку набросал демо-приложение и 1байтный интерфейс — компьютер может менять режимы подстветки, а микроконтроллер отправляет в него измеренную температуру.
- Разъем программирования — на этот раз компьютер с платой микроконтроллера шел пацану, который вроде как собрался учиться на программиста, посему я снабдил его программатором и на управляющей плате распаял разъем программирования. Можно учиться программировать микроконтроллер на Си, писать для платы свой код.
Видео презентация Красной Планеты:
Принципиальная схема итоговой платы:
Схема коряво нарисована, но она в точности повторяет распаяку, и сделана в основном для того чувака, который в перспективе может быть будет программировать подаренную плату управления