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

Handheld BASIC համակարգիչ ՝ 6 քայլ (նկարներով)
Handheld BASIC համակարգիչ ՝ 6 քայլ (նկարներով)

Video: Handheld BASIC համակարգիչ ՝ 6 քայլ (նկարներով)

Video: Handheld BASIC համակարգիչ ՝ 6 քայլ (նկարներով)
Video: Как ПОДСТРИЧЬСЯ самой ? ЛЕГКО ! Видео урок №6 2024, Նոյեմբեր
Anonim
Handheld BASIC համակարգիչ
Handheld BASIC համակարգիչ
Handheld BASIC համակարգիչ
Handheld BASIC համակարգիչ

Այս Instructable- ը նկարագրում է BASIC- ով աշխատող փոքր ձեռքի համակարգիչ կառուցելու իմ ընթացքը: Համակարգիչը կառուցված է ATmega 1284P AVR չիպի շուրջ, որը նույնպես ներշնչեց համակարգչի հիմար անունը (HAL 1284):

Այս կառուցվածքը HEAVILY ոգեշնչված է այստեղ հայտնաբերված զարմանահրաշ նախագծից և SuperCON BASIC կրծքանշանից:

Համակարգիչն աշխատում է TinyBasic- ի փոփոխված տարբերակով, չնայած ծրագրաշարի մեծ մասը հիմնված է dan14 նախագծի վրա: Դուք, իհարկե, կարող եք հետևել այս Ուսուցողական, կամ նույնիսկ ավելի լավ, կատարելագործել այն, քանի որ ես մի քանի սխալ եմ թույլ տվել:

Այս նախագծի համար ես ստեղծեցի նաև ձեռնարկ: Այն նշում է որոշ սխալներ և առանձնահատկություններ ընտրված մոնիտորի համար, բայց ամենակարևորը `այն ունի ՀԻՄՆԱԿԱՆ գործողությունների ցանկ:

Այս հրապարակումից հետո ես պատրաստեցի նախագիծը ցուցադրող տեսանյութ:

Քայլ 1. Իմ օգտագործած մասերը

Օգտագործված մասեր
Օգտագործված մասեր
Օգտագործված մասեր
Օգտագործված մասեր
Օգտագործված մասեր
Օգտագործված մասեր

Հիմնական IC- ի համար.

  • ATmega 1284P
  • 16 ՄՀց բյուրեղ
  • 2x 22pf կերամիկական կոնդենսատոր
  • 10KΩ դիմադրություն (վերակայման համար քաշեք դեպի վեր)
  • 4-պին կոճակ (վերակայման համար)
  • 470Ω Reistor (կոմպոզիտային տեսանյութերի համար)
  • 1kΩ դիմադրություն (կոմպոզիտային տեսանյութերի համաժամացման համար)
  • 3 պինային թռիչք (տեսազանգի համար)
  • Պասիվ ազդանշան

Ստեղնաշարի կառավարման համար.

  • ATmega 328P (ինչպես Arduino Uno- ում օգտագործվողները)
  • 16 ՄՀց բյուրեղ
  • 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-պտույտ jumper (էներգիայի մուտքի և հիմնական անջատիչի համար)

GPIO (Միգուցե մի քանի հիմք ավելացնեք).

  • 7-պտուտակ ցատկող
  • 2x 8-պտույտ Jumper
  • 2-փամփուշտ Jumper (5V- ի և GND- ի համար)
  • 3-4-պին Jumper (սերիական հաղորդակցության համար)

Ոչ PCB:

  • 4 դյույմանոց LCD էկրան ՝ կոմպոզիտային տեսանյութով (իմը մուտքային լարում ուներ 7-30 Վ-ի սահմաններում)
  • 3D տպագրության կրող `ցուցադրման համար
  • Մի տեսակ անջատիչ

Քայլ 2: Շղթան

The Circuit
The Circuit

Շղթան այնքան էլ գեղեցիկ չէ, և հիմնական IC- տարածաշրջանի մեծ մասը ներշնչված է dan14- ով: Ասածս այն է, որ բավականին ուղիղ Arduino- ն Breadboard- շղթայի վրա է: Ստեղնաշարը պարզ ցանց է և վերահսկվում է ATmega328- ի կողմից: Երկու AVR չիպերը հաղորդակցվում են UART սերիական կապում:

Թե՛ պատկերը, թե՛ իմ Արծիվ-ֆայլերը կցված են և, հուսով եմ, բավական կլինեն շրջանագիծը վերստեղծելու համար: Եթե ոչ, ազատ զգուշացրեք ինձ տեղեկացնելը, և ես կթարմացնեմ Instructable- ը:

Քայլ 3: PCB

PCB- ն
PCB- ն
PCB- ն
PCB- ն

PCB- ն երկշերտ է և ստեղծվել է Auto Route- ի միջոցով (Օ,, ինչպիսի ** անցք): Այն ունի կոճակներ և էներգիայի ցուցիչ LED առջևում, իսկ մնացածը ՝ հետևում: Ես ունեի իմ PCB- ն JCL PCB- ով, և նրանք դրա հետ զարմանալի աշխատանք կատարեցին: PCB- ն վերստեղծելու համար անհրաժեշտ ֆայլերը պետք է լինեն Eagle- ֆայլերում նախկինում:

Ես կառաջարկեի վերափոխել PCB- ն, քանի որ ես ունեմ որոշ բաներ, որոնք կուզենայի այլ կերպ անել: Եթե ձեզ դուր է գալիս իմ դիզայնը, ես դեռ ունեմ (գրելու պահին) չորս չօգտագործված տախտակ, որոնք ես ավելի քան պատրաստ եմ վաճառել:

Տախտակն ունի չորս հորատման անցքեր, որոնք ես օգտագործել եմ LCD էկրանը տեղադրելու համար:

Քայլ 4: Կոդի վերբեռնում

Կոդի վերբեռնում
Կոդի վերբեռնում
Կոդի վերբեռնում
Կոդի վերբեռնում
Կոդի վերբեռնում
Կոդի վերբեռնում

Թե՛ 1284 – ը, և թե՛ 328 – ը, իհարկե, կարիք ունեն ծածկագրի և իմ օգտագործած ծածկագիրը կարելի է գտնել այստեղ ՝ https://github.com/PlainOldAnders/HAL1284 ArduinoSrc/src- ի ներքո: Ես պարզապես օգտագործեցի Arduino IDE- ն ՝ կոդը փոփոխելու և վերբեռնելու համար, բայց մինչ դա հնարավոր կլինի անել, դուք պետք է այրեք բեռնիչ սարքերը IC- ներում.

ATMega328:

Այս մեկը հեշտ է, այն իմաստով, որ այնտեղ շատ աջակցություն կա, թե ինչպես կարելի է այրել bootloader- ը և վերբեռնել կոդը այս IC- ին: Ես սովորաբար հետևում եմ այս ուղեցույցին, հիմնականում այն պատճառով, որ անընդհատ մոռանում եմ առանձնահատկությունները:

328 -ի կոդը (ArduinoSrc/ստեղնաշարի ներքո) բավականին պարզ է: Այն լիովին ապավինում է Adafruit_Keypad-master- գրադարանին: Եթե lib- ում ինչ-որ բան փոխվի, ես ներառել եմ այն տարբերակը, որն օգտագործել եմ իմ github էջում ՝ ArduinoSrc/lib- ի ներքո:

ATmega1284:

Սա ինձ համար մի փոքր դժվար էր, երբ առաջին անգամ ստացա IC- ն: Սկսեցի այստեղից ստանալով բեռնիչը և հետևեցի տեղադրման ուղեցույցին: Բեռնիչն այրելու համար ես պարզապես արեցի նույնը, ինչ 328 -ի դեպքում և օգնություն ստացա այստեղից: Երկու IC- ների համար ես պարզապես օգտագործել եմ Arduino Uno- ն ՝ բեռնիչն այրելու և ծածկագիրը վերբեռնելու համար (բեռնվելիս IC- ն հեռացվել է Arduino Uno- ից):

Կոդը (ArduinoSrc/HAL1284Basic- ի ներքո) ինձ համար չափազանց բարդ է, բայց ես կարողացա փոփոխել կոդի որոշ հատվածներ.

Ես ավելացրի մի քանի հրաման (դրանք ձեռնարկում նշվում են [A] - ով. Pdf), և ես փոխեցի նաև այլ հրամաններ.

Tone: The tone հրահանգը պարզապես օգտագործում էր Arduino- ի հնչերանգային գործառույթը նախկինում, սակայն TVout գրադարանից օգտվելիս դա ազդանշանի չաշխատելու պատճառ դարձավ: Ես փոխեցի այն TVout- ի հնչերանգային գործառույթի օգտագործման համար, բայց դա նշանակում է, որ հնչերանգի քորոցը պետք է լինի 15 փին (atmega1284- ի համար)

Սերիական հաղորդակցություն. Քանի որ ստեղնաշարը DIY է, այն օգտագործում է սերիական հաղորդակցություն կերպարները կարդալու համար: Քանի որ այստեղ օգտագործվում է atmega1284- ը, առկա են երկու սերիական հաղորդակցության ուղիներ, և երբ «սերկոմը» միացված է, ծածկագիրը նաև թույլ է տալիս գրել սերիական պորտով (համակարգչից կամ որևէ այլ բանից):

Բանաձև. Այս ծրագրի համար օգտագործվող մոնիտորը բավականին բութ է, և անհրաժեշտ է փոքր լուծում, հակառակ դեպքում նկարը թարթում է: Եթե ավելի լավ մոնիտոր է օգտագործվում, ես կառաջարկեի փոխել լուծումը կարգաբերման գործառույթում:

Քայլ 5: Հավաքում

Ժողով
Ժողով
Ժողով
Ժողով
Ժողով
Ժողով

Բեռնված ծածկագրով և PCB- ով և մասերով պատրաստ լինելով, այժմ հավաքման ժամանակն է: Բոլոր այն մասերը, որոնք ես օգտագործել էի, անցքերով էին անցել, ուստի զոդումը շատ դժվար չէր (ի տարբերություն այնտեղի չարաճճի-SMD-soldering-fellas- ների): Մոնիտորը 3DB տպիչով ամրացված էր PCB- ի չորս հորատման անցքերի վրա: Եթե օգտագործվում է մեկ այլ մոնիտոր, ապա հուսով եմ, որ հորատման չորս անցքերը կարող են օգտագործվել դրա տեղադրման համար:

Այստեղ օգտագործվող մոնիտորի կրիչը նախատեսված է նաև միացման անջատիչ տեղադրելու համար (միացված է PCB- ի «անջատիչ» թռիչքին) և մոնիտորի երեք հսկիչ կոճակներին: Սարքը ամրացվում է պլաստմասե M3 պտուտակներով և հեռավորությամբ:

Էլեկտրաէներգիայի միացման համար ես օգտագործել եմ JST PCB միակցիչ, չնայած որ տակառի սլաքը մի փոքր ավելի հարթ կլիներ: Տախտակը սնուցելու համար ես անցա 12 Վ էլեկտրամատակարարման կամ երեք 18650 մարտկոցի միջև: Ինձանից ավելի հարթ կովբոյը, հավանաբար, կարող էր նախագծել տախտակի համար մարտկոցի փայլուն պահիչ:

Քայլ 6: Սխալներ և ապագա աշխատանք

Սլաքների ստեղներ. Սլաքների ստեղները պատահական են դրված և շատ գործառույթներ չեն կատարում: Սա դժվարացնում է նավարկությունը

Ֆայլ I/O: Գոյություն ունեն File I/O հնարավորություններ, սակայն դրանք չեն իրագործվում: Դրա դեմ պայքարելու համար HAL1284Com ծրագիրը կարող է ֆայլեր վերբեռնել տախտակ: Հնարավոր է նաև վերբեռնել EEPROM:

PEEK/POKE. PEEK- ը և POKE- ն անփորձ են, և ես վստահ չեմ, թե որոնք են հասցեները:

Break: Break (Esc) երբեմն խառնաշփոթ է առաջացրել ամբողջ կոդի հետ, երբ գտնվում է անսահմանափակ հանգույցներում:

Պին 7. PWM կապ 7 -ը կարող է դժվար լինել DWRITE High կամ AWRITE 255 գրելիս: Այն լավ է աշխատում AWRITE 254 -ով:

Իդիոտ. Իդեալական կլինի, որ կարողանաք նաև վերբեռնել UART1- ի միջոցով, բայց վերբեռնումը հնարավոր է միայն UART0- ի միջոցով, այնպես որ վերբեռնումը պետք է կատարվի `հանելով հիմնական IC- ն: Էկրանը և լարման կարգավորիչը 5 -ը մի փոքր չափազանց տաքանում է երկար աշխատելիս:

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