LogoLogo
TRIK StudioTRIKLego EV3Lego NXT
Русский
Русский
  • Справочный центр ТРИК
  • TRIK Studio
    • О TRIK Studio
      • Как узнать версию TRIK Studio
    • Начало работы и создание проекта
    • Интерфейс TRIK Studio
      • Главное меню TRIK Studio
      • Работа с графиками
      • Как открыть настройки робота?
      • Как изменить язык интерфейса TRIK Studio?
    • Настройки TRIK Studio
    • 2D-модель
      • Гибкая настройка 2D-модели
      • Добавление ограничений в 2D-модель
        • Примеры задания ограничений
    • Программирование на визуальном языке
      • Добавление и удаление блоков
      • Общие блоки
      • Связи между блоками
      • Синтаксис выражений в блоках
        • Типы языка TRIK Studio
          • Массив
        • Лексемы языка TRIK Studio
        • Операторы языка TRIK Studio
        • Константы
        • Сенсорные переменные
        • Встроенные функции
      • Редактирование свойств элементов
      • Подпрограммы
    • Программирование на текстовом языке
    • Упражнения
    • Сторонние утилиты
      • PuTTY
      • WinSCP
    • Горячие клавиши в TRIK Studio
    • Сбои из-за антивирусов
      • Антивирус Avast блокирует TRIK Studio. Что делать?
  • TRIK Studio Junior
    • О TRIK Studio Junior
      • Как узнать версию TRIK Studio Junior
    • Начало работы и создание проекта в TRIK Studio Junior
    • Интерфейс TRIK Studio Junior
      • Как заменить изображение «Исполнителя» в TRIK Studio Junior?
    • 2D-модель в TRIK Studio Junior
    • Настройки TRIK Studio Junior
    • Программирование на визуальном языке в TRIK Studio Junior
      • Добавление и удаление блоков в TRIK Studio Junior
      • Блоки в TRIK Studio Junior
      • Связи между блоками в TRIK Studio Junior
      • Синтаксис выражений в блоках в TRIK Studio Junior
      • Редактирование свойств элементов в TRIK Studio Junior
      • Подпрограммы в TRIK Studio Junior
    • Упражнения в TRIK Studio Junior
  • Интеграции
    • PyCharm
      • Запуск 2D-модели в TRIK Studio из PyCharm
    • Sublime Text
      • Запуск 2D-модели в TRIK Studio из Sublime Text
      • Загрузка программ на нескольких роботов ТРИК из Sublime Text
    • VSCode
      • Запуск 2D-модели в TRIK Studio из VSCode
      • Загрузка программ на нескольких роботов ТРИК из VSCode
  • Контроллер ТРИК
    • О контроллере ТРИК
      • Скриншот экрана контроллера ТРИК
    • Обновление встроенного программного обеспечения контроллера ТРИК
      • Как узнать версию встроенного ПО контроллера ТРИК?
    • Меню контроллера ТРИК
    • Подключения по Wi-Fi к контроллеру ТРИК
      • Подключение контроллера ТРИК к компьютеру и смартфону
      • Подключение контроллера ТРИК к TRIK Studio
      • Взаимодействие контроллеров ТРИК
        • Пример решения задачи по взаимодействию двух роботов
    • Подключение к контроллеру ТРИК с помощью UART
    • Запуск программ и их загрузка на контроллер ТРИК
    • Программирование ТРИК на визуальном языке
      • Блоки ТРИК
      • Сенсорные переменные для контроллера ТРИК
    • Программирование ТРИК на Python и JavaScript
      • Объект «brick»
        • Класс «accelerometer»
        • Класс «battery»
        • Класс «colorSensor»
        • Класс «display»
        • Класс «encoder»
        • Класс «gyroscope»
        • Класс «keys»
        • Класс «led»
        • Класс «lineSensor»
        • Класс «motor»
        • Класс «objectSensor»
        • Класс «marker»
        • Класс «sensor»
        • Класс «irCamera»
      • Объект «script»
      • Объект «mailbox»
      • Объект «gamepad»
      • Объект «Threading»
      • Функция getPhoto
      • Функция include
    • Веб-интерфейс контроллера ТРИК
    • Подключение устройств к ТРИК и работа с ними
      • Подключение и работа с видеомодулем
      • Тестирование подключенных к контроллеру ТРИК устройств
      • Настройка работы USB-камеры с контроллером ТРИК
      • Съемка изображений на камеру ТРИК и использование их в TRIK Studio
      • Работа с аккумулятором и зарядным устройством
  • Контроллер LEGO EV3
    • O LEGO EV3
    • Подключение контроллера LEGO EV3 к TRIK Studio
    • Блоки LEGO EV3
    • Сенсорные переменные для контроллера LEGO EV3
    • Запуск программ и их загрузка на контроллер LEGO EV3
    • Программирование LEGO EV3 для Virtual Robotics Toolkit в TRIK Studio
  • Контроллер LEGO NXT
    • О LEGO NXT
    • Прошивка контроллера LEGO NXT
    • Подключение контроллера LEGO NXT к TRIK Studio
    • Блоки LEGO NXT
    • Сенсорные переменные для контроллера LEGO NXT
    • Программирование LEGO NXT на C
    • Запуск программ и их загрузка на контроллер LEGO NXT
  • Квадрокоптер Пионер
    • О квадрокоптере Геоскан Пионер
    • Блоки квадрокоптера Геоскан Пионер
  • TRIK Gamepad
    • О TRIK Gamepad
      • Приложение TRIK Gamepad
      • Утилита TRIK Gamepad
    • Управление роботом с пульта
  • Feedback
    • Действия при неправильной работе TRIK Studio или контроллера ТРИК
    • Задать вопрос
    • trikset.com
Powered by GitBook
On this page

Was this helpful?

Export as PDF
  1. Контроллер LEGO NXT

Программирование LEGO NXT на C

Текстовое программирование для LEGO NXT осуществляется на языке C с использованием макросов и функций из библиотеки ECRobot.

Общая структура программы:

  • Сначала идёт подключение заголовочных файлов, используемых в программе (стандартные заголовочные файлы C и заголовочные файлы ECRobot).

  • Затем идёт объявление констант и переменных, используемых в программе.

  • За ними описываются функции ecrobot_device_initialize и ecrobot_device_terminate. Первая вызывается при запуске программы, вторая — при прекращении её работы. В них обычно выполняется инициализация и деинициализация датчиков, энкодеров и других устройств робота. По умолчанию в ecrobot_device_initialize инициализируется генератор случайных чисел.

  • За ними идёт описание функции user_1ms_isr_type2, которая вызывается каждую миллисекунду.

  • Затем идёт описание задачи, которая запускается на исполнение при старте программы: TASK (OSEK_Task_Number_0). Здесь, собственно, и выполняется большая часть программирования.

#include <string.h>
#include "kernel.h"
#include "kernel_id.h"
#include "ecrobot_interface.h"
#include "trik_studio_utils.h"
#include <time.h>
#include <stdlib.h>
#include <stdio.h>
#include <stdarg.h>
#include <math.h>

U32 __interpretation_started_timestamp__ = 0;
static const float pi = 3.14159265;



void ecrobot_device_initialize(void)
{
	srand(systick_get_ms());

}

void ecrobot_device_terminate(void)
{

}

/* nxtOSEK hook to be invoked from an ISR in category 2 */
void user_1ms_isr_type2(void)
{

}

/* Main task */
TASK(TASK_MAIN)
{
	__interpretation_started_timestamp__ = systick_get_ms();

	TerminateTask();
}

В качестве примеров можно использовать код, генерируемый по диаграммам самой средой TRIK Studio.

PreviousСенсорные переменные для контроллера LEGO NXTNextЗапуск программ и их загрузка на контроллер LEGO NXT

Last updated 5 years ago

Was this helpful?

функций на английском, доступных при программировании.

Полное описание