Оглавление:
- Шаг 1: детали, которые я использовал
- Шаг 2: Схема
- Шаг 3: печатная плата
- Шаг 4. Загрузка кода
- Шаг 5: Сборка
- Шаг 6: ошибки и дальнейшая работа
Видео: Карманный компьютер BASIC: 6 шагов (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:47
В этом руководстве описывается мой процесс создания небольшого карманного компьютера под управлением BASIC. Компьютер построен на базе микросхемы AVR ATmega 1284P, которая также послужила источником глупого названия для компьютера (HAL 1284).
Эта сборка ОЧЕНЬ вдохновлена удивительным проектом, найденным здесь, и значком SuperCON BASIC.
На компьютере установлена модифицированная версия TinyBasic, хотя большая часть программного обеспечения основана на проекте dan14. Вы, конечно, можете следовать этому Руководству или, что еще лучше, улучшить его, так как я сделал несколько ошибок.
Для этого проекта я также создал руководство. В нем упоминаются некоторые ошибки и особенности выбранного монитора, но, что наиболее важно, есть список ОСНОВНЫХ операций.
После того, как это было опубликовано, я снял видео, демонстрирующее проект.
Шаг 1: детали, которые я использовал
Для основной ИС:
- ATmega 1284P
- Кристалл 16 МГц
- Керамический конденсатор 2x 22pf
- Резистор 10 кОм (для сброса подтягивания)
- 4-контактная кнопка (для сброса)
- 470 Ом Reistor (для композитного видео)
- Резистор 1 кОм (для композитной видеосинхронизации)
- 3-контактная перемычка (для видеосигнала)
- Пассивный зуммер
Для управления клавиатурой:
- ATmega 328P (как те, что используются в Arduino Uno)
- Кристалл 16 МГц
- Керамический конденсатор 2x 22pf
- 12 резисторов 10 кОм (для подтягивания сброса и кнопок)
- 51x 4-контактная кнопка (для самой клавиатуры)
Для власти:
- Регулятор напряжения L7805
- 3мм светодиод
- Резистор 220 Ом (для светодиода)
- 2x 0,1 мкФ электролитический конденсатор
- Электролитический конденсатор 0,22 мкФ (вы можете заменить 0,22 и 0,1 0,1 на 0,33. Мне также сказали, что значения на самом деле не имеют значения, но я плохо разбираюсь в конденсаторах)
- 2x 2-контактные перемычки (для входа питания и для главного выключателя)
GPIO (можно добавить еще пару оснований):
- 7-контактный джампер
- 2x 8-контактный джампер
- 2-контактная перемычка (для 5 В и GND)
- 3-4-контактная перемычка (для последовательной связи)
Без печатной платы:
- 4-дюймовый ЖК-дисплей с композитным видео (у шахты входное напряжение 7–30 В)
- Напечатанный на 3D-принтере держатель для дисплея
- Какой-то переключатель
Шаг 2: Схема
Схема не очень красивая, и большая часть основной IC-области вдохновлена dan14. При этом это довольно простой Arduino на макетной плате. Клавиатура представляет собой простую сетку и управляется ATmega328. Две микросхемы AVR обмениваются данными через последовательные контакты UART.
И изображение, и мои файлы Eagle прилагаются и, надеюсь, их будет достаточно для воссоздания схемы. Если нет, не стесняйтесь сообщить мне, и я обновлю Instructable.
Шаг 3: печатная плата
Печатная плата является двухслойной и создается с помощью Auto Route (Ах, какая дыра!). Он имеет кнопки и светодиодный индикатор питания спереди, а остальные - сзади. Моя печатная плата была сделана из JCL PCB, и они проделали потрясающую работу с ней. Файлы, необходимые для воссоздания печатной платы, должны находиться в файлах Eagle, которые использовались ранее.
Я бы посоветовал вам изменить дизайн печатной платы, поскольку у меня есть некоторые вещи, которые я бы хотел сделать по-другому. Если вам нравится мой дизайн, у меня все еще есть (на момент написания) четыре неиспользуемых платы, которые я более чем готов продать.
На плате есть четыре просверленных отверстия, которые я использовал для установки ЖК-дисплея.
Шаг 4. Загрузка кода
И для 1284, и для 328, конечно, нужен код, и код, который я использовал, можно найти здесь: https://github.com/PlainOldAnders/HAL1284 в разделе ArduinoSrc / src. Я просто использовал IDE Arduino для изменения и загрузки кода, но прежде чем это можно будет сделать, вам нужно записать загрузчики на ИС:
ATMega328:
Это просто в том смысле, что существует большая поддержка того, как записать загрузчик и загрузить код в эту IC. Обычно я следую этому руководству, в основном потому, что все время забываю о деталях.
Код для 328 (под ArduinoSrc / клавиатура) довольно прост. Он полностью полагается на библиотеку Adafruit_Keypad-master. На случай, если что-то изменится в библиотеке, я включил версию, которую использовал на моей github-странице, в ArduinoSrc / lib.
ATmega1284:
Для меня это было немного сложно, когда я впервые получил IC. Я начал с загрузки загрузчика отсюда и следовал руководству по установке. Чтобы записать загрузчик, я просто проделал то же самое, что и с 328, и получил помощь отсюда. Для обеих микросхем я просто использовал Arduino Uno как для записи загрузчика, так и для загрузки кода (удаленная IC из Arduino Uno при загрузке).
Код (под ArduinoSrc / HAL1284Basic) слишком сложен для меня, но я смог изменить некоторые части кода:
Я добавил пару команд (те, что отмечены [A] в manual.pdf), а также изменил другие команды:
Тон: команда тонального сигнала просто использовала функцию тонального сигнала Arduino раньше, но при использовании библиотеки TVout из-за этого зуммер не работал должным образом. Я изменил его, чтобы использовать функцию тона TVout, но это означает, что штырь тона ДОЛЖЕН быть контактом 15 (для atmega1284)
Последовательная связь: поскольку клавиатура сделана своими руками, она использует последовательную связь для чтения символов. Поскольку здесь используется atmega1284, есть две доступные линии последовательной связи, и когда включен "sercom", код также позволяет писать через последовательный порт (с компьютера или другого устройства).
Разрешение: монитор, используемый в этом проекте, довольно тупой, и требуется небольшое разрешение, иначе изображение мерцает. Если используется более качественный монитор, я бы посоветовал вам изменить разрешение в функции настройки.
Шаг 5: Сборка
Когда код загружен, а печатная плата и детали готовы, пришло время для сборки. Все детали, которые я использовал, были сквозными, поэтому пайка не была слишком сложной (в отличие от тех, что были задиристой SMD-пайкой). Монитор был прикреплен к четырем просверленным отверстиям в печатной плате с помощью 3D-печатного держателя. Если используется другой монитор, можно надеяться, что для его установки можно использовать четыре просверленных отверстия.
Используемый здесь держатель монитора также предназначен для размещения тумблера (подключенного к перемычке «переключатель» на печатной плате) и трех кнопок управления монитором. Держатель крепится пластиковыми болтами М3 с проставками.
В качестве вилки питания я использовал разъем JST для печатной платы, хотя гладкий цилиндрический разъем был бы немного более гладким. Для питания платы я переключался между блоком питания 12 В или тремя последовательно включенными батареями 18650. Более гладкий ковбой, чем я, вероятно, мог бы разработать удобный держатель батареи для доски.
Шаг 6: ошибки и дальнейшая работа
Клавиши со стрелками: клавиши со стрелками были вставлены случайно и не выполняют особой функции. Это затрудняет навигацию
Файловый ввод-вывод: существуют возможности файлового ввода-вывода, но они не реализованы. Для борьбы с этим программное обеспечение HAL1284Com может выгружать файлы на плату. Также возможна загрузка в EEPROM.
PEEK / POKE: PEEK и POKE не тестировались, и я не уверен, что это за адреса.
Break: Break (Esc) иногда искажал весь код в бесконечных циклах.
Вывод 7: вывод 7 PWM может быть затруднен при попытке DWRITE High или AWRITE 255. Он отлично работает с AWRITE 254.
Идиот: было бы идеально иметь возможность загрузки через UART1, но выгрузка возможна только через UART0, поэтому выгрузка должна выполняться путем извлечения основной ИС. Экран и регулятор напряжения 5 слишком сильно нагреваются при длительной работе.
Рекомендуемые:
Карманный визуализатор сигналов (карманный осциллограф): 10 шагов (с изображениями)
Карманный визуализатор сигналов (карманный осциллограф): Привет всем! Мы все делаем так много вещей каждый день. Для каждой работы нужны инструменты. Это для изготовления, измерения, отделки и т. Д. Таким образом, работникам электроники нужны такие инструменты, как паяльник, мультиметр, осциллограф и т. Д
Маленький и дешевый карманный компьютер, который можно программировать где угодно: 5 шагов
Маленький и дешевый карманный компьютер, который можно программировать где угодно: CardKB можно превратить в карманный компьютер! Полноценный карманный компьютер для CardKB с использованием ArduinoBaisc, CardKB, I2C OLED-экрана. Поскольку BASIC использует ArduinoBasic (https://github.com/robinhedwards/ArduinoBASIC), он поддерживает почти все обычные функции, такие как
Карманный компьютер (NoDisplayRequired): 7 шагов
Карманный компьютер (NoDisplayRequired): Вы когда-нибудь хотели сделать из Watch Dogs 2 карманный компьютер, который можно взять с собой куда угодно? Если да, то это идеальное руководство для вас. ПК работает под управлением ОС на базе Linux, но вы можете в значительной степени использовать любую ОС на базе ARM, вы также можете использовать Windows 10. Общее количество
Карманный компьютер Linux: Pi-Micro: 13 шагов (с изображениями)
Карманный компьютер с Linux: Pi-Micro: Вы когда-нибудь хотели сделать компьютер, который уместится в руке? Тот, который был полноценным ноутбуком, но крошечным? Я тоже, поэтому я построил этот маленький ноутбук, который я назвал Pi-Micro. Это третья версия Pi-Micro, почти год в маки
Самый крутой USB L.E.D. Карманный светильник (карманный вход): 6 ступеней
Самый крутой USB L.E.D. Карманный фонарь (карманный вход): в этой инструкции я покажу вам, как сделать L.E.D. с питанием от USB. свет, который можно сложить до размеров жестяной коробки X-it Mints и легко уместить в кармане. Если он вам понравился, обязательно поставьте + и проголосуйте за меня в конкурсе! Материалы и