Оглавление:

DemUino - Домашний компьютер / Контроллер: 7 шагов
DemUino - Домашний компьютер / Контроллер: 7 шагов

Видео: DemUino - Домашний компьютер / Контроллер: 7 шагов

Видео: DemUino - Домашний компьютер / Контроллер: 7 шагов
Видео: DemUino 2024, Ноябрь
Anonim
Image
Image
Запись загрузчика
Запись загрузчика

Компьютер, вдохновленный Arduino от DemeterArt. Получите максимум от своей старой клавиатуры PS2. Взломайте его на персональном компьютере, чтобы управлять всем! Я всегда хотел собрать свой собственный домашний компьютер, в стиле ретро, без ничего особенного, но с особыми возможностями, соответствующими моим предпочтениям. Итак, я дошел до этого с микроконтроллером atmega328 и комплектом для разработки Arduino.

Позвольте мне заявить, что этот проект занял бы значительно больше времени с сомнительными конечными результатами, если бы не одаренные фанаты, которые менее эгоистично поставляют бесплатные библиотеки для всех. Спасибо вам всем:-)

посетите мой сайт, чтобы прочитать всю историю и загрузить все соответствующие файлы

www.sites.google.com/site/demeterart

Шаг 1: особенности

  • На основе ATMEGA328 с 32 КБ флэш-памяти, 2 КБ SRAM и 1 КБ EEPROM.
  • поддержка интерактивного и пакетного режимов
  • строковый редактор и режим редактирования списка
  • 8 пользовательских символов для пользовательской графики
  • 60 программных шагов, пронумерованных 00,…, 99
  • Условное условие if, циклы while и for плюс операторы goto и sub для ветвления
  • Основные арифметические и математические выражения плюс булевы тесты
  • системные переменные учитывают синхронизированные события, средние, среднеквадратичные, минимальные и максимальные значения с аналоговых выводов и т. д.
  • 26 пользовательских переменных для взаимодействия с системными переменными и командами
  • 104 байта адресуемого пользователем массива или 52 коротких целых числа
  • возможность чтения / записи данных программы, а также кода на лету (переменная p)
  • мини-осциллограф с настраиваемыми символами для псевдографики
  • сохранять и загружать программы и данные в / из EEPROM
  • загружать / сохранять программы и переменные с / на ПК
  • autoexec для загрузки и запуска программы из EEPROM после каждого сброса
  • 9 контактов GPIO (включая SPI) доступны на внешнем разъеме DB15
  • ЗУММЕР для звуковых эффектов

Шаг 2: что вам понадобится

Старая клавиатура ps / 2, достаточно толстая, чтобы вместить символьный ЖК-дисплей печатной платы (популярный параллельный формат). Микросхема MAX232 для порта RS232 atmel atmega328PU Комплект разработчика Arduino с IDE 1.0.1 LM7805 стабилизатор 5 В, выпрямитель зуммера, конденсаторы, кнопка сброса, разъемы и т. д.

Шаг 3. Запись загрузчика

Итак, после покупки «пустого» чипа atmega328PU нужно принимать решение. Я использую специальный программатор, внешний или ISP, или я должен записать загрузчик Arduino в зверя и сделать устройство программируемым через его порт UART? Я выбрал последнее, чтобы облегчить себе жизнь! Новый загрузчик занимает всего пол килобайта флэш-памяти, оставляя доступным чуть более 31 КБ пользовательской программы и статических данных. На сайте Arduino описывается случай записи загрузчика на новый чип. Когда дело дошло до использования avrdude для фактического сжигания целевого чипа, процесс завершился ошибкой с ошибкой, указывающей на неправильный идентификатор для конкретного MCU. Итак, после некоторых поисков я нашел этого парня, который понял все правильно, и последовал его процедуре. Единственная разница заключалась в двух конфигурационных файлах, avrdude.conf иboards.txt, которые необходимы avrdude и arduino IDE 1.0.1, чтобы сделать это возможным. После копирования 2 файлов в их надлежащие места (сначала сделайте резервную копию старых) была доступна опция «arduino328» в меню «Инструменты-> Плата», и avrdude продолжил запись предохранителей и загрузчика. Теперь чип готов к программированию на новой машине!

Шаг 4: Сборка юнита

Строительство подразделения
Строительство подразделения
Строительство подразделения
Строительство подразделения

Перфорированная плата с медными полосками использовалась в качестве решения для быстрой сборки с DIP-гнездами для микросхем, ну понимаете, на всякий случай! Затем отверстия и прорези для разъемов, кнопки сброса и ЖК-дисплея открылись сквозь чрезвычайно прочный и толстый пластик клавиатуры. Да, это построили 25 лет назад! Затем последовала путаница проводов, идущих от печатной платы к различным периферийным устройствам. Элементарная проверка непрерывности, а затем питание было подключено без установленных микросхем, просто чтобы проверить розетки на предмет надлежащего напряжения. Затем вошли две микросхемы, и корпус клавиатуры был плотно закрыт пластиковыми защелками внизу. Аппарат был готов записывать скетчи в контроллер!

Я предлагаю использовать неполярные конденсаторы 1 мкФ / 16 В для зарядных насосов MAX232. Разместите развязывающие конденсаторы емкостью 100 нФ для двух микросхем как можно ближе к соответствующим контактам VCC и GND. Используйте звезду для подключения питания и заземления регулятора LM7805. Переключатель 2 может быть перемычкой в зависимости от имплементации, но он может быть полезен хотя бы во избежание нежелательных сбросов MCU с главного ПК в определенных случаях. В любом случае переключатель должен быть замкнут, чтобы позволить Arduino IDE записать скетч через сброс целевого MCU (вывод DTR RS232). В моем случае соединение постоянное (всегда закрыто). Используйте последовательный резистор для зуммера, чтобы изолировать несколько нФ емкости от управляющего затвора… никогда не угадаете… Разместите XTAL и нагрузочные конденсаторы 18–22 пФ как можно ближе к соответствующим контактам контроллера.

Благодаря выпрямительному мосту устройство может питаться как от адаптеров переменного, так и постоянного тока. В случае постоянного тока между адаптером и входом регулятора возникает падение напряжения 1,5 В. В случае переменного тока входной сигнал регулятора примерно в 1,4 раза превышает среднеквадратичное значение выхода адаптера или меньше из-за нагрузки. Если разница между входом регулятора и его выходом (+ 5В) большая, скажем 7 вольт, то мощность, потребляемая регулятором, приближается к 0,5 ватт, и лучше использовать небольшой радиатор для установки микросхемы (при условии для него есть место) для долгой работы в жаркую погоду.

Входной предохранитель переменного тока может быть выбран в зависимости от ваших внешних нагрузок (через разъем DB15). Другими факторами, влияющими на выбор предохранителя, являются токоограничивающий резистор для светодиодной подсветки ЖК-дисплея, мостовой конденсатор для тока зарядки и токовая нагрузка питающего трансформатора.

Шаг 5: СХЕМА

СХЕМА
СХЕМА

Шаг 6: ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ НА БОРТУ

Это набросок, благодаря которому все это происходит… и 32 КБ НЕ достаточно! Вы можете либо использовать его без изменений, и в этом случае я был бы признателен за ссылку на мое имя, либо изменить его по своему желанию и забыть обо мне;-)

Это подробная документация по машине.

Сводка команд и выражений

«: Строка непечатаемого комментария

ai: присоединить прерывание 0 (вывод D2)

ar: аналоговое чтение

aw: «аналоговая запись» для arduino или, точнее, pwm

ca: аналоговый захват в массиве

cl: очищает дисплей cno: return * Prgm индекс номера строки

di: дождаться серии импульсов и измерить длительность и время

dl: задержка

do: в сочетании с "wh"

dr: цифровое чтение любого пина

dw: цифровая запись любого пина

ed: режим редактора / загрузка программы с ПК / перенумеровать строки

el: функция доступа к EEPROM

конец: оператор END программы

Ensb: завершает подпрограмму

es: функция доступа к EEPROM

fl: простой фильтр скользящего среднего

fr: следующий цикл (fr-nx)

перейти: перейти к шагу программы

gosb: продолжить выполнение подпрограммы

gt: ждет ввода пользователя

если: проверить условие и перейти к шагу

io: GPIO 1-9 бит

ld: загрузить / слить программу из EEPROM

lp:: управляемый с клавиатуры цикл в интерактивном режиме

ls: режим списка / посылка программы на ПК построчно

мл: получить время

мм: отображение свободной памяти

nos: преобразует число в строку

nx: вместе с "fr"

pl: график массива cxx

pm: установить контакты для входа или выхода

pr: печатает сообщение, значение или настраиваемый символ

rgc: команда копирования диапазона для массивов

rgs: команда набора диапазонов для массивов

rn: запустить программу в ОЗУ

rs: мягкий сброс

rx: получить символ через RS232

si: синхронный последовательный ввод с выводами часов и данных

sm: приложение мини-осциллографа sno: преобразует строку в число

итак: синхронный последовательный выход с выводами часов и данных

sub: объявляет подпрограмму

sv: сохранить программу в EEPROM

tn: гудок

tx: передать номер через RS232

wh: цикл do-while, используемый вместе с "do"

Шаг 7. Видеоклип о запуске мини-приложения sm

посетите мой сайт, чтобы прочитать всю историю и загрузить все соответствующие файлы

www.sites.google.com/site/demeterart

Рекомендуемые: