Բովանդակություն:
- Քայլ 1. Ստեղծեք ինքնուրույն Arduino
- Քայլ 2: ISP- ի լարերի միացում
- Քայլ 3: Խմբագրեք Bootloader ֆայլը, այրեք Bootloader- ը և վերբեռնեք ձեր ուրվագիծը
- Քայլ 4: Սերիական հաղորդակցություն
Video: Առանձին Arduino 3.3V W / արտաքին 8 ՄՀց ժամացույց, որը ծրագրավորվում է Arduino- ից Uno ICSP / ISP- ի միջոցով (սերիական մոնիտորինգով): 4 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:46
Նպատակներ:
- Կառուցել ինքնուրույն Arduino, որն աշխատում է 3.3 Վ լարման վրա, 8 ՄՀց արտաքին ժամացույցից:
-
Programրագրավորել այն ISP- ի միջոցով (հայտնի է նաև որպես ICSP, միացված սերիական ծրագրավորում) Arduino Uno- ից (աշխատում է 5 Վ լարման վրա)
Bootloader ֆայլը խմբագրելու և bootloader- ը այրելու համար (ISP- ի միջոցով)
-
FTDI մալուխի միջոցով անկախ Arduino- ից սերիական տեղեկատվություն կարդալ կարողանալու համար
Առանց FTDI մալուխի կարող եք կարդալ սերիական տեղեկատվություն անկախ Arduino- ից
Նախաբան.
Ես փորձում էի կառուցել իմ ինքնուրույն նախագիծը, բայց չտեսա որևէ համապարփակ ուղեցույց ինքնավար Arduino- ի գործարկման, ծրագրավորման և մոնիտորինգի վերաբերյալ. Ես կազմել եմ մի շարք առանձին ուղեցույցներ և փորձել եմ հղում անել, թե որտեղից եմ տեղեկատվություն ստացել ՝ վարկ տալու համար, որտեղ պետք է վարկ լինի: Այս ուղեցույցը երկար օրերի արդյունք է ՝ լուծումներ փնտրելու և դրա մասեր գտնելու ժամանակ, երբ ես կառուցում էի իմ սեփական նախագիծը: Բացի այդ, ես կապել եմ մի քանի օգտակար ապրանքների, որոնք ձեռք կբերվեն ոչ այն պատճառով, որ ես կապված եմ որևէ մեկի հետ ընկերությունները, բայց քանի որ տեղին է ներառել այն կոնկրետ կետերը, որոնց ես հղում եմ կատարում:
Ընդհանուր հարցեր նախքան սկսելը
Ինչու՞ պետք է այն ծրագրավորել ISP- ով և վերահսկել FTDI- ի միջոցով: Ինչու՞ չեք կարող այն պարզապես ծրագրավորել FTDI- ի միջոցով:
Մենք ստիպված կլինենք փոխել ապահովիչների կարգավորումները `այրելով նոր բեռնիչ, և դա չեք կարող անել սերիական հաղորդակցության միջոցով: Դուք պետք է այրեք bootloader- ը ISP- ի միջոցով: Սա նաև օգտակար է նրանց համար, ովքեր չունեն նախապես բեռնված ATMEGA328 չիպ:
Ինչու՞ ես պարզապես ISP մալուխ չեմ օգտագործում սերիական մոնիտորինգով, ինչպես այս մեկը:
Հնարավոր է, ինձ պես, դուք պարզապես պատահաբար չունեք մեկը, այլ ոչ թե սպասում եք, որ առաքվի, դուք սիրում եք օգտագործել այն, ինչ ունեք: Ես պատահաբար ունեմ FTDI մալուխ (չնայած վերջում դուք կգտնեք, որ դրա կարիքը չունեք. Այն պարզապես հեշտացնում է ձեր կյանքը):
Ինձ պե՞տք չէ Uno- ից տրամաբանական մակարդակի անցում կատարել դեպի անկախ Arduino:
Այո, դուք անում եք, բայց ես ձեզ ցույց կտամ, թե ինչպես պատրաստել ինքներդ: Ինչպես ISP մալուխի, այնպես էլ ես պատահաբար չունեմ:
Ես ուզում եմ դա սպառել արտաքին էներգիայից: Ինչպե՞ս կարող եմ դա անել:
Կան բազմաթիվ ուղեցույցներ, որոնք ցույց են տալիս, թե ինչպես կարելի է անկախ Arduino- ն մարտկոցի լիցքից անջատել: Ես կգրեմ, թե ինչպես դա արեցի և կկապեմ այստեղ [կտեղադրեմ ավելի ուշ]:
Ո GԵՈՅԸ
Քայլ 1. Ստեղծեք ինքնուրույն Arduino
1) Կառուցեք անկախ Arduino- ն այս հղումից: Ուղեցույցի միակ մասը, որն անհրաժեշտ է, «ATMEGA8/168/328 հիմունքներ» -ն է:
- դուք կարող եք միացնել անկախ Arduino- ն 3.3V- ից Arduino Uno- ից: (Կարող եք բաց թողնել ձեռնարկի առաջին բաժինը `« Էլեկտրամատակարարման համար շրջանառության ավելացում »վերնագրով:
- Փոխարինեք 16 ՄՀց ժամացույցը 8 ՄՀց ժամացույցով:
-
Ավելացրեք 0.1 uF կափարիչներ ՝ VCC և Gnd (երկու կողմերում) VRef և Gnd միջև:
- Ես դրանք չունեմ նկարի մեջ, բայց ունեմ դրանք իմ նախագծերում:
- Ես գիտեմ, որ դա լուսանկարում 16 ՄՀց տատանում է: Ես լուսանկարել եմ նախքան իմացա այն ամենը, ինչ արել եմ ուղեցույցում:
ATMEGA328p պինուտ պատկերի աղբյուրն այստեղ:
Խնդիրների վերացման ընդհանուր խորհուրդներ
- Համոզվեք, որ VCC- ից 10k ռեզիստորի միջոցով բարձր եք վերակայել ATMEGA- ի 1 -ին կապին: Եթե քորոցը հիմնավորված է կամ լողացող, այն չի աշխատի:
- Կրկնակի ստուգեք, որ լարերը և տատանումները ճիշտ եք մտցրել:
- Համոզվեք, որ օգտագործում եք 22pF կոնդենսատորներ 8 ՄՀց տատանումների համար: Այլ կերպ չի ստացվի:
- Համոզվեք, որ սարքը սնվում է:
Քայլ 2: ISP- ի լարերի միացում
2) Ստեղծեք ISP բաժինը:
Դուք այստեղ հետևելու եք այս ուղեցույցին ՝ մի փոքր, բայց շատ կարևոր քայլով:
Պատճառն այն է, որ դուք պարզապես չեք կարող հետևել ուղեցույցին, այն է, որ կարոտում եք կարևոր մասը. Դուք չեք կարող ծրագրավորել 3.3 Վ սարքը անմիջապես 5 Վ կապերից: (Համենայն դեպս, ես չէի կարող. Դա չէր աշխատի, մինչև ես դա չանեի): Դուք պետք է տեղադրեք տրամաբանական մակարդակի փոխարկիչ, որը 5V ազդանշանները UNO- ից տեղափոխում է 3.3Vstandalone Arduino:
Եթե դուք չունեք տրամաբանական մակարդակի փոխարկիչ տախտակ, կարող եք այն պատրաստել ՝ օգտագործելով դիմադրիչներ: Իրականում տրամաբանական մակարդակի ամեն ինչ փոխում է (այնքան, որքան ներքև ես իջնում) լարման բաժանարար է: Ձեզ հարկավոր կլինի 6 նույն ռեզիստոր, ոչ շատ բարձր կամ շատ ցածր: Ես օգտագործել եմ 220 օմ դիմադրողականություն, բայց վստահ եմ, որ նույնիսկ 10k դիմադրիչները կաշխատեն:
SCK (թվային կապիչ 13) և MOSI (թվային կապիչ 11) համար օգտագործեք լարման բաժանարար `լարումը մեկ երրորդով կտրելու համար: Ըստ էության, դուք կունենաք մեկ Uno SCK և MOSI, այնուհետև դիմադրություն (220 օհմ), այնուհետև SCK և MOSI միացված անկախ Arduino- ին և 2 դիմադրություն (ընդհանուր 440 օհմ) գետնին:
Այսպիսով, կարդացեք այս բաժնի սկզբում նշված ուղեցույցը, բայց ներառեք լարման բաժանարարներ SCK- ի և MOSI- ի միջև: Հիշեք, SCK- ը, MISO- ն, MOSI- ն և RESET- ը Uno- ի 13, 12, 11 և 10 կապերն են, բայց 19 -ն են:, 18, 17 և 1 ինքնուրույն Arduino- ում:
Խնդիրների վերացման ընդհանուր խորհուրդներ
-
ՍՏՈԳԵԼ ԼԱՅՐՈՄԸ
- Եթե ծրագիր գրելիս փորձում եք ստանալ 0 -ի սարքի ստորագրությունը, ապա ձեր էլեկտրագծերը գրեթե անջատված են, կամ անկախ Arduino- ն չի սնվում:
- Բացի այդ, համոզվեք, որ Uno- ի 10 -ից 10 -ը ստացել եք անկախ Arduino- ում
-
ՇՏԱՊԵԼ ԼԱՐԻ ԲԱIDԱՆՈՐՆԵՐԸ
Համոզվեք, որ ունեք լարման բաժանարարներ ՝ 1: 2 հարաբերությամբ (բարձր կողմ. Ցածր կողմ) ինչպես SCK- ի, այնպես էլ MOSI- ի դիմադրիչների համար: Օրինակ ՝ 220 ռեզիստոր +5 վ կողմում, այնուհետև 220 220 օմ դիմադրություն (ընդհանուր 440 օհմ) դեպի գետնին, իսկ ազդանշանը դեպի անկախ Arduino- ի կեսին:
Քայլ 3: Խմբագրեք Bootloader ֆայլը, այրեք Bootloader- ը և վերբեռնեք ձեր ուրվագիծը
3) Խմբագրեք bootloader (boards.txt) ֆայլը և այրեք bootloader- ը անկախ Arduino- ում: Վերբեռնեք ձեր ուրվագիծը:
Bootloader ֆայլը խմբագրելը
Անկախ Arduino- ն գործարկելու համար դուք պետք է խմբագրեք bootloader- ի brownout ապահովիչի կարգավորումները: Հակառակ դեպքում, դուք կկարողանաք այրել bootloader- ը դրա վրա, բայց չեք կարողանա որևէ ուրվագիծ վարել:
Դուք կարող եք ամբողջությամբ հեռացնել շագանակագույն հայտնաբերումը, բայց ես դա խորհուրդ չեմ տա: Փոխարենը, մենք այն իջեցնելու ենք 2.7 Վ -ից (այն, ինչ լռելյայն հայտնվեց իմ չիպի վրա) և այն փոխարինեցինք 1.8 Վ -ով: Սակայն, ի վերջո, այստեղ կարող եք ընտրել, թե ինչ brownout պարամետրեր եք ցանկանում `օգտագործելով ապահովիչների հաշվիչը:
Իմ տախտակների ֆայլը հետևյալ վայրում էր.
C: / Program Files (x86) Arduino / hardware / arduino / avr
Այնուամենայնիվ, դուք կարող եք ունենալ մեկից ավելի boards.txt ֆայլ ձեր ապարատային թղթապանակում, քան /arudino /: Դուք խմբագրելու եք boards.txt ֆայլը / arduino / location- ում, քանի որ փոփոխելու եք ATMEGA328p (3.3V, 8 ՄՀց) բաժինը:
Դուք կարող եք կորցնել խմբագրված boards.txt ֆայլը, եթե նորից տեղադրեք կամ թարմացնեք Arduino IDE- ն (ըստ այս գրառման): Սա նշանակում է, որ եթե թարմացնեք Arduino IDE- ն, ստիպված կլինեք նորից փոխել այս կարգավորումները, եթե ցանկանում եք ստեղծել նույն նույն անկախ Arduino- ից մեկ այլ:
Boards.txt ֆայլում ոլորեք ներքև կամ որոնեք «Pro Mini»: Բաժինը վերնագրված է «pro.name = Arduino Pro կամ Pro Mini»: Ոլորեք ներքև դեպի «pro.menu.cpu.8MHzatmega328 = ATmega328P (3.3V, 8 ՄՀց)» ենթաբաժին:
Փնտրեք այն տողը, որն ասում է "pro.menu.cpu.8MHzatmega328.bootloader.extended_fuses = _"
Փոխեք կարգավորումները xFE- ի: (pro.menu.cpu.8MHzatmega328.bootloader.extended_fuses = 0xFE):
Պահել և դուրս գալ:
Bootloader- ի այրում
Դա անելուց հետո կարող եք հետևել ISP ուղեցույցի «Հրահանգներ» բաժնին ՝ 1 -ից 5 -րդ քայլերից:
Որոշ բաներ հստակեցնելու համար.
-
«Arduino as ISP» էսքիզը վերբեռնելիս պետք է համոզվեք, որ ընտրել եք COM- ի ճիշտ պորտը և պրոցեսորը:
Այս դեպքում դա նշանակում է, որ դուք ընտրել եք ձեր Arduino- ի COM նավահանգիստը Գործիքներ-> Պորտ. COM X (Arduino Uno), իսկ տախտակը ՝ Arduio Uno:
-
Ընտրեք ճիշտ ծրագրավորողը ՝ Գործիքներ-> merրագրավորող-> Arduino- ի ներքո որպես ISP:
ՉԻ ArduinoISP կամ ArduinoISP.org
-
Բեռնախցիկն այրելուց առաջ փոխեք «Pro կամ Pro Mini» տախտակը և պրոցեսորը «ATMEGA328p (3.3V, 8 ՄՀց)»:
Մինչև տախտակի ճիշտ տեսակը չընտրեք, չեք տեսնի պրոցեսորի բաժինը:
Այրեք բեռնախցիկը ինքնուրույն Arduino- ի վրա ԱՌԱ, երբ փորձեք էսքիզներ գրել դրա վրա:
Էսքիզը բեռնելը
Սա շատ կարեւոր է: Այժմ դուք կարող եք ծրագրավորել կամ Arduino- ն ՝ Uno- ն և Standalone- ը: Եթե դուք ճիշտ սարք չեք բեռնում, ապա պետք է կրկնել վերը նշված հատվածը և վերաշարադրել Arduino- ն որպես ISP ծրագիր Uno- ում:
Երբ էսքիզը վերբեռնում եք, համոզվեք, որ կտտացնում եք Գործիքներ -> Վերբեռնել ծրագրավորողի միջոցով կամ Կտտացրեք Ctrl+Shift+U: Կարող եք նաև պահել shift- ը և սեղմել սլաքի պատկերակին, բայց առանց կտտոցը պահելու մի սեղմեք սլաքի պատկերակին:
Խնդիրների վերացման ընդհանուր խորհուրդներ
- Խնդիրների վերացման համար միացրեք մանրամասն ելքը:
-
«Սարքի ստորագրողը 0 -ն է»: [Այս մեկը շատ հավանական է, որ տեղի ունենա]:
- տես ISP լարերի բաժինը: Կամ սխալ եք միացրել անկախ Arduino- ն, կամ այն միացված չէ:
- Համոզվեք, որ ընտրել եք ճիշտ COM նավահանգիստը և տախտակը / պրոցեսորը: Երբ այրում եք բեռնախցիկը, ՊԵՏՔ է համոզվեք, որ դրա վրա այրում եք Pro Mini 3.3V 8 ՄՀց բեռնիչ, կամ ապահովիչները ճիշտ չեն տեղադրվի:
-
"Ես խմբագրել եմ boards.txt ֆայլը, բայց փոփոխությունները չեմ տեսնում"
Համոզվեք, որ դուք խմբագրել եք ճիշտ boards.txt ֆայլը: Փորձեք թարմացնել Arduino IDE- ն, եթե խմբագրումները չեն աշխատում, կամ ժամանակավորապես հեռացրեք ձեր / սարքավորման / պանակի այլ պանակներ:
-
"Չեմ գտնում boards.txt- ի պրոֆեսիոնալ մինի հատվածը:"
Դուք ճիշտ boards.txt ֆայլում չեք փնտրում: Ստուգեք Arduino // hardware/arduino/թղթապանակը:
Քայլ 4: Սերիական հաղորդակցություն
4) Սերիական հաղորդակցության միջոցով վերահսկել ինքնուրույն սարքը
Դուք իսկապես կարող եք դա անել 2 մեթոդի միջոցով, այնպես որ, եթե նույնիսկ չունեք FTDI մալուխ / ճեղքման տախտակ, դա աշխարհի վերջը չէ: Եվ հիշեք, որ ինքնուրույն Arduino- ում տեղադրված էսքիզը կարդալու համար պետք է ունենա Serial.print նախադասություններ: եթե այն չեք գրել ծրագրում, ոչինչ չեք տեսնի:
Եթե չունեք FTDI մալուխ
Բեռնիչն այրելուց և ձեր ուզած ծրագիրը գրելուց հետո կարող եք (շատ ուշադիր և հիշելով, թե որ կողմնորոշմամբ է այն հետ գնում) Arduino Uno- ից հանել ATMEGA328 DIP չիպը: Ես խորհուրդ եմ տալիս դրա համար օգտագործել հարթ գլուխ:
Դուք կարող եք միացնել standaloneArduino's RX- ը Uno's RX- ին և TX- ը TX- ին: Այո, սովորաբար հակառակն է, բայց դուք կարող եք Uno- ն համարել տեղեկատվությունը «փոխանցող» IDE- ի սերիական մոնիտորին: Ահա թե ինչու այս դեպքում RX- ը TX- ին չեք միացնում և TX ro RX- ը: Երբ գործարկում եք ձեր ծրագիրը, համոզվեք, որ ունեք Arduino Uno- ի COM նավահանգիստը և բացում եք սերիական հսկիչ: Դուք կկարողանաք տեսնել անկախ Arduino- ի սերիական ելքը:
(Այս լուծումն այստեղ հաշվվում է Robin2- ին):
Եթե դուք իսկապես ունեք FTDI մալուխ / տախտակ
(Ես օգտագործում եմ Sparkfun- ի FTDI տախտակը, որը ես վերածել եմ 3.3 Վ -ի ՝ օգտագործելով հետևի մասի զոդման պահոցը)
Պարզապես միացրեք բեկման տախտակի GND- ը ինքնուրույն Arduino- ի գետնին և միացրեք Breakoutboard- ի RX- ը Arduino- ի TX- ին և TX- ին `RX- ին: (Եթե դուք ուղղակի Սերիական մոնիտորինգ եք և ոչինչ չեք գրում, կարող եք պարզապես միացնել հացահատիկի RX- ը Arduino TX- ին):
Հիշեք, որ այս պահին դուք ունեք առանձին Arduino- ի սնուցման տարբերակ Uno OR FTDI մալուխի միջոցով: Մի միացրեք երկու էներգիայի աղբյուրները միաժամանակ: Նկատի ունեցեք, որ դուք պետք է փոխեք COM պորտը, քանի որ այն տարբերվելու է Arduino Uno COM պորտից:
Խնդիրների վերացման ընդհանուր խորհուրդներ
-
«Ես ոչինչ չեմ տեսնում»:
- Ստուգեք, արդյոք դուք միացված եք ճիշտ COM պորտին:
- Ստուգեք, արդյոք ունեք FTDI- ի ամենավերջին վարորդները:
- ԱՊԱՀՈՎԵԼ ՀՈUԸ ՄԻԱՎԱ է:
-
«Այն, ինչ տեսնում եմ, սերիական մոնիտորի աղբի արտահոսքն է»:
- Դուք ստանում եք մի բան, որը լավ նշան է:
- Այնուամենայնիվ, ստուգեք FTDI տախտակի լարումը:
- Անկախ Arduino- ն իր TX- ով թողարկում է 3.3 Վ լարման, և FTDI խորհուրդը կարող է այն չվերցնել, եթե ակնկալում է 5 վ:
- Ստուգեք բաուդ արագությունը:
- Համոզվեք, որ միացված եք գետնին և միացված է միայն մեկ էներգիայի աղբյուր: (Այսինքն, մի՛ միացրեք անկախ Arduino- ն Uno AND FTDI- ի տախտակից:
Խորհուրդ ենք տալիս:
DIY -- Ինչպես պատրաստել սարդ ռոբոտ, որը կարելի է կառավարել սմարթֆոնի միջոցով Arduino Uno- ի միջոցով. 6 քայլ
DIY || Ինչպես պատրաստել սարդ ռոբոտ, որը կարելի է կառավարել սմարթֆոնի միջոցով Arduino Uno- ի միջոցով. Spider ռոբոտ պատրաստելիս կարելի է շատ բան սովորել ռոբոտաշինության մասին: Ինչպես և ռոբոտներ պատրաստելն ինչպես ժամանցային է, այնպես էլ դժվար: Այս տեսանյութում մենք ձեզ ցույց կտանք, թե ինչպես պատրաստել Spider ռոբոտ, որը կարող ենք գործել մեր սմարթֆոնի միջոցով (Անդրոյ
Առանձին ATmega328p (օգտագործելով ներքին 8 ՄՀց ժամացույց) ՝ 4 քայլ
Ինքնուրույն ATmega328p (ներքին 8 ՄՀց ժամացույցի օգտագործմամբ). ATmega328p- ը մի չիպային միկրոկոնտրոլեր է, որը ստեղծվել է Atmel- ի կողմից megaAVR ընտանիքում (հետագայում Microchip Technology- ը ձեռք է բերել Atmel- ը 2016 թ.): Այն ունի փոփոխված Հարվարդի ճարտարապետության 8-բիթանոց RISC- պրոցեսորային միջուկ: Այս միկրոկոնտրոլերը Arduino- ի ուղեղն է
DIY ցածր լարման արտաքին լուսավորություն, որը վերահսկվում է Raspberry Pi- ի միջոցով. 11 քայլ (նկարներով)
DIY -ածր լարման արտաքին լուսավորություն, որը վերահսկվում է Raspberry Pi- ի միջոցով. Ինչու՞ Նաև ես դեռ հոգնել եմ `միացնելով իմ բոլոր լույսերը, տեխնիկան, մուտքի դուռը, ավտոտնակի դուռը և ով գիտի, թե ինչ այլ բան անտեսված ինտերնետից: Հատկապես այնպիսի իրադարձությունների դեպքում, ինչպիսիք են
Քայլ Servo շարժիչը սերիական հսկողության միջոցով Arduino- ի միջոցով օգտագործելով 3D տպիչ - Pt4: 8 քայլ
Arduino- ի միջոցով եռաչափ տպիչի միջոցով Step Servo Motor- ի սերիական կառավարում - Pt4. Motor Step շարքի այս չորրորդ տեսանյութում մենք կօգտագործենք այն, ինչ սովորել էինք նախկինում սերիական հաղորդակցության և իրական վերահսկողության միջոցով stepper servo շարժիչ կառուցելու համար: դիրքի հետադարձ կապ ՝ օգտագործելով դիմադրիչ կոդավորիչ, որը վերահսկվում է Arduino- ի կողմից:
Guitar Amp Tilt Stand առանձին կամ առանձին գլուխներով լրիվ կամ կես դարակների համար և ավելին. 5 քայլ
Guitar Amp Tilt Stand for Full կամ Half Stacks With առանձին գլուխներով և ավելին. Ես գիտեմ, որ ես խենթ եմ, բայց դա ինձ հետ ամեն ինչ կարգին է: Ես դա կառուցել եմ որոշ տեսություններ ստուգելու համար: Տեղական երաժշտական խանութի ցնցումը թույլ չտվեց ինձ տեղադրել իր թանկարժեք նոր Մարշալի հավաքածուները դրա վրա և փախավ ինձ: Ես չեմ կարող նրան իսկապես մեղադրել այդքան փոքր մտածողության համար