Lego Mindstorms NXT

LEGO Mindstorms NXT, ծրագրային ռոբոտիկայի ձևաչափ, որոնք կյանքի են կոչվել Lego-ի կողմից հուլիսի վերջին 2006 թվականին։ Այն փոխարինեց առաջին սերնդի Lego Mindstorms Kit-ին, որն կոչվում է Ռոբոտիկայի Գյուտարար համակարգ։ Բազային կոմպլեկտները առաքվում են երկու տարբերակով՝ մանրածախ Տարբերակ (շարք # 8527) և կրթության վրա հիմնված զամբյուղ (հավաքածու) (շարք #9797), և կրթական բազային հավաքածու (շարք # 9797)։ Այն գալիս է NXT-G ծրագրավորման ծրագրի հետ, կամ ընտրովի LabVIEW Lego Mindstorms-ի համար։ Մի շարք ոչ պաշտոնական լեզուներ կան, ինչպիսիք են, օրինակ, NXC, NBC, leJOS NXJ և RobotC: Փաթեթի նոր տարբերակը Lego Mindstorms NXT 2.0, արձակվել է օգոստոսի 1–ին, 2009 թվականին, հատկանշվում է գունավոր սենսորային և այլ նորարար հնարավորություններով։ Կա այժմ նոր Lego Mindstorms ռոբոտ, որը կոչվում է EV3։

NXT Խելացի Փաթեթ 
 
Փաթեթի հիմնական բաղադրիչն է աղյուսաձև համակարգիչը, որը կոչվում է NXT Խելացի Փաթեթ AKA (Ciara)։ Այն կարող է ներդնել մինչեւ չորս սենսորների և վերահսկողության մինչև երեք շարժիչ մոդիֆիկացված RJ12 մալուխների տարբերակի միջոցով, շատ նման բայց անհամատեղելի RJ11 հեռախոսին։ Պլաստիկ ցիցը, որը պահում է մալուխը, վարդակի մեջ դնելու համար տեղափոխվում է մի փոքր դեպի աջ։ Աղյուսն ունի 100×60 պիքսել մոնոխրոմ LCD էկրան և չորս կոճակ, որոնք կարող են օգտագործվել ղեկավարելու ինտերֆեյսը, օգտագործելով հիերարխիկ մենյուներ։ Այն ունի 32-bit ARM7TDMI միջուկ, Atmel AT91SAM7S256 միկրովերահսկում 256 կբ ֆլեշ հիշողությամբ և 64 կբ օպերատիվ հիշողությամբ, գումարած 8-bit Atmel AVR ATmega48 միկրովերահսկում և Bluetooth: Այն ունի նաև խոսելու հարմարանք և կարող է վերարտադրել ձայնային ֆայլեր նմուշառման սակագներով մինչև 8 kHz։ Լիցքավորումը մատակարարվում է 6 Ա․Ա․ (1․5 5-ական), մարտկոցների մոջոցով, սպառողական տարբերակով, Li-Ion վերալիցքավորվող մարտկոցով և լիցքավորիչովի կրթական տարբերակով։ 
                                                                                       
Intelligent Brick-ը մնում է անփոփոխ NXT 2.0–ի հետ։ Փաթեթի սև տարբերակը մշակվել է Mindstorms համակարգի առանց ներքին փոփոխության։

Ծրագիր և փաթեթներ մշակող 
Lego որոնված և մշակվող փաթեթները հրապարակել են NXT Intelligent Brick-ի համար որպես բաց աղբյուր սխեմատիկ բոլոր ապարատային բաղադրիչների հետ միասին։

Մի քանի մշակող փաթեթներ հասանելի են և պարունակում են NXT փաստաթղթեր․
 Software Developer Kit (SDK), ներառում է տեղեկատվություն USB driver-ի վրա, գործարկվող ֆայլի ֆորմատ, և բայթ կոդի հղում
 Hardware Developer Kit (HDK), ներառում է փաստաթղթեր և տեղակայման գծագրեր և սենսորներ NXT-ի համար
 Bluetooth Developer Kit (BDK), փաստաթղթեր արձանագրությունների օգտագործման համար և Bluetooth համակարգ

Ծրագրավորում 

Շատ պարզ ծրագրեր կարող են ստեղծվել օգտագործելով NXT խելացի փաթեթը (աղյուսակը)։ Ավելի բարդ ծրագրեր և ձայնային ֆայլեր կարող են ներբեռնվել օգտագործելով USB պորտով կամ Bluetooth–ի անլար միացմամբ։ Ֆայլերը կարող են նաև պատճենվել անլար եղանակով 2 NXT աղյուսակների միջոցով, իսկ որոշ բջջային հեռախոսներ կարող են օգտագործվել որպես հեռակառավարման սարքեր։ Մինչև 3 NXT աղյուսակներ կարող են միաժամանակ կապվել Bluetooth-ի միջոցով, երբ օգտագործողի ստեղծած ծրագրերը աշխատում են։
                                                                                           
Զամբյուղի մանրածախ վաճառքի տարբերակը ներառում է ծրագրեր գրելու ապահովումներ, որոնք աշխատում են Windows և Mac օպերացիոն համակարգերով աշխատող անհատական համակարգիչներում։ 
Ապահովումը հիմնված է Ազգային գործիքներ (National Instruments) կազմակերպության LabVIEW գրաֆիկական և ինժեներական ծրագրային միջավայրի վրա և ապահովում է տեսողական ծրագրավորման լեզու պարզ ծրագրեր գրելու համար և դրանք NXT բլոկում ներբեռնելու համար։ Սա նշանակում է, որ օգտագործողներից կոդի գծեր գրել պահանջելու փոխարեն, նրանք կարող են օգտագործել բլոկ սխեմաներ, ինչպիսիք են «բլոկները (աղյուսակ)» իրենց ծրագիրը նախագծելու համար։

NXT-G 
NXT-G v2․0-ը գրաֆիկական ծրագրավորման միջավայր է, որը կապված է NXT-ի հետ։ Բարդությունը մարմնավորելու համար բլոկների և լարերի մանրակրկիտ կառուցման հետ NXT-G-ն կարող է օգտագործվել իրական աշխարհի ծրագրավորման համար։

Զուգահեռ «հաջորդական ճառագայթները», ըստ էության զուգահեռ պարուրակներ են, ուստի այս ծրագրային ապահովումը շատ լավն է աշխատացնելու համար մի քանի զուգահեռ իմաստներ արձագանքող հանգույցներ (օրինակ՝ սպասիր 60 վայրկյան, «զընգ» ձայն հնչեցրու ցածրաձայն, եթե մարտկոցը սպառված է, հանգույց), կամ խառնվում է ինքնուրույն հսկողությանը Bluetooth-ով կամ այլ «հեռակառավարում»։ Լեզուն ապահովում է վիրտուալ գործիքներ բոլոր Lego բրենդավորված և ավելի շատ երրորդ բաժնի սենսորների բաղադրիչների համար։ Տարբերակ 2․0-ը պարունակում է նոր ուսուցողական մարտահրավերներ, հեռակառավարում, պատվերով գրաֆիկա, ձայնային դիզայներներ և նոր գույնի սենսորային աջակցությունը Lego-ին։ Համայնքային աջակցության կարևոր է, օրինակ, http://www.brickshelf.com/cgi-bin/gallery.cgi?f=191310։

C# Microsoft Ռոբոտաշինության Զարգացման ստուդիայի հետ 
Անվճար գործիքները (Visual Studio Express-ը Robotics Developer Studio-ի հետ միասին) թույլ է տալիս ծրագրավորել NXT-ին՝ օգտագործելով C# լեզուն։ Այլ սպասարկող լեզուները ներառում են IronPython և VB.NET։

BricxCC, Next Byte Codes, Not eXactly C 
Bricx հրամանի կենտրոնը (BricxCC-ը) ինտեգրված զարգացման միջավայր է (IDE), որ օգտագործվում է NXT-ի համար NBC և NXC ծրագրերը գրելու, կազմելու և խմբագրելու համար։ Ինչպես նաև, քանի որ BricxCC-ն սկզբնապես նախատեսված է եղել RCX-ի համար, դրա ծրագրերը կարող են գրվել օգտագործելով NQC-ն BricxCC-ի միջոցով։ Տարբեր ծրագրային ապահովումներ կարող են flashed NXT՝ օգտագործելով BricxCC-ն։
                                                                      
BricxCC-ն ունի շատ օգտակարություններ, ինչպիսիք են՝ NeXTExplorer (վերբեռնել, ներբեռնել ֆայլեր, կրճատել NXT հատվածը, օգտագործել ֆայլի դիտարկման վեցակողմ եղանակը), NeXTScreen (տեսնել ինչ կա NXT-ի LCD էկրանին, և ֆոկուսավորել նկարներն ու տեսահոլովակները)։
                                                                                          
Next Byte Codes-ը (NBC) պարզ բաց աղբյուր լեզու է հավաքված լեզվի ձևաչափումով, որը կարող է օգտագործվել ծրագրի NXT աղյուսում։ BricxCC-ն նաև ունակություն ունի ապակազմավորելու ստանդարտը՝ .rxe NXT, NBC-ի կատարելիներով։
                                                                                          
Not eXactly C (NXC) բարձր մակարդակի բաց աղբյուր լեզու է, նման C-ին, կառուցված NBC կազմողով։ Այն կարող է նաև օգտագործվել ծրագրավորելու համար NXT աղյուսակը։ NXC-ն հիմնականում NQC է NXT-ի համար Այն մեկն է ամենատարածված երրորդ կարդի ծրագրավորման լեզուներից NXT-ի համար։ NXC-իում, NXT-ի համար անգամ վիդեոխաղեր ստեղծելը հասանելի է։ Որոշ մարդիկ նույնիսկ ստացել են աշխատող մոխրագույն սանդղակ NXT էկրանին։

Robolab 
Robolab 2.9 Robolab-ը նոր ծրագրավորման միջավայր է, որը ի սկզբանե օգտագործվել է RCX ծրագրավորման բլոկում։ 2․9 տարբերակը թարմացվել է այնպես, որ այն այժմ կարող է օգտագործվել NXT բլոկը ծրագրավորելու համար։ Lego-ն հայտարարել է, որ նա կդադարեցնի պաշտոնապես աջակցել Robolab-ին, բայց Robolab 2․9 դեռևս հասանելի է և դեռևս կան բազմաթիվ ֆորումներ և օգնության այլ աղբյուրներ։

RoboMind 
RoboMind-ը կրթական ծրագրային ապահովում է, որը հատուկ մշակված է ուսանողներին տրամաբանությունը, ծրագրավորում ռոբոտիկա սովորեցնելու համար։ RoboMind-ի ուժեղ կողմը կրթական միջավայրի կոմպակտությունն է, որը թույլ է տալիս արագ զարգացնել և փորձարկել սցենարներ վիրտուալ միջավայրում։ Սցենարները այնուհետև կարող են ուղղակիորեն փոխանցվել Lego Mindstorms NXT ռոբոտին՝ իրական կյանքում արդյունքը տեսնելու համար։ RoboMind սցենարը գործարկվում է ստանդարտ ծրագրում։

Enchanting 
NXT ծրագրավորումը հայտնի Scratch IDE-ի մեջ, որը մշակվել է MIT-ի Lifelong մանկապարտեզային խմբի կողմից, ծրագրավորումը նույնիսկ փոքր երեխաների համար մատչելի դարձնելու համար։ NXT ծրագրերը համապարփակ են և հասարակ, որը առաջարկվել է ծրագրավորման միջավայրից։

ROBOTC 
Կարնեգիի Mellon Robotic ակադեմիան, ROBOTC-ը ծրագրավորման լեզու է, որը հիմնված է C VEX Cortex, նոր տեխնիկական մարտահրավերի և Lego Mindstorms-ի վրա։ ROBOTC-ը վարում է շատ օպտիմալ ծրագիր, որը թույլ է տալիս NXT-ին արագ առաջադրվել, ինչպես նաև սեղմում է ֆայլերը այնպես, որ դուք կարող եք տեղավորել մեծ ծավալով ծրագրեր NXT-ի մեջ։ NXT այլ լեզուների պես ROBOTC-ը պահանջում է ծրագիր ներբեռնելու համար ROBOTC ինտերֆեյսից ակտիվացնելու համար։

NXTGCC 
NXTGCC-ը գործիքների հավաքածու է, NXT C-ի մեջ ծրագրավորելու համար։

leJOS NXT 
leJOS NXJ-ը բարձր մակարդակի և բաց (հասանելի) լեզու է, որը հիմնված է Java-ի վրա, օգտագործում է հաճախորդների ժամանակավոր ծրագրային ապահովումը, որը մշակվել է leJOS թիմի կողմից։

nxtOSEK 
Ունի հնարավորություն ծրագրել C/C++-ի մեջ, nxtOSEK-ը կարող է օգտագործվել, բայց այն պահանջում է հաճախորդներից ժամանակավոր ծրագրային ապահովում նույնպես։

ICON 
Ունի հնարավորություն ֆայլերը գրել NXT-ի մեջ ինքնուրույն, Steve Hassenplug-ի ICON-ը կատարյալ աղբյուր է։

MATLAB և Simulink 
 MATLAB-ը բարձր մակարդակի ծրագրավորման լեզու է թվային հաշվարկների, տվյալների հավաքագրման և վերլուծության համար։ Այն կարող է օգտագործվել LEGO NXT ռոբոտներին վերահսկելու համար Bluetooth հաջորդական պորտի միջոցով (հաջորդական պորտ կապը MATLAB-ի հիմնական գործառույթներից է) կամ USB կապով։ Օրինակ օգտագործելու համար RWTH - Mindstorms NXT Toolbox (անվճար և բաց աղբյուր)։
 Simulink բլոկային դիագրամային միջավայր է դինամիկ համակարգերի մոդելավորման և արտածման համար։ Simulink-ի միջոցով օգտագործողը կարող է նախագծել և արտածել վերահսկողության ալգորիթմներ և Lego համակարգեր և հետագայում ինքնաբերաբար ծրագրավորի LEGO NXT կամ EV3: Lego NXT կամ EV3 ծրագրավորելու համար կարիք կա միայն Simulink-ի և այն հասանելի առանց լրացուցիչ վճարի։

MATLAB և Simulink Աջակցություն LEGO MINDSTORMS ծրագրավորման համար անվճար հասանելի են։ Լրացուցիչ տեղեկատվության համար այցելեք․

LEGO MINDSTORMS Support from MATLAB and Simulink:

Lua 
pbLua  ծրագրավորման լեզվի պորտ է, հիմնական նպատակը՝ սցենարային լեզու է Lego Mindstorms-ի համար։

Ada 
port of GNAT  պորտը հասանելի է NXT-ի համար։ Այն հիմնվում է իրականացման ժամանակ առանձնացված միջուկի վրա Ravenscar պրոֆիլի հիմքով, նույնը օգտագործվում է Goce արբանյակի վրա։ Սա թույլ է տալիս Ada-ի գործառույթներն օգտագործել բարձր մակարդակով, Mindstorms NXT-ի վրա զուգահեռ և իրական ժամանակի համակարգերի մշակման համար։

URBI 
URBI մեկ այլ լեզու է և՛ զուգահեռ, և՛ միջոցառման վրա հիմնված, C++, Java և Matlab ինտերֆեյսերով։ Այն նաև ունի բաղադրիչային ճարտարապետություն (UObject) բաշխման համար։ Urbi-ն համատեղելի է բազմաթիվ ռոբոտների հետ, այդ թվում, Nao (տես Robocup) Bioloid կամ Aibo։

FLL NXT Նավիգացիա 
FLL Nxt Նավիգացիան  բաց կոդով ծրագիր է օգնելու FLL մրցակցության աղյուսակի նավիգացիային։ Այն օգտագործում է NXT-G և .txt ֆայլերը ծրագրեր գրելու համար։ Հայտնի չէ, կարելի է այն արդյոք օրինական ձևով իրականացնել։

ruby-nxt 
ruby-nxt-ն NXT ծրագրավորելու գրադարան է Ruby ծրագրավորման լեզվի համար։ Ի տարբերություն այլ լեզուների NXT-ի համար կոդը չի կազմում բինարային ֆայլ։ Փոխարենը կոդը ուղղակիորեն փոխանցվում է NXT Bluetooth կապի միջոցով։

Robotics.NXT 
Robotics.NXT Haskell ինտերֆեյս է NXT, Bluetooth համար։ Այն ապահովում է ուղղակի հրամաններ, հաղորդագրություններ և շատ սենսորներ (հաճախ ոչ պաշտոնական)։ Այն նաև ունի աջակցություն NXT աղյուսակի պարզ հաղորդագրության վրա հիմնված վերահսկողության, հեռակառավարմամբ իրականացվող ծրագրի օգնությամբ (ներառյալ NXC բազային կոդը)։

LibNXT 
LibNXT-ը օգտակար գրադարան է LEGO Mindstorms NXT խելացի աղյուսակի հետ համեմատաբար ցածր մակարդակի խոսելու համար։ LibNXT-ն հիմնականում թիրախավորված է այն հարթակների վրա, որ պաշտոնական Lego Mindstorms NXTծրագրային ապահովումը ղեկավարում է, այսինքն՝ Linux և այլ յունիքսներ։ Այն կաշխատի ցանկացած POSIX համապատասխանող օպերացիոն համակարգերի հետ, որտեղ ապահովվում է libusb 0.1 <http://libusb.sf.net/>։ Windows–ի աջակցություն հնարավոր է նաև win32-ի libusb պորտի հետ։

C_NXT 
C_NXT-ը գրադարան է Lego NXT-ը վերահսկելու համար, որը լիցենզավոևված է GPLv2-ի տակով։ Գրադարանը հնարավորություն է տալիս օգտվողներին կառավարել Լեգո NXT Bluetooth վերահսկիչի միջոցով այլ C ծրագրերի ներսից։ Գրադարանը ապահովում է և ցածր մակարդակի վերահսկողությունը, և բարձր մակարդակի աբստրակցիա։ Ներկայումս գրադարանը աշխատում է միայն Լինուքսի վրա։

PyNXC 
PyNXC-ը նախագիծ է, որը Python կոդը փոխարկում է "Not Exactly C" (NXC) կոդի, Lego Mindstorms ռոբոտիկը ներբեռնելու համար։

NXT-Python 
NXT-Python-ը փնտրողական մոդուլ է, որը հաղորդակցվում է NXT-ի հետ USB կամ Bluetooth-ի միջոցով։ Այն ապահովում է ուղղակի հրամաններ և մի քանի հետվաճառքային սենսորների։

LEGO Mindstorms EV3 Software 
Ծրագիրը, որը գործում է նոր Mindstorms EV3 շարքի հետ, կարող է օգտագործվել NXT-ը ծրագրելու համար։ Ներկայումս Bluetooth չի ապահովվում է NXT-ի համար, այնպես որ ծրագրերը պետք է բեռնել USB-ի միջոցով։

Physical Etoys 
Physical Etoys-ը վիզուալ ծրագրավորման համակարգ է տարբեր էլեկտրական սարքավորումների համար։ Այն ապահովում է ուղղակի ռեժիմ և ստեղծում է այն։

Սենսորներ 
Lego Mindstorms NXT 1.0-ի հիմնական գործիքակազմը ներառում է՝
 3 նույնական շարժիչներ, որոնք ունեն ներկառուցված նվազեցման սարքավորում ներքին օպտիկական պտտվող վերակոդավորումով, որը հաշվում է պտույտները մեկ աստիճան ճշգրտությամբ։
 Հպողական սենսորը հայտնաբերում է այն ամենը, ինչը սեղմել ես, մեծացրել կամ ազատ արձակել։ Նարնջագույն Enter կոճակը և մոխրագույն աջ ու ձախ NXT կոճակները կարող են ծրագրավորվել այնպես, որ ծառայեն որպես սենսորներ։ NXT–G ծրագրավորման ապահովման համակարգում 0-ի արժեքը տրվում է, երբ այն չի սեղմվում, և 1 արժեքը տրվում է, եթե դա սեղմված է։
 Լույսի ցուցիչը բացահայտում է լուսավորության մակարդակը մեկ ուղղությամբ, ինչպես նաև ներառում է LED (լուսադիոդ) օբյեկտի լուսավորման համար։ Լույսի ցուցիչը կարող է զգալ արտացոլված լույսի արժեքները (օգտագործելով ներկառուցված կարմիր լուսադիոդը), կամ ցրված լույսը։ NXT-G ծրագրային ապահովման մեջ ցուցիչը զգում է 0-100 միջակայքի լույսը, 100-ը շատ վառն է և 0-ն խավարը։ Եթե տրամաչափվի ցուցիչը կարող է օգտագործվել նաև որպես հեռավորության ցուցիչ։
 Ձայնի ցուցիչը չափում է ձայնի բարձրության մակարդակը 0-100 սանդղակով, 100-ը շատ բարձր, 0-ն՝ լուռ։
 Ուլտրաձայնային ցուցիչը կարող է չափել ցուցիչի և այն առարկայի միջև հեռավորությունը դեպի, որը այն ուղղված է և կարող է բացահայտել շարժումը։ Այն կարող է ցույց տալ տարածությունը և սանտիմետրերով և դյույմով։ Առավելագույն հեռավորությունը, որ կարելի է չափել 233 սմ 3 սմ-ի ճշգրտությամբ։ Ուլտրաձայնային ցուցիչն աշխատում է ուլտրաձայնային ալիքներ արձակելով, որոնք արտացոլվում են իր առջևի առարկայում, ապա հակառակը։ Այն զգում է այն ժամանակը, որը անհրաժեշտ է դրա իրականացման համար։ Lego Mindstorms 2.0-ի բազային հավաքածուն ներառում է 2 դիպչող ցուցիչ, մեկ գույնի ցուցիչ (բացահայտում է մի քանի տարբեր գույներ), և ուլտրաձայնային ցուցիչ։

Այս մասերը ընդգրկված չեն  Lego Mindstorms NXT բազայի մեջ և կարող է ձեռքբերվել առանձին։

 Երրորդ կողմի ընկերությունները նույնպես արտադրում են սենսորների, ինչպիսիք են կողմնացույց, հորոսկոպ, ինֆրակարմիր խուզարկու, RFID ընթերցող և ասելոմետրիկ սենսորներ, որոնք վաճառվում են Lego–ի կողմից։
 Ջերմաստիճանի ցուցիչը կարող է չափել ջերմաստիճանը Ցելսիուսի կամ Fahrenheit-ի միջոցով։

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

Lego-ն նաև վաճառում է ադապտեր Vernier սենսորային արտադրանքի գծով։ Vernier արտադրում է տվյալների հավաքագրման սարքեր և համապատասխան ծրագիր կրթության մեջ օգտագործելու համար։

Միակցիչ 
Ցուցիչները միացված են NXT աղյուսակին օգտագործելով 6-կոնտակտային մոդուլային միակցիչը, որը ցույց է տալիս ինչպես անալոգային այնպես էլ այլընտրանքային ինտերֆեյսերը։ Անալոգային ինտերֆեյսը փոխադարձ համատեղելի է (օգտագործելով հարմարիչը) հին Robotics Invention համակարգի հետ։ Թվային ինտերֆեյսը ի վիճակի է, թե I2C և RS-485 կապի։

Պատկերասրահ

Տես նաև 
 Lego Mindstorms EV3
 Lego Mindstorms NXT 2.0 
 LEGO Mindstorms 
 ԼԵԳՕ Մայնդստորմս

Արտաքին հղումներ 

 
 lego.Edutech.com , Official LEGO Education partner
 external controller with open hardware beaglebone
 Program NXT, help for programming your Lego Mindstorms NXT 
 
 
 HiTechnic.com, LEGO Certified Sensors for the LEGO MINDSTORMS
 mindsensors.com, Sensors for the LEGO MINDSTORMS NXT
 Trinfactor3.com , Enables use of 32 analog sensors with 1 NXT
 robojoy-club, NXT robot and program for beginner 
 http://www.legomindstormsnxtstore.blogspot.com
 Roberta , Educational Robotics
 Lego Mindstorms Community and Projects

Ծանոթագրություններ 

Ռոբոտներ
Ռոբոտագիտություն