Съдържание:

DemUino - домашен компютър/контролер: 7 стъпки
DemUino - домашен компютър/контролер: 7 стъпки

Видео: DemUino - домашен компютър/контролер: 7 стъпки

Видео: DemUino - домашен компютър/контролер: 7 стъпки
Видео: DemUino 2024, Юли
Anonim
Image
Image
Записване на Bootloader
Записване на Bootloader

Компютър, вдъхновен от Arduino от DemeterArt Възползвайте се максимално от старата си PS2 клавиатура. Хакнете го в персонализиран персонален компютър, за да контролирате нещата! Винаги съм искал да създам свой собствен домашен компютър, нещо като ретро стил, нищо фантастично, но с особени възможности, съобразени с моите предпочитания. Така че стигнах до него с atmega328 MCU и комплекта за разработка на Arduino.

Позволете ми да заявя, че този проект би отнел значително повече време със съмнителни крайни резултати, ако не бяха надарените фенове, които егоистично по -малко предоставят безплатните библиотеки, които всеки може да използва. Благодаря на всички ви:-)

посетете моя сайт, за да прочетете цялата история и да изтеглите всички съответни файлове

www.sites.google.com/site/demeterart

Стъпка 1: Функции

  • Въз основа на ATMEGA328 с 32KB флаш, 2KB SRAM и 1KB EEPROM.
  • поддръжка на интерактивни и пакетни режими
  • редактор на редове и режим на редактиране на списък
  • 8 персонализирани знака за потребителска графика
  • 60 програмни стъпки, номерирани с 00,…, 99
  • Цикли „if“условно, „while“и „for“плюс инструкции „goto“и „sub“за разклоняване
  • Основни аритметични и математически изрази плюс булеви тестове
  • системните променливи позволяват времеви събития, средни, средноквадратични, минимални и максимални стойности от аналогови щифтове и т.н.
  • 26 потребителски променливи за взаимодействие със системни променливи и команди
  • 104 байта от масив, адресиран от потребителя, или 52 къси цели числа
  • възможност за четене/запис на програмни данни, както и код в движение (променлива p)
  • приложение за мини осцилоскоп с персонализирани знаци за псевдо графика
  • запазване и зареждане на програми и данни в/от EEPROM
  • зареждане/запазване на програми и променливи от/към компютър
  • autoexec при зареждане и стартиране на програма от EEPROM след всяко нулиране
  • 9 GPIO пина (включени SPI) се предлагат на външен DB15 конектор
  • ЗВУК за звукови ефекти

Стъпка 2: Неща, които ще ви трябват

Стара клавиатура ps/2, достатъчно дебела, за да побере PCB LCD дисплея с символи (популярният паралелен формат) MAX232 чип за RS232 порт atmel atmega328PU Комплект за разработка на Arduino с IDE 1.0.1 LM7805 регулатор 5V зумер мостов токоизправител, кондензатори, бутон за нулиране, конектори и др

Стъпка 3: Записване на Bootloader

Така че, след като сте закупили „празен“чип atmega328PU, трябва да вземете решение. Използвам ли специален програмист, външен или ISP, или записвам зареждащия файл на Arduino в звяра и направя устройството програмируемо чрез неговия UART порт? Избрах последното, за да улесня живота си! Новият буутлоудър заема само половин килобайт флаш памет, оставяйки на разположение малко повече от 31 КБ потребителска програма и статични данни. Сайтът Arduino обхваща случая на изгаряне на буутлоудъра на нов чип, когато става въпрос за използване на avrdude за действително изгаряне на целевия чип, процесът се проваля с грешка, показваща грешен идентификатор за конкретния MCU. Така че след известно търсене намерих този човек, който се справи правилно и следвах процедурата му. Единствената разлика беше 2 конфигурационни файла, avrdude.conf и Board.txt, необходими на avrdude и arduino IDE 1.0.1, за да стане възможно. След копиране на 2 файла на правилните им места (първо архивирайте старите), опцията „arduino328“от инструменти-> Board беше налична и avrdude продължи с изгарянето на предпазителите и буутлоудъра. Сега чипът е готов за програмиране от новата машина!

Стъпка 4: Изграждане на модула

Изграждане на звеното
Изграждане на звеното
Изграждане на звеното
Изграждане на звеното

Перфорирана дъска с медни ленти беше използвана като решение за бързо сглобяване с DIP гнезда за чиповете, знаете, за всеки случай! След това отворите и разрезите за съединителите, бутона за нулиране и LCD дисплея бяха отворени чрез изключително здравата и дебела пластмаса на клавиатурата. Да, това е построено преди 25 години! Последва бъркотията от проводници, излъчвани от печатната платка към различните периферни устройства. Една елементарна проверка на непрекъснатостта и след това захранването беше свързано без чипове, само за да се провери контактите за подходящи напрежения. След това дойдоха 2те интегрални схеми и корпусът на клавиатурата беше здраво затворен чрез пластмасовите си скоби в долната част. Устройството беше готово за запис на скици в контролера!

Предлагам да се използват неполярни 1uF/16V кондензатори за помпи за зареждане MAX232. Намерете кондензаторите за отделяне на 100nF за двата чипа възможно най -близо до съответните VCC и GND щифтове. Използвайте звездна връзка за захранването и земята, посочени към регулатора LM7805. Превключвател 2 може да бъде джъмпер в зависимост от импементацията, но е добре да има, само за да се избегнат нежелани нулиране на MCU от хост компютъра в определени случаи. Във всеки случай превключвателят трябва да бъде затворен, за да позволи на Arduino IDE да запише скицата чрез нулиране на целевия MCU (щифт DTR на RS232). В моя случай връзката е постоянна (винаги затворена). Използвайте сериен резистор за зумера, за да изолирате няколко nF на капацитет от задвижващата врата … никога не знаете.. Намерете XTAL и зареждащите кондензатори 18-22pF възможно най-близо до съответните щифтове на контролера.

Поради токоизправителния мост, устройството може да се захранва както от променлив, така и от постоянен ток. В случай на постоянен ток, има спад на напрежението от 1,5 V между адаптера и входа към регулатора. В случай на променлив ток входът на регулатора е около 1,4 пъти RMS изхода на адаптера или по -малко поради натоварване. Ако разликата между входа на регулатора и неговия изход (+5V) е голяма, да речем 7 волта, тогава консумираната от регулатора мощност се доближава до 0,5 вата и е по -добре да използвате малък радиатор, върху който да монтирате чипа (при условие че има място за него) за дълги часове работа при горещо време.

Входният предпазител за променлив ток може да бъде избран в зависимост от външните ви натоварвания (чрез конектора DB15). Други фактори, които влияят върху избора на предпазител, са ограничаващият ток резистор за LED подсветката на LCD дисплея, мостовият кондензатор за зареждащия ток и текущият капацитет на захранващия трансформатор.

Стъпка 5: СХЕМАТИЧНО

СХЕМАТИЧНО
СХЕМАТИЧНО

Стъпка 6: РАБОТА НА СОФТУЕР НА БОРД

Това е скицата, която прави всичко това да се случи … и 32KB НЕ са достатъчни! Можете или да го използвате немодифициран, в който случай бих се радвал на позоваване на моето име, или да го промените по желание и да забравите за мен;-)

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

Обобщение на командите и изразите

“: Ред за коментар, който не може да се отпечата

ai: прикачете прекъсване 0 (щифт D2)

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

aw: „аналогово записване“на arduino или по -правилно pwm

ca: аналогово улавяне в масив

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

di: изчакайте поредица от импулси и измерете продължителността и времето

dl: забавяне

do: във връзка с „wh“

dr: цифрово четене на всеки щифт

dw: цифрово записване на всеки щифт

ed: режим на редактор / програма за зареждане от компютър / преномериране на редове

el: Функция за достъп до EEPROM

end: инструкцията END на програма

ensb: завършва подпрограмата

es: Функция за достъп до EEPROM

fl: прост филтър с пълзяща средна стойност

fr: for-next цикъл (fr-nx)

go: преминете към стъпка на програмата

gosb: продължете изпълнението към подпрограма

gt: изчаква въвеждането от потребителя

if: условие за изпитване и преминете към стъпка

io: GPIO 1-9 бита

ld: програма за зареждане/сливане от EEPROM

lp:: контур, контролиран от клавиатурата, в интерактивен режим

ls: режим на списък / изпращане на програма на компютър по ред

ml: вземете време

mm: показва свободна памет

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

nx: във връзка с „fr“

pl: графичен масив cxx

pm: задайте щифтове за вход или изход

pr: отпечатва съобщение или стойност или персонализиран знак

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

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

rn: стартирайте програмата в RAM

rs: мек нулиране

rx: получаване на знак чрез RS232

si: синхронен сериен вход с тактове и щифтове за данни

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

така: синхронен сериен изход с пинове за часовник и данни

sub: декларира подпрограма

sv: запишете програмата в EEPROM

tn: звуков сигнал

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

wh: цикъл do-while, използван заедно с „do“

Стъпка 7: Видеоклип на мини приложение „sm“работи

посетете моя сайт, за да прочетете цялата история и да изтеглите всички съответни файлове

www.sites.google.com/site/demeterart

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