Съдържание:

Ръчен BASIC компютър: 6 стъпки (със снимки)
Ръчен BASIC компютър: 6 стъпки (със снимки)

Видео: Ръчен BASIC компютър: 6 стъпки (със снимки)

Видео: Ръчен BASIC компютър: 6 стъпки (със снимки)
Видео: Обработване на цифрови снимки 2024, Ноември
Anonim
Ръчен BASIC компютър
Ръчен BASIC компютър
Ръчен BASIC компютър
Ръчен BASIC компютър

Тази инструкция описва моя процес на изграждане на малък преносим компютър с BASIC. Компютърът е изграден около чипа ATmega 1284P AVR, който също вдъхнови глупавото име на компютъра (HAL 1284).

Тази конструкция е Вдъхновена от невероятния проект, намерен тук, и значката SuperCON BASIC.

Компютърът работи с модифицирана версия на TinyBasic, въпреки че голяма част от софтуера е базиран на проекта на dan14. Разбира се, можете да следвате тази инструкция или дори по -добре да я подобрите, тъй като направих няколко грешки.

За този проект създадох и ръководство. Той споменава някои грешки и специфики за избрания монитор, но най -важното е, че има списък с ОСНОВНИ операции.

След като това беше публикувано, направих видео, представящо проекта.

Стъпка 1: Части, които използвах

Части, които използвах
Части, които използвах
Части, които използвах
Части, които използвах
Части, които използвах
Части, които използвах

За основната интегрална схема:

  • ATmega 1284P
  • 16MHz кристал
  • 2x 22pf керамичен кондензатор
  • 10KΩ резистор (за нулиране издърпайте нагоре)
  • 4-пинов бутон (за нулиране)
  • 470Ω резистор (за композитно видео)
  • 1kΩ резистор (за композитно видео синхронизиране)
  • 3-пинов джъмпер (за видео сигнал)
  • Пасивен зумер

За контрол на клавишната връзка:

  • ATmega 328P (като тези, използвани в Arduino Uno)
  • 16MHz кристал
  • 2x 22pf керамичен кондензатор
  • 12x 10KΩ резистор (за нулиране издърпайте нагоре и бутони)
  • 51x 4-пинов бутон (за действителната клавиатура)

За захранване:

  • L7805 Регулатор на напрежението
  • 3 мм LED
  • 220Ω резистор (за LED)
  • 2x 0.1 μF електролитен кондензатор
  • Електролитен кондензатор 0,22 µF (Можете да замените този 0,22 и един 0,1 с 0,33. Също така ми казаха, че стойностите не са от значение, но не се справям добре с кондензаторите)
  • 2x 2-пинов джъмпер (за входящо захранване и за главен превключвател)

GPIO (Може би добавете още няколко основания):

  • 7-пинов джъмпер
  • 2x 8-пинов джъмпер
  • 2-пинов джъмпер (за 5V и GND)
  • 3-4-пинов джъмпер (за серийна комуникация)

Не-PCB:

  • 4 "LCD дисплей с композитно видео (моето имаше входно напрежение между 7-30V)
  • 3D отпечатан държач за дисплей
  • Някакъв превключвател

Стъпка 2: Веригата

Веригата
Веригата

Веригата не е много красива и голяма част от основния IC-регион е вдъхновен от dan14. Като се има предвид това, това е доста прав Arduino на схема за платка. Клавиатурата е проста мрежа и се управлява от ATmega328. Двата AVR чипа комуникират чрез UART серийни щифтове.

И изображението, и моите Eagle файлове са прикачени и се надяваме, че ще бъдат достатъчни за пресъздаване на веригата. Ако не, не се колебайте да ме информирате и ще актуализирам Instructable.

Стъпка 3: ПХБ

ПХБ
ПХБ
ПХБ
ПХБ

ПХБ е двуслойна и създадена с помощта на Auto Route (О, каква ** дупка!). Той има бутони и светодиоден индикатор за захранване отпред, а останалите отзад. Направих моята PCB с JCL PCB и те свършиха невероятна работа с нея. Файловете, необходими за пресъздаване на печатната платка, трябва да са във файловете на Eagle от преди.

Предлагам ви да препроектирате печатната платка, тъй като имам някои неща, които бих искал да направя по различен начин. Ако ви харесва моят дизайн, все още имам (към момента на писане) четири неизползвани дъски, които съм повече от готов да продам.

Платката има четири пробити отвора, които използвах за монтиране на LCD дисплея.

Стъпка 4: Качване на кода

Качване на кода
Качване на кода
Качване на кода
Качване на кода
Качване на кода
Качване на кода

Разбира се, и 1284, и 328 се нуждаят от код, а кода, който използвах, можете да намерите тук: https://github.com/PlainOldAnders/HAL1284 под ArduinoSrc/src. Просто използвах Arduino IDE за промяна и качване на кода, но преди това да може да стане, ще трябва да запишете буутлоудърите на интегралните схеми:

ATMega328:

Това е лесно, в смисъл, че има много поддръжка за това как да запишете зареждащо устройство и да качите код на тази интегрална схема. Обикновено следвам това ръководство, най -вече защото все забравям спецификата.

Кодът за 328 (под ArduinoSrc/клавиатура) е сравнително прост. Той изцяло разчита на библиотеката Adafruit_Keypad-master-. В случай, че нещо се промени относно lib, включих версията, която използвах на моята github страница под ArduinoSrc/lib.

ATmega1284:

Това беше малко трудно за мен, когато за първи път получих IC. Започнах, като взех буутлоудъра от тук, и последвах ръководството за инсталиране. За да запиша буутлоудъра, просто направих същото като с 328 и получих помощ от тук. И за двете интегрални схеми току -що използвах Arduino Uno както за изгаряне на буутлоудъра, така и за качване на кода (премахнах IC от Arduino Uno при качване).

Кодът (под ArduinoSrc/HAL1284Basic) е твърде сложен за мен, но успях да променя някои части от кода:

Добавих няколко команди (тези, маркирани с [A] в manual.pdf), а също и други команди:

Тон: Командата за тон преди това е използвала тоналната функция на Arduino, но при използване на библиотеката TVout, това е причинило зумера да не работи правилно. Промених го, за да използвам тоналната функция на TVout, но това означава, че тоновият щифт ТРЯБВА да бъде пин 15 (за atmega1284)

Последователна комуникация: Тъй като клавиатурата е DIY, тя използва серийна комуникация за четене на знаците. Тъй като тук се използва atmega1284, има две налични серийни комуникационни линии и когато "sercom" е активиран, кодът позволява и писане през серийния порт (от компютър или каквото и да е друго).

Резолюция: Мониторът, използван за този проект, е доста тъп и е необходима малка разделителна способност, или картината трепте. Ако се използва по -добър монитор, бих предложил да промените разделителната способност във функцията за настройка.

Стъпка 5: Монтаж

Монтаж
Монтаж
Монтаж
Монтаж
Монтаж
Монтаж

С качения код и печатната платка и частите вече е време за сглобяване. Всички части, които използвах, бяха през отвори, така че запояването не беше твърде трудно (за разлика от лошото-SMD-запояване-момчета там). Мониторът беше закрепен към четирите пробити отвори в печатната платка с държач с 3D печат. Ако се използва друг монитор, четирите пробивни отвора могат да се използват за монтиране.

Използваният тук държач за монитор е проектиран също така да побере превключвател (свързан към джъмпера „превключвател“на печатната платка) и трите бутона за управление на монитора. Държачът е закрепен с пластмасови болтове М3 и дистанционни елементи.

За захранващия щепсел използвах JST PCB конектор, въпреки че гладък жак щеше да е малко по -гладък. За да захранвам платката, превключих между 12V захранване или три последователно 18650 батерии. По -гладък каубой от мен вероятно би могъл да проектира хлъзгав държач на батерията за дъската.

Стъпка 6: Грешки и бъдеща работа

Клавиши със стрелки: Клавишите със стрелки са поставени случайно и не изпълняват много функции. Това затруднява навигацията

File I/O: Съществуват възможности за File I/O, но те не са приложени. За да се бори с това, софтуерът HAL1284Com може да качва файлове на дъската. Възможно е също така качване в EEPROM.

PEEK/POKE: PEEK и POKE са непроверени и не съм сигурен какви са адресите.

Break: Break (Esc) понякога се забърква с целия код, когато е в безкрайни цикли.

Pin 7: PWM щифт 7 може да бъде труден, когато се опитвате да DWRITE High или AWRITE 255. Работи добре с AWRITE 254.

Идиот: Би било идеално също да можете да качвате чрез UART1, но качването е възможно само чрез UART0, така че качването ще трябва да се извърши чрез извличане на основната интегрална схема. Регулаторът на екрана и напрежението 5 става твърде горещ, когато работи дълго време.

Препоръчано: