Розробка програмного забезпечення для моделювання мобільного робота NXT MindStorms

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Украинский
    ,
    Формат файла:
    MS Word
    222,87 Кб
  • Опубликовано:
    2014-03-05
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Розробка програмного забезпечення для моделювання мобільного робота NXT MindStorms

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

ХАРКІВСЬКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ РАДІОЕЛЕКТРОНІКИ

Факультет: Автоматики і комп’ютеризованих технологій

Кафедра: Технології та автоматизації виробництва РЕЗ та ЕОЗ





Курсова робота

з дисципліни: «Технології програмування гнучких комп’ютеризованих систем»

ПОЯСНЮВАЛЬНА ЗАПИСКА

Розробка програмного забезпечення для моделювання мобільного робота NXT MindStorms

Студент: СІ-10-2 Прокошин Е.Е.

Керівник: к. т. н, доц. каф. Цимбал О.М.








Харків 2013

Зміст

Вступ

. Аналіз технічного завдання

.1 Постановка задачі

. Алгоритмізація моделі та її програмної реалізації

.1 Бібліотека MFC

.2 Бібліотека OpenGL

. Розробка програмного забезпечення

.1 Середовище розробки проекту

.2 Порядок виконання роботи

.3 Опис контрольного прикладу

Висновки

Перелік посилань

Додаток А. Опис програми

Реферат

Курсова робота: пояснювальна записка: 11 рис., 1 табл., 1 додаток,

джерел, текст програми на CD-диску.

Об’єкт дослідження - робот NXT MindStorms.

Мета роботи - розробка програмного забезпечення для моделювання робота NXT MindStorms.

Розробка здійснювалось із використанням пакету програм Microsoft Visual Studio 2010 на IBM-сумісному персональному комп’ютері (тактова частота процесора 2,2 ГГц, обсяг оперативної пам’яті - 2 Гб, жорсткого диска - 500 Гб).

Робота має навчальний характер. Розробка програмного забезпечення для моделювання робота NXT MindStorms. Розмір програми - 6 Мб.VISUAL STUDIO, NXT MINDSTORMS, MFC, МОДЕЛЮВАННЯ РОБОТА NXT MINDSTORMS

: explanatory note 28 pages, 11 pictures, 1 table, 1 application, 8 sources, code on CD- ROM.of study - robot NXT MindStorms.- to develop software for the simulation of robot NXT MindStorms.was carried out using the software package Microsoft Visual Studio 2010 for IBM - compatible personal computer (CPU clock speed of 2.2 GHz, RAM - 2 GB Hard Drive - 500 GB).work is educational in nature. Software development for simulation of robot NXT MindStorms. The amount of programs - 6 MB.

MICROSOFT VISUAL STUDIO, NXT MINDSTORMS, ROBOTS, MFC, MODELING ROBOT NXT MINDSTORMS

Вступ

Розробка робототехнічних систем різного роду призначення представляє значну зацікавленість не тільки з промислової точки зору, але і наукової. Сучасний робот є багатоцільовою машиною, що задовольняє сучасним вимогам створення гнучко переналаштовуваного автоматизованого виробництва. З іншого боку будь-який робот, як виконуючий пристрій, є платформою для широкого кола експериментів, пов’язаних з практичною реалізацією методів штучного інтелекту.

Розробка роботів є доволі складним та дорогим заняттям, тому все частіше ставиться задача адаптації існуючих роботів до рішення нових виробничих та наукових задач. При цьому на перший план може висуватися задача моделювання робочого простору.

Першочерговим етапом проектування роботів є створення комп’ютерних моделей функціонування маніпуляторів роботів у робочому просторі, моделей мобільних робототехнічних систем.

Промисловий робот - автономний пристрій, що складається з механічного маніпулятора та системи керування, який використовується для переміщення об’єктів у просторі та для виконання різних промислових процесів. ПР можуть виконувати основні технологічні операції (збірка, фарбування, сварка) та допоміжні операції (завантаження/розвантаження технологічного обладнання, транспортні та інші). При використанні змінного технологічного оснащення виконувані операції можуть виконуватися одним роботом.

Метою курсової роботи є розробка програмного забезпечення для моделювання автоматизованої роботи робота NXT MindStorms. Для досягнення мети необхідно розглянути наступні питання:

–       проаналізувати завдання;

–       виявити особливості програмного забезпечення;

–       переглянути список рекомендованої літератури;

–       розробити алгоритм роботи програми;

–       написати програму для моделювання NXT MindStorms.

1. Аналiз технiчного завдання

.1 Постановка задачі

Розробка програмного забезпечення для моделювання робота NXT MindStorms (Рис. 1.1). Необхідно розробити тривимірну модель робота, що відображає вигляд реального. Розробка буде проводитись мовою С++ у середовище Microsoft Visual Studio 2010 за допомогою бібліотек MFC та OpenGL.

 

Рисунок 1.1 - Робот NXT MindStorms

2. Розробка програмного забезпечення для моделювання робота NXT mindStorms

.1 Бібліотека MFC

Розробка програмного забезпечення з нуля є доволі складною та тривалою задачею. Тому більшість програм створюється шляхом розвитку якоїсь базової програми, типової заготовки або шаблону. Для створення професійного програмного забезпечення необхідно чітко уявляти внутрішню структуру та логіку роботи засобів, що використовуються. Особливо це відноситься до засобів створення програмних продуктів. Розглянемо бібліотеку базових класів Microsoft (Microsoft Foundation Classes, MFС) саме як інструмент, що повинен взяти на себе більшу частину чорнової роботи з створення програмного забезпечення. Тільки знання всіх нюансів побудови, функціонування та можливостей бібліотеки дозволить легко створювати програми різної складності.

Перед розробниками бібліотеки стояла задача розробки об’єктно-орієнтованого інтерфейсу для роботи в середовищі Windows, який би задовольняв наступним цілям проектування програмних продуктів:

–  значне зменшення зусиль при створенні програмних продуктів;

–       швидкість виконання програм, написаних з використанням бібліотеки, повинна відповідати швидкості виконання програм, що написані на мові С з використанням Win32 API;

–       розмір допоміжного коду повинен бути мінімальним;

–       здатність прямо викликати довільну С - функцію Win32 API;

–       легкість використання Win32 API в С++ повинна бути такою ж як при використанні традиційної мови С.

Варто відзначити, що поставлені задачі розробниками бібліотеки були вирішені професійно.

За короткий відрізок часу корпорацією Microsoft було розроблено декілька версій бібліотеки MFC, яка ставала все далі потужнішою та зручнішою. Версія 4.3 бібліотеки MFC не є останньою і швидше за все невдовзі на ринку з’явиться наступна версія. До того ж підтримка іншими компаніями та їх компіляторами і засобами розробки програмного забезпечення саме бібліотеки MFC, а не OWL фірми Borland International чи власних продуктів дозволяє концентрувати увагу саме на MFC. Навіть фірма Borland International, що є конкурентом Microsoft в створенні компіляторів для персональних комп’ютерів придбала ліцензію на використання в своїх продуктах MFC.

.2 Бібліотека OpenGL

- (Open Graphics Library - відкрита графічна бібліотека, яка реалізує 2D та 3D комп'ютерну графіку. Ця бібліотека містить понад 250 функцій, які можуть використовуватися для малювання складних тривимірних сцен з простих примітивів. Широко застосовується індустрією комп'ютерних ігор і віртуальної реальності, у графічних інтерфейсах, при візуалізації наукових даних, в системах автоматизованого проектування.орієнтується на такі два завдання:

–  сховати складності адаптації різних 3D-прискорювачів, надаючи розробнику єдиний API.

–       приховати відмінності в можливостях апаратних платформ, вимагаючи реалізації відсутньої функціональності за допомогою програмної емуляції.

Основним принципом роботи OpenGL є отримання наборів векторних графічних примітивів у вигляді точок, ліній та багатокутників з наступною математичною обробкою отриманих даних та побудовою растрової картинки на екрані і/або в пам'яті. Векторні трансформації та растеризація виконуються графічним конвеєром (graphics pipeline), який власне являє собою дискретний автомат. Абсолютна більшість команд OpenGL потрапляють в одну з двох груп: або вони додають графічні примітиви на вхід в конвеєр, або конфігурують конвеєр на різне виконання трансформацій. OpenGL є низькорівневим процедурним API, що змушує програміста диктувати точну послідовність кроків, щоб побудувати результуючу растрову графіку (імперативний підхід). Це є основною відмінністю від дескрипторних підходів, коли вся сцена передається у вигляді структури даних (найчастіше дерева), яка обробляється і будується на екрані. З одного боку, імперативний підхід вимагає від програміста глибокого знання законів тривимірної графіки та математичних моделей, з іншого боку - дає свободу впровадження різних інновацій.

Характерними особливостями OpenGL, які забезпечили розповсюдження та розвиток цього графічного стандарту, є:

§  Стабільність. Доповнення та змінення в стандарті реалізуються таким чином, щоб зберегти сумісність з раніше розробленими програмним забезпеченням.

§  Надійність та переносимість. Програми, що використовують OpenGL, гарантують однаковий візуальний результат не залежачи від типу використовуємої ОС та організації відображення інформації. Крім того, ці програми можуть виконуватися як на ПК так і на робочих станціях і суперкомп’ютерів.

§   Легкість застосування. Стандарт OpenGL має продуману структуру та інтуїтивно зрозумілий інтерфейс, що дозволяє з меншими витратами створювати ефективні програми, що містять менше строк коду, ніж з використанням інших графічних бібліотек. Необхідні функції для забезпечення сумісності з різноманітним обладнанням реалізовані на рівні бібліотеки та значно спрощують розробку програм.

Функції OpenGL можна розділити на п’ять категорій:

§  Функції опису примітивів визначають об’єкти низького рівня ієрархії (примітиви), які здатна відображати графічна підсистема. В OpenGL в якості примітивів виступають точки, лінії, многокутники і т.д.

§   Функції опису джерел світла служать для опису положення та параметрів джерел світла, розміщених у трьохмірній сцені.

§   Функції надання атрибутів. За допомогою задання атрибутів програміст визначає як будуть виглядати об’єкті на екрані. Іншими словами, якщо за допомогою примітивів визначається що відображатиметься на екрані, то атрибути визначають способи виведення на екран. В якості атрибутів OpenGL дозволяє задати колір, характеристики матеріала, текстури, параметры освіщення.

§   Функції візуалізації дозволяють задати положення глядача у віртуальному просторі, параметри об’єктива камери. Знаючи ці параметри, система зможе не тільки правильно побудувати зображення, але і відсікти об’єкти, що опинилися за полем зору.

§   Набір функцій геометричних перетворень дозволяють програмісту виконувати різноманітні перетворення об’єктів - оберт, перенос, масштабування.

При цьому OpenGL може виконувати додаткові операції, такі як використання сплайнів для побудови ліній та поверхонь, видалення невидимих фрагментів зображення, робота з зображенням на рівні пікселів і т.д.

3. Розробка програмного забезпечення

.1 Середовище розробки проекту

Розробка програмного забезпечення виконувалась у середовищі Microsoft Visual Studio 2010.Visual Studio - це лінійка продуктів компанії Microsoft, що включають інтегроване середовище, розробки програмного забезпечення та ряду інших інструментальних засобів. Цей продукт дозволяє створювати як консольні програми, так і програми з графічним інтерфейсом, у тому числі технології з підтримкою Windows Forms, а також веб-сайти, веб-додатки, веб-служби для всіх платформ, які підтримують Microsoft Windows, Windows Mobile, Windows CE,.NET Framework, Xbox, Windows Phone,.NET Compact Framework, Microsoft Silverlight.

3.2 Порядок виконання роботи

Проаналізувавши завдання і виділивши цілі, що потрібно реалізувати, переходимо до написання програми.

Створили вікно нашої програми, заповнили параметри формату пікселя (рис 3.1). Формат пікселя Windows не завжди узгоджується з OpenGL. У процесі ініціалізації OpenGL ці формати необхідно узгодити.

::CMainWin() {=GetSystemMetrics(SM_CXSCREEN);=GetSystemMetrics(SM_CYSCREEN);(NULL,"Курсовая работа. Прокошин Э. Э. Робот NXT MindStorms", WS_OVERLAPPEDWINDOW|WS_VSCROLL| WS_HSCROLL,CRect(0,0,maxX,maxY));pfd;  (&pfd,0, sizeof(PIXELFORMATDESCRIPTOR));.nSize = sizeof(PIXELFORMATDESCRIPTOR); .nVersion = 1; .dwFlags = PFD_DOUBLEBUFFER | PFD_SUPPORT_OPENGL | PFD_DRAW_TO_WINDOW; .iPixelType = PFD_TYPE_RGBA;.cColorBits = 24; .cDepthBits = 32;          .iLayerType = PFD_MAIN_PLANE; dc(this);nPixelFormat = ChoosePixelFormat(dc.m_hDC, &pfd);bResult = SetPixelFormat(dc.m_hDC, nPixelFormat, &pfd);_hrc = wglCreateContext(dc.m_hDC);(dc.m_hDC,m_hrc);(dc.m_hDC);_pPal = NULL;

}

Рисунок 3.1 - Конструктор головного вікна

Виклик функції ініціалізації OpenGL відбувається за допомогою функції GLInit() (Рис 3.2).

CMainWin::GLInit() {   (1.0,1.0,1.0,1.0);(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);(GL_MODELVIEW);();(0.0, 1.0, -1.5); (1.0,1.0,0.0);

Рисунок 3.2 - Ініціалізація OpenGL

Далі нам необхідно зробити оновлення головного вікна, що відбувається за допомогою функції OnPaint (Рис 3.3).

CMainWin::OnPaint() {pDC(this);* ppalOld = NULL;(m_pPal) {= pDC.SelectPalette(m_pPal, 0);.RealizePalette();

}bResult = wglMakeCurrent(pDC.m_hDC, m_hrc);();(); (pDC.m_hDC);(ppalOld) pDC.SelectPalette(ppalOld, 0); (NULL, NULL);

}

Рисунок 3.3 - Функція OnPaint

Рух робота реалізований внаслідок натискання клавіш клавіатури.

CMainWin::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)

{ (nChar) {38: move_z -= 0.1; break;        //клавіша Стрілка вгору 40: move_z += 0.1; break;         //клавіша Стрілка вниз37: turn += 2.0; break; // Стрелка влево39: turn += -2.0; break; // Стрелка влево87: scale += 0.1; break; // CTRL + W83: scale -= 0.1; break; // CTRL + S

}(NULL);

}

Рисунок 3.4 - Функція OnKeyDown()

Побудував головну частину робота (рис. 3.5).

// Верх, основа();f(.7,.7,.7);(0.0, 3.6, move_z);(-10.0,1.0,0.0,0.0);(2.5,1.4,4.0);();

//glColor3f(.7,.7,.7);(-90.0,1.0,0.0,0.0);(90.0,0.0,0.0,1.0);(-.5 - move_z, -0.2, 1.5);(0.6,1.6);

Рисунок 3.5 - Побудова головної частини робота

Наступним кроком стала побудова 2-х коліс робота (рис.3.6).

// левок колесо();f(0.0, 0.0, 0.0);(2.5, 1.0, -1.0);(-move_z * 50,0.0,1.0,0.0);(0.5, 0.6);();

// Правое колесо();(2.5, -2.0, -1.0);(-move_z * 50,0.0,1.0,0.0);(0.5, 0.6);();

Рисунок 3.6 - Праве та ліве колесо робота

Далі створив інщі менш об’ємні елементи робота (рис.3.7).

// Элемент, соединяющий колеса с корпусом();f(.7,.7,.7);(1.2, 0.2, -0.98);(2.8,2.4,0.7);();

// Элемент, соединяющий верх с нижним цилиндром();(0.0, 0.2, 1.05);(.3,.6,0.75);

// Элемент, выезжающий немного вперед, на который крепится балка с камерой(90, 0.0, 1.0, 0.0);(1.5, 0.0, 2.7);(.3,.6,1.7);

// балка для камеры(-60, 0.0, 1.0, 0.0);(.8, 0.0, 1.2);(.3,.6,1.7);

// Камера(60, 0.0, 1.0, 0.0);(-.6, 0.0,.6);(.4, 1.2,.6);

// задняя балка();(-30, 0.0, 1.0, 0.0);(0.0, 0.2, 3.5);(.2,.8,1.7);

// задняя камера(30, 0.0, 1.0, 0.0);(0.0, 0.0, 0.5);

//glColor3f(.95,.95,.95);(1.0, 1.4,.5);

Рис.3.7 - Інші, менш об’ємні елементи робота

.3 Опис контрольного прикладу

.3.1 Призначення

Розроблена програма призначається для моделювання роботи робота NXT MindStorms.

.3.2 Результати виконання роботи

Результат виконання роботи - це імітація роботи робота NXT MindStorms, його рухів, характеристик, зовнішнього вигляду (рис 3.8).

Рисунок 3.8 - 3D модель робота NXT MindStorms

Для керування рухами маніпулятора використовуються клавіши, що перераховані у таблиці 3.1.

моделювання мобільний робот програмний

Таблиця 3.1 - Дії робота

Рухи робота

Кнопки на клавіатурі

Рух вперед

Рух назад

Поворот вправо

Поворот вліво

Зменшення масштабу

S

W



Висновки

В результаті виконання даної курсової було розроблено програмне забезпечення для моделювання робота NXT MindStorms. Курсова робота наглядно демонструє можливості API OpenGL у сфері графічної візуалізації. Розробка курсової роботи відбувалась на мові програмування С++ у середовищі Microsoft Visual Studio. В результаті роботи була розроблена модель робота, реалізована рухомість, що відповідає характеристикам реального робота.- була розроблена компанією Silicon Graphics. Її мета - це надання доступу до можливостей графічної апаратури на максимально низькому рівні, який, тим не менш, припускає апаратну незалежність. Вона розроблена у вигляді вельми низькорівневого інтерфейсу доступу до графічної апаратури. OpenGL була реалізована для роботи в різних операційних середовищах, в які входять PC, Mac і UNIX -системи. Вона підтримувалася на безлічі апаратних середовищ, починаючи з систем, що виконують крім самого буфера кадру мінімальне апаратне прискорення, і закінчуючи системами, які виконують практично всі дії апаратно.

Курсова робота виконана відповідно до вимог стандартів [7,8].

Перелік посилань

1.          Цимбал О.М. Технології програмування: Visual C++. - Харків: ХНУРЕ, 2006. - 336 с.

2.          ГОСТ 27.204-83. Технологические системы. Технические требования к методам оценки надежности по параметрам производительности.

3.          Шилдт Герберт. MFC: основы программирования. - К.: Издательская группа BHV, 1997. - 560 с.

4.      Олафсен Ю., Скрайбнер К., Уайт К.Д. MFC и Visual C++ 6. Энциклопедия программиста. - СПб.: ООО „ДиаСофтЮП”, 2004. - 992 с.

.        OpenGL. Официальное руководство программиста: Пер. с англ. / Мейсон Ву, Джеки Нейдер, Том Девис, Дейв Шрайнер. - СПб: ООО «ДиаСофтЮП», 2002. - 592 с.

.        Тихомиров Ю.В. OpenGL. Программирование трехмерной графики.- СПб.: БХВ-Петербург, 2002. - 304 с.

7. ДСТУ 3008-95. Документація. Звіти в сфері науки і техніки. Структура і правила оформлення [Текст]. - К.: Держстандарт України, 1995. - 36 с.

. ГОСТ 7.1-2003. Бібліографічний запис. Бібліографічний опис. Загальні відомості та правила складання [Текст]. - К.: Держспоживстандарт України, 2007. - 47 с.

Додаток А

Текст програми - файл «CApp.cpp» наведено на (Рис. А.1)

#include <afxwin.h>

#include "gl/gl.h"

#include "gl/glu.h"

#include "CApp.h"

#include "math.h"

#include "GLAUX.h"

#pragma comment(lib, "GLAUX.lib")

#pragma comment(lib, "opengl32.lib")

#pragma comment(lib, "glu32.lib")hRC=NULL; // Постоянный контекст рендерингаhDC=NULL;                                    //

Приватный контекст устройства GDIhWnd=NULL; // Здесь будет хранится дескриптор окнаhInstance; // Здесь будет хранится дескриптор приложенияmove_z = 0.0, turn = 0.0, scale = 1.0;maxX, maxY, vspos, hspos;::CMainWin() {=GetSystemMetrics(SM_CXSCREEN);=GetSystemMetrics(SM_CYSCREEN);(NULL,"Курсовая работа. Прокошин Э. Э. Робот NXT MindStorms", WS_OVERLAPPEDWINDOW|WS_VSCROLL| WS_HSCROLL,CRect(0,0,maxX,maxY));pfd;  (&pfd,0, sizeof(PIXELFORMATDESCRIPTOR));.nSize = sizeof(PIXELFORMATDESCRIPTOR); .nVersion = 1; .dwFlags = PFD_DOUBLEBUFFER | PFD_SUPPORT_OPENGL | PFD_DRAW_TO_WINDOW; .iPixelType = PFD_TYPE_RGBA;.cColorBits = 24; .cDepthBits = 32;          .iLayerType = PFD_MAIN_PLANE; dc(this);nPixelFormat = ChoosePixelFormat(dc.m_hDC, &pfd);bResult = SetPixelFormat(dc.m_hDC, nPixelFormat, &pfd);_hrc = wglCreateContext(dc.m_hDC);(dc.m_hDC,m_hrc);(dc.m_hDC);_pPal = NULL;

}CMainWin::CreateRGBPalette(HDC hDC) {pfd;n = GetPixelFormat(hDC);(hDC, n, sizeof(PIXELFORMATDESCRIPTOR), &pfd);(!(pfd.dwFlags & PFD_NEED_PALETTE)) return FALSE;* pPal = (LOGPALETTE*) malloc(sizeof(LOGPALETTE) + 256 * sizeof(PALETTEENTRY));(!pPal){("Out of memory for logpal");FALSE;

}>palNumEntries = 256; bResult = m_pPal->CreatePalette(pPal);(pPal);bResult;

}_MESSAGE_MAP(CMainWin,CFrameWnd)_WM_PAINT()_WM_SIZE()_WM_VSCROLL()_WM_HSCROLL()_WM_TIMER()_WM_KEYDOWN()_MESSAGE_MAP()App;CMainWin::OnPaint() {pDC(this);* ppalOld = NULL;(m_pPal) {= pDC.SelectPalette(m_pPal, 0);.RealizePalette();

}bResult = wglMakeCurrent(pDC.m_hDC, m_hrc);();(); (pDC.m_hDC);(ppalOld) pDC.SelectPalette(ppalOld, 0); (NULL, NULL);

}CMainWin::OnSize(UINT nType, int cx, int cy) {dc(this);bResult = wglMakeCurrent(dc.m_hDC, m_hrc);gldAspect = (GLdouble) cx/ (GLdouble) cy;(GL_PROJECTION);// OutputGlError("MatrixMode");();(160.0, gldAspect, 1.0, 10.0);(20, 30, cx-20, cy-20);(NULL, NULL);  

}CMainWin::OnVScroll(UINT SBCode, UINT Pos, CScrollBar *SB) {(SBCode) {SB_LINEDOWN: vspos++;break;SB_LINEUP:       vspos--;break;SB_PAGEDOWN: vspos+=5;break;SB_PAGEUP:       vspos-=5;break;            SB_THUMBTRACK: vspos=Pos;break;SB_THUMBPOSITION: vspos=Pos;break;

}        ();(SB_VERT,vspos);

}CMainWin::OnHScroll(UINT SBCode, UINT Pos, CScrollBar *SB) {(SBCode) {SB_LINERIGHT: hspos++;break;SB_LINELEFT:   hspos--;break;SB_PAGERIGHT: hspos+=5;break;SB_PAGELEFT: hspos-=5;break;              SB_THUMBTRACK: hspos=Pos;break;SB_THUMBPOSITION: hspos=Pos;break; }();(SB_HORZ,hspos);

}CMainWin::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)

{ (nChar) {38: move_z -= 0.1; break;        //клавіша Стрілка вгору 40: move_z += 0.1; break;         //клавіша Стрілка вниз37: turn += 2.0; break; // Стрелка влево39: turn += -2.0; break; // Стрелка влево87: scale += 0.1; break; // CTRL + W83: scale -= 0.1; break; // CTRL + S

}(NULL);

}CMainWin::GLInit() { (1.0,1.0,1.0,1.0);(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);(GL_MODELVIEW);();(0.0, 1.0, -1.5); (1.0,1.0,0.0);

}CMainWin::OnOpenGLFirst() {              (360.0*hspos/100,0,1,0); // 3D-scrolling around y(360.0*vspos/100,1,0,0); // 3D-scrolling around x

// Устанавливаем камеру(30,1,0,0);(40,0,1,0);(2.0);(scale, scale, scale);(GL_LINES); // Оси координатf(1.0,0.0,0.0); // Ось X - красного цветаd(-3.0f,0.0f,0.0f);         glVertex3d(25.0f,0.0f,0.0f);f(0.0,1.0,0.0); // Ось Y - зеленого цветаd(0.0f,-3.0f,0.0f);         glVertex3d(0.0f,25.0f,0.0f);f(0.0,0.0,1.0); // Ось Z - синего цветаd(0.0f,0.0f,-3.0f);         glVertex3d(0.0f,0.0f,25.0f);();(turn, 0.0, 1.0, 0.0);

// Верх, основа();f(.7,.7,.7);(0.0, 3.6, move_z);(-10.0,1.0,0.0,0.0);(2.5,1.4,4.0);();

//glColor3f(.7,.7,.7);(-90.0,1.0,0.0,0.0);(90.0,0.0,0.0,1.0);(-.5 - move_z, -0.2, 1.5);(0.6,1.6);

// левок колесо();f(0.0, 0.0, 0.0);(2.5, 1.0, -1.0);(-move_z * 50,0.0,1.0,0.0);(0.5, 0.6);();

// Правое колесо();(2.5, -2.0, -1.0);(-move_z * 50,0.0,1.0,0.0);(0.5, 0.6);();

// Элемент, соединяющий колеса с корпусом();f(.7,.7,.7);(1.2, 0.2, -0.98);(2.8,2.4,0.7);();

// Элемент, соединяющий верх с нижним цилиндром();(0.0, 0.2, 1.05);(.3,.6,0.75);

// Элемент, выезжающий немного вперед, на который крепится балка с камерой(90, 0.0, 1.0, 0.0);(1.5, 0.0, 2.7);(.3,.6,1.7);

// балка для камеры(-60, 0.0, 1.0, 0.0);(.8, 0.0, 1.2);(.3,.6,1.7);

// Камера(60, 0.0, 1.0, 0.0);(-.6, 0.0,.6);(.4, 1.2,.6);

// задняя балка();(-30, 0.0, 1.0, 0.0);(0.0, 0.2, 3.5);(.2,.8,1.7);

// задняя камера(30, 0.0, 1.0, 0.0);(0.0, 0.0, 0.5);

//glColor3f(.95,.95,.95);(1.0, 1.4,.5);

}CApp::InitInstance() {_pMainWnd = new CMainWin;_pMainWnd->ShowWindow(m_nCmdShow);_pMainWnd->UpdateWindow();TRUE;

}

Рисунок А.1 - Текст програми - файл «CApp.cpp»

Текст програми - файл «CApp.h» наведено на (Рис. А.2).

CApp:public CWinApp {:BOOL InitInstance();

};CMainWin:public CFrameWnd

{        *m_pPal;m_hrc;: void GLInit();OnOpenGLFirst();OnSize(UINT nType, int cx, int cy);OnPaint();OnSize();OnVScroll(UINT SBCode,UINT Pos,CScrollBar *SB);OnHScroll(UINT SBCode,UINT Pos,CScrollBar *SB);OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);OnChar(UINT Ch, UINT Count, UINT Flags);CreateRGBPalette(HDC hDC);CreateSolidBrush;();_MESSAGE_MAP()

};

Рисунок А.2 - Текст програми - файл «CApp.h»

А.2 ЗАГАЛЬНІ ВІДОМОСТІ

Програма «Робот NXT MindStorms» складається з двох файлів. Для повноцінного функціонування програми необхідно мати налаштовану операційну систему Windows XP/7/8, а для запуску встановити пакет програм Microsoft Visual Studio 2010 або новіша.

А.3 ФУНКЦІОНАЛЬНЕ ПРИЗНАЧЕННЯ

Розроблена програма призначена для моделювання зовнішнього вигляду та характеристик робота NXT MindStorms. Програма може використовуватися для наглядного огляду функціонування робота NXT MindStorms у випадках, коли немає можливості використати реальний робот.

А.4 ВИКОРИСТОВУВАНІ ТЕХНІЧНІ ЗАСОБИ

Для запуску програми необхідно мати IBM-сумісний персональний комп’ютер із встановленим на ньому програмним забезпеченням, що перераховано у розділі А.2. Комп’ютер повинен мати стандартні пристрої для введення-виведення інформації (клавіатура, миша, відеокарта, дисплей), 6 мб вільного місця на жорсткому диску, 32 Мб вільної оперативної пам’яті, процесор з тактовою частотою не нижче 500 МГц.

А.5 ВИКЛИК І ЗАВАНТАЖЕННЯ

Для виклику програми необхідний ярлик Prokoshin_NXT_MindStorms.exe. Програма використовую 6 Мб вільного місця на жорсткому диску й 32 Мб оперативної пам’яті.

Похожие работы на - Розробка програмного забезпечення для моделювання мобільного робота NXT MindStorms

 

Не нашел материал для своей работы?
Поможем написать качественную работу
Без плагиата!