Բովանդակություն:

DemUino - Տնային համակարգիչ/վերահսկիչ ՝ 7 քայլ
DemUino - Տնային համակարգիչ/վերահսկիչ ՝ 7 քայլ

Video: DemUino - Տնային համակարգիչ/վերահսկիչ ՝ 7 քայլ

Video: DemUino - Տնային համակարգիչ/վերահսկիչ ՝ 7 քայլ
Video: DemUino 2024, Նոյեմբեր
Anonim
Image
Image
Bootloader- ի այրում
Bootloader- ի այրում

Arduino- ով ներշնչված համակարգիչ DemeterArt- ի կողմից Օգտվեք առավելագույնը ձեր հին PS2 ստեղնաշարից: Կոտրեք այն անհատականացված համակարգչի մեջ ՝ իրերը վերահսկելու համար: Ես միշտ ցանկացել եմ կառուցել իմ սեփական համակարգիչը ՝ մի տեսակ ռետրո ոճով, ոչ մի շքեղ, բայց իմ նախասիրություններին համապատասխան հատուկ հնարավորություններով: Այսպիսով, ես դրան հասա atmega328 MCU- ի և Arduino զարգացման հանդերձանքի միջոցով:

Թույլ տվեք նշել, որ այս նախագիծը զգալիորեն ավելի երկար կտևեր կասկածելի վերջնական արդյունքներով, եթե չլինեին տաղանդավոր երկրպագուները, ովքեր եսասեր ավելի քիչ էին մատակարարում անվճար գրադարանները, որոնք բոլորը կարող էին օգտագործել: Շնորհակալություն բոլորին:-)

այցելեք իմ կայքը ՝ ամբողջ պատմությունը կարդալու և բոլոր համապատասխան ֆայլերը ներբեռնելու համար

www.sites.google.com/site/demeterart

Քայլ 1: Առանձնահատկություններ

  • Հիմնված ATMEGA328- ի վրա `32 ԿԲ ֆլեշ, 2 ԿԲ SRAM և 1 ԿԲ EEPROM:
  • աջակցություն ինտերակտիվ և խմբաքանակի ռեժիմներին
  • գծի խմբագիր և ցուցակի խմբագրման ռեժիմ
  • 8 հարմարեցված նիշ օգտագործողի գրաֆիկայի համար
  • Programրագրի 60 քայլ ՝ համարակալված 00,…, 99
  • «Եթե» պայմանական, «while» և «for» օղակները գումարած «goto» և «sub» հայտարարություններ ճյուղավորման համար
  • Հիմնական թվաբանական և մաթեմատիկական արտահայտություններ, գումարած բուլյան թեստեր
  • համակարգի փոփոխականները թույլ են տալիս ժամանակային իրադարձություններ, միջին, rms, min և max արժեքներ անալոգային կապումներից և այլն
  • 26 օգտագործողի փոփոխական ՝ համակարգի փոփոխականների և հրամանների հետ փոխազդելու համար
  • 104 բայթ օգտվողի հասցեական զանգվածից կամ 52 կարճ ամբողջ թվից
  • ծրագրի տվյալները կարդալու/գրելու ունակություն, ինչպես նաև թռիչքի ծածկագիր (p փոփոխական)
  • մինի օսլիոսկոպի ծրագիր `կեղծ գրաֆիկայի համար հարմարեցված նիշերով
  • պահպանել և բեռնել ծրագրերն ու տվյալները EEPROM- ից/
  • բեռնել/պահպանել ծրագրերը և փոփոխականները/համակարգչից
  • autoexec ՝ յուրաքանչյուր վերակայումից հետո EEPROM- ից ծրագիր բեռնել և գործարկել
  • 9 GPIO կապում (ներառյալ SPI- ն) առկա է արտաքին DB15 միակցիչի վրա
  • BUZZER ձայնային էֆեկտների համար

Քայլ 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- ի սխալ id- ն: Այսպիսով, որոշ որոնումներից հետո ես գտա այս տղային, ով ճիշտ հասկացավ, և ես հետևեցի նրա ընթացակարգին: Տարբերությունը միայն 2 կազմաձևման ֆայլեր էին ՝ avrdude.conf և boards.txt, որոնք անհրաժեշտ էին avrdude- ին և arduino IDE 1.0.1 -ին `դա հնարավոր դարձնելու համար: 2 ֆայլերը իրենց համապատասխան վայրերում պատճենելուց հետո (առաջինը ՝ հին ֆայլերի կրկնօրինակում) «arduino328» տարբերակը գործիքներից-> տախտակից հասանելի էր, և avrdude- ն շարունակեց այրել ապահովիչներն ու բեռնիչը: Այժմ չիպը պատրաստ է ծրագրավորվել նոր մեքենայի ներսից:

Քայլ 4: Միավորի կառուցում

Միավորի կառուցում
Միավորի կառուցում
Միավորի կառուցում
Միավորի կառուցում

Պղնձե շերտերով ծակոտած տախտակ օգտագործվել է որպես արագ հավաքման լուծում ՝ չիպերի համար DIP վարդակներով, գիտե՞ք, ամեն դեպքում: Հետո միակցիչների անցքերն ու կտրվածքները, վերականգնման կոճակը և LCD էկրանը բացվեցին ստեղնաշարի չափազանց ամուր և հաստ պլաստիկի միջոցով: Այո, այն կառուցվել է 25 տարի առաջ: Այնուհետև հետևեց լարերի խառնաշփոթը, որոնք բխում էին pcb- ից դեպի տարբեր ծայրամասային սարքեր: Տարրական շարունակականության ստուգում, այնուհետև մատակարարումը միացված էր առանց չիպերի, որոնք պարզապես լարման համար ստուգում էին վարդակները: Այնուհետև մտավ 2 IC և ստեղնաշարի պատյանը ամուր փակվեց ներքևի մասում գտնվող իր պլաստիկ սեղմակների միջոցով: Միավորը պատրաստ էր էսքիզներ այրել վերահսկիչի մեջ:

Ես առաջարկում եմ օգտագործել MAX232 լիցքավորման պոմպերի համար ոչ բևեռ 1uF/16V կոնդենսատորներ: Տեղադրեք երկու չիպերի 100nF տարանջատման կոնդենսատորները հնարավորինս մոտ VCC և GND համապատասխան կապումներին: Օգտագործեք աստղային միացում LM7805 կարգավորիչին հղված հոսանքի և գետնի համար: Անջատիչ 2 -ը կարող է թռիչք լինել `կախված խափանումից, բայց լավ է ունենալ, եթե միայն որոշ դեպքերում խուսափեն հյուրընկալող համակարգչից MCU- ի անցանկալի վերակայումներից: Ամեն դեպքում, անջատիչը պետք է փակ լինի, որպեսզի Arduino IDE- ն կարողանա այրել էսքիզը `նպատակային MCU- ն (RS232- ի PT DTR) վերականգնելու միջոցով: Իմ դեպքում կապը մշտական է (միշտ փակ է): Useանգիչի համար օգտագործեք մի շարք դիմադրողականություն `շարժիչ դարպասից տարողունակության մի քանի nFs մեկուսացնելու համար … երբեք չգիտեք: Տեղադրեք XTAL- ը և բեռնող 18-22pF կոնդենսատորները հնարավորինս մոտ վերահսկիչի համապատասխան կապումներին:

Ուղղիչ կամրջի պատճառով միավորը կարող է սնուցվել ինչպես AC, այնպես էլ DC էներգիայի ադապտերներով: DC- ի դեպքում կա 1.5 Վ լարման անկում ադապտորի և կարգավորիչի մուտքի միջև: AC- ի դեպքում կարգավորիչի մուտքը մոտավորապես 1,4 անգամ գերազանցում է ադապտերի RMS- ի ելքը կամ ավելի փոքր է բեռնման պատճառով: Եթե կարգավորիչի մուտքի և դրա ելքի (+5V) միջև տարբերությունը մեծ է, ասենք 7 վոլտ, ապա կարգավորիչի կողմից սպառվող էներգիան մոտենում է 0,5 վտ -ի, և ավելի լավ է օգտագործել փոքր տաքացուցիչ, որի վրա չիպը տեղադրելու համար (տրամադրվում է դրա համար տեղ կա) շոգ եղանակին երկար ժամեր աշխատելու համար:

AC մուտքային ապահովիչը կարող է ընտրվել `կախված ձեր արտաքին բեռներից (DB15 միակցիչի միջոցով): Այլ գործոններ, որոնք ազդում են ապահովիչների ընտրության վրա, LCD- ի լուսադիոդային լուսավորության համար ընթացիկ սահմանափակող դիմադրողն է, լիցքավորման հոսանքի կամուրջի կոնդենսատորը և մատակարարող տրանսֆորմատորի ընթացիկ հզորությունը:

Քայլ 5: ՍԿԵՄԱՏԻԿ

ՍԿԵՄԱՏԻԿ
ՍԿԵՄԱՏԻԿ

Քայլ 6. SOրագրային ապահովման գործարկում

Սա այն ուրվագիծն է, որը ստիպում է ամեն ինչ տեղի ունենալ … և 32 ԿԲ -ը բավարար չէ: Դուք կամ կարող եք օգտագործել այն չփոփոխված, որի դեպքում ես կգնահատեի իմ անվան հղումը, կամ այն կփոխեի կամքով և կմոռանայի ինձ մասին;-)

Սա մեքենայի վերաբերյալ մանրամասն փաստաթղթեր է:

Հրամանների և արտահայտությունների ամփոփում

«: Չ տպագրվող մեկնաբանությունների տող

ai: կցել ընդհատում 0 (կապ D2)

ar: անալոգային կարդալ

aw: «անալոգային գրառում» մեկ arduino- ի կամ ավելի ճիշտ pwm- ի համար

ca: անալոգային գրավում զանգվածում

cl: մաքրում է ցուցադրումը cno: return *Prgm տողի համարի ինդեքսը

di: սպասեք մի շարք իմպուլսների և չափեք տևողությունը և ժամանակը

dl: ուշացում

անել ՝ «wh» - ի հետ համատեղ

dr: թվային կարդալ ցանկացած քորոց

dw: թվային գրեք ցանկացած քորոց

ed: խմբագրիչի ռեժիմ / բեռնել ծրագիրը ԱՀ -ից / վերհամարել գծերից

el: EEPROM մուտքի գործառույթ

վերջ: ծրագրի END հայտարարությունը

ensb: ավարտվում է ենթածրագիրը

es: EEPROM մուտքի գործառույթ

fl. պարզ շարժվող միջին զտիչ

fr: հաջորդ հանգույցի համար (fr-nx)

go: անցնել ծրագրի քայլին

gosb: շարունակել կատարումը ենթածրագրին

gt: սպասում է օգտվողի մուտքագրմանը

եթե: փորձարկման վիճակը և ցատկել քայլին

io: GPIO 1-9 բիթ

ld: բեռնել/միաձուլել ծրագիրը EEPROM- ից

lp:: ստեղնաշարի վերահսկվող հանգույց ինտերակտիվ ռեժիմում

ls: ցուցակի ռեժիմ / միաժամանակ համակարգչին ծրագիր ուղարկել

մլ. ժամանակ գտեք

մմ: ցուցադրել ազատ հիշողություն

nos: թիվը փոխակերպում է տողի

nx: «fr» - ի հետ համատեղ

pl: գծապատկերի զանգված cxx

pm: ներդիրի կամ ելքի համար կապում սահմանեք

pr: տպում է հաղորդագրություն կամ արժեք կամ հատուկ բնույթ

rgc: range պատճենման հրաման զանգվածների համար

rgs: զանգվածների համար range set հրաման

rn: գործարկեք ծրագիրը RAM- ով

rs: փափուկ վերականգնում

rx: ստացեք կերպար RS232- ի միջոցով

si: սինխրոն սերիական մուտքագրում ժամացույցի և տվյալների կապի հետ

sm: mini oscilloscope app sno: տողը փոխակերպում է թվի

այսպես. սինխրոն սերիական ելք ժամացույցի և տվյալների կապի հետ

ենթ. հայտարարում է ենթածրագիր

sv: պահպանել ծրագիրը EEPROM- ում

tn: ազդանշան հնչեցնել

tx: փոխանցեք համարը RS232- ի միջոցով

wh: do-while հանգույց, որն օգտագործվում է «անել» -ի հետ համատեղ

Քայլ 7. Mini App 'sm' Running- ի տեսահոլովակ

այցելեք իմ կայքը ՝ ամբողջ պատմությունը կարդալու և բոլոր համապատասխան ֆայլերը ներբեռնելու համար

www.sites.google.com/site/demeterart

Խորհուրդ ենք տալիս: