Кибернетический конструктор трик образовательный. Конструкторы кибернетический конструктор трик образовательный. полный код программы

ФМЛ 239 Санкт-Петербурга — не только то место, где готовят , но и одна из ведущих российских площадок подготовки преподавателей робототехники.

Значимые отличия курсов робототехники от — именитые преподаватели, бесплатность и разнообразие платформ обучения.

ТРИК — российский кибернетический конструктор. Купить ТРИК можно у производителя или в некоторых интернет-магазинах. Например, ТРИК продается в .

Курсы были организованы под руководством Ильи Юрьевича Широколобова и рассчитаны на школьных учителей и педагогов дополнительного образования.

Всего курсы посетило 34 участника, сдали зачет — 32 участника. В рамках зачета были проведены состязания, победителям выданы кубки и грамоты. Всем участникам, успешно окончившим курс, был выдан сертификат от организации «Образовательные технологии» .

Программа курсов

День 1: Образовательная робототехника в России и мире. Современный инструментарий. Знакомство с новым кибернетическим набором ТРИК. Сборка образовательного робота: металлический конструктор.

День 2: Основы программирования в среде ТРИК Студия. Виртуальная модель. Элементарные действия. Программирование в робототехнике: блок-схемы, базовые алгоритмы, переменные, операторы. Программирование роботов LEGO в среде ТРИК Студия.

День 3: Параллельные задачи. Путешествие по комнате. Switch (выбор). Введение в ТАУ. Регуляторы.

День 4: Работа с камерой. Кодирование. Передача данных.

День 5: Поиск объектов. Распознавание цвета.

День 6: Зачет.

Отзывы участников курсов

Олег Викторович Грязнов , г. Белгород:

Спасибо за организацию и проведение обучения по кибернетическому конструктору ТРИК. Благоприятные условия, доброжелательная и высокопрофессиональная команда ведущих и организаторов от лицея позволили погрузиться в изучение нового для большинства участников курса конструктора.

Новые задачи (видеозрение и задания с ним, отработка алгоритмов в 2D моделях) и старые задачи (знакомые по другим конструкторам) увлекли нас как пытливых детей. Илья Юрьевич, Дмитрий, Юрий, несмотря на большинство наших детских ошибок и сложностей, каждый наш вопрос и просьбу о помощи воспринимали доброжелательно и оперативно разъясняли и помогали.

Выступление и демонстрация детских проектов Михаила Михайловича доказали нужность ТРИКа для продвинутых детей и нового уровня их проектов. Презентация Романа Лучина и обсуждение с ним развития робототехники в России дали мне новый заряд сил и идей для развития образовательной робототехники в Белгородской области. В небольших перерывах удалось обменяться опытом работы и методическими наработками с коллегами-участниками курса из Новороссийска, Москвы, Санкт-Петербурга, Сочи.

В итоге я уехал не просто с новым опытом, знаниями и с наборами ТРИК, а с новыми друзьями, готовыми поддержать, делиться и помогать. Рассчитываю со своей командой тренеров и методистов внести посильный вклад в разработку учебно-методических материалов для занятий с наборами ТРИК, а так же вырастить новые детские проекты и новых победителей соревнований.

Роман Лучин

Дмитрий Анатольевич Ковригин , г. Костомукша, Республика Карелия:

Большое спасибо за проведенный I цикл осенних курсов подготовки преподавателей робототехники по программе «Робототехника на платформе ТРИК». Для меня курс был очень полезным, как с теоретической, так и с практической стороны. Объем полученной информации обширный, но темп подачи материала был отличным. В течение дня Илья Юрьевич Широколобов давал достаточный минимум теории, и большая часть отводилась на практику. А после занятий можно было самостоятельно более подробно дополнительно рассмотреть теоретические вопросы по книге Сергея Александровича Филиппова.

Получилось отличное полное погружение на 6 дней в робототехнику на платформе ТРИК. Отдельная благодарность Юрию Викторовичу Литвинову и Дмитрию Александровичу Мордвинову, которые всегда были рядом и помогали сглаживать программные шероховатости платформы.

Выступление Романа Михайловича Лучина добавило позитивный заряд уверенности, что у платформы ТРИК большое будущее, так как видно, что команда ТРИК «живет» этим проектом. Они создали продукт, которым уже сейчас можно гордиться, но останавливаться не собираются. И это радует.

Что общего между женской грудью и игрушечной железной дорогой? Правильно, и то, и то предназначено для детей, а играют с ними папы. Несколько дней назад я обзавёлся роботехническим конструктором ТРИК . Комплект довольно суровый, разработчики утверждают, что он хорош для быстрого прототипирования и для обучения, а именно (само-)обучение меня в данный момент и интересует.

Что сейчас широко доступно на рынке для робототехнических игр? Самодельное изготовление плат под каждый проект не рассматриваем. Лего, распи, ардуино. Лего прекрасен, но, к сожалению, очень и очень сильно ограничен. Распи и ардуины неплохо расширяются, но довольно неудобны и быстро превращаются в рассыпуху разных карточек-шильдиков-макеток. Вот тут и выходят на рынок питерские ребята со своим конструктором ТРИК.

Итак, моя задача понять, насколько это доступно широкой публике (мне). Я никогда не посещал лекций ни по теоретической кибернетике, ни по теории управления. Закон Ома я выучил ровно настолько, чтобы понять, что розетку лизать не стоит, и паяльник не является моим другом. Но как всякий нормальный (великовозрастный) ребёнок играть я люблю, и поэтому заинтересовался этой темой.

Я получил вот такой набор:

Вообще цена их наборов варьируется от примерно двадцати до семидесяти тысяч рублей. Дороже ли это, чем лего? Нет. Месяц назад я купил Lego EV3. Цена вопроса 370€ базовый набор + 100€ аккумулятор (они там совсем офигели?!) И это ещё я не считал зарядника за тридцать евро. Плюс ко всему в базовый набор не входят ни сонар (+35€), ни гироскоп (+35€). А уж про камеру с микрофоном и вообще можно забыть, не упоминая вообще в принципе отустствия доступа внутрь леговского линукса.

В мой набор (он и разложен на предыдущей фотографии) входят два контроллера , две камеры, два микрофона, сонары, два типа инфракрасных датчиков, кнопки, шесть электродвигателей с оптоэнкодерами, три сервы, два механических захвата, куча колёс, в том числе голономных, зарядки-аккумуляторы-шнурки, зубчатые колёса, рейки и куча металлических пластин и уголков (привет детство!). Конструктор чисто для начала, вообще к контроллеру можно подключить практически всё, на что хватит воображения. Центральный процессор ARM9, под видео отдельный процессор, чтобы не грузить центральный. Программировать можно на чём угодно от ассемблера до C#, вам дают рутовую консоль, плюс весь код прошивки опенсорсный.

Вот так выглядит моя чудо-коробка:

В качестве самого первого проекта я решил собрать обратный маятник, он и представлен на заглавной картинке. Вот так он выглядит сзади:

Из набора мне понадобилось два двигателя, два колеса, чуть крепежа и непосредственно контроллер с батареей. Моей целью не было скопировать туториал из обучающего курса ТРИК, мне интересно обломать зубы обо все проблемы самостоятельно, поэтому я буду изобретать велосипед.

Итак, в моём распоряжении одна степень свободы, акселерометр и гироскоп, энкодеры от двигателей я не использовал. Писать буду на Qt Script.

Чтение датчиков

Изначально я хотел обойтись одним акселерометром. Типа, читаю знак проекции на ось Z, если он положительный, то кручу колёса в одну сторону, если отрицательный, то в другую. В теории всё хорошо, но сделав это, добился только дикого дрыганья моей тележки. Вздохнул и сел штудировать литературу, благо, что она оказалась не сильно долгой. Итак, меня интересует только угол отклонения тележки от вертикали.

Гироскоп

Он же датчик угловых скоростей, выдаёт хороший плавный сигнал, но чтобы отследить с его помощью ориентацию в пространстве, скорости нужно интегрировать. Изначально скорости выдаются с погрешностью, интеграция вносит ещё ошибок, что в итоге приведёт к уплыванию показаний гироскопа. Поэтому только гироскопа нам для маятника недостаточно, нужно его комбинировать с акселерометром.

Вот мой код работы с гироскопом, здесь while(true) - основной цикл программы.
var gyr_x_angle = 0; var lasttime = Date.now(); while (true) { var G = brick.gyroscope().read(); G = G + 69; // drift correction var curtime = Date.now(); var dt = (curtime - lasttime)/1000.0; lasttime = curtime; gyr_x_rate = G * 0.07; gyr_x_angle = gyr_x_angle + gyr_x_rate * dt; }

В массив G я читаю значения датчика, в следующей строчке произвожу коррекцию интересующей меня оси. Выясняется, что мой конкретно датчик в полном покое показывает в среднем скорость в 69 единиц, поэтому я их вычитаю, чтобы получить интересующую меня скорость.
Датчик выдаёт целое число, которое нужно перевести в углы. В штатном режиме он работает на 2000 градусов/сек (dps). Даташит говорит, что этому соответствует константа в 70mdps/digit. Таким образом, G(digits) * 0.07 (dps/digit) даёт нам угловую скорость. Осталось её проинтегрировать, умножив на время измерения dt.

Акселерометр

Из акселерометра угол получить ещё проще, однако проблема в том, что уж больно он шумный, а уж когда тележка начинаёт дёргаться туда-сюда, вообще туши свет. Вот так выглядит код:
[...] while (true) { [...] var A = brick.accelerometer().read(); var a_x_angle = Math.atan(A / A) * 180.0 / pi; }

Гасим шум: совмещение показаний акселерометра и гироскопа

[...] var CF_x_angle = 0; while (true) { [...] CF_x_angle = 0.98*(CF_x_angle+ gyr_x_rate*dt) + 0.02*a_x_angle; }
Это просто говорит, что значение текущего угла это на 98% значение предыдущего угла с поправкой от гироскопа, а на 2% - это прямое чтение угла от акселерометра. Такое совмещение позволяет бороться с уплыванием гироскопа, обратите внимание, что переменную gyr_x_angle мы тут вообще не использовали.

ПИД-регулятор

Как я уже говорил, я не посещал умных лекций по теории управления, поэтому LQR-регуляторы мне не по зубам за разумное (пара часов) время. А вот ПИД вполне подойдёт.

В предыдущем параграфе мы получили пристойную (я надеюсь) оценку угла отклонения тележки от вертикали. Улучшить её можно, используя фильтрацию Калмана, но это стрельба из пушки по воробьям. Теперь пришло время крутить колёса - чем больше угол отклонения, тем быстрее нужно крутить колесо.

Скорость вращения колеса, которую нам выдаст ПИД, состоит из трёх (взвешенных) слагаемых: пропорциональной, интегирующей и дифференцирующей. Пропорциональная просто равна углу отклонения от вертикали, интегрирующая - это сумма всех ошибок регулирования, а дифференцирующая пропорциональна скорости изменения отклонения от вертикали.

Звучит это страшно, а на деле код крайне простой:

полный код программы

var gyr_x_angle = 0; var lasttime = Date.now(); var CF_x_angle = 0; var iTerm = 0; var CF_x_angle_prev = 0; var KP = 0; var KI = 0; var KD = 0; while (true) { var G = brick.gyroscope().read(); G = G + 69; // drift correction var curtime = Date.now(); var dt = (curtime - lasttime)/1000.0; lasttime = curtime; gyr_x_rate = G * 0.07; var A = brick.accelerometer().read(); var a_x_angle = Math.atan(A / A) * 180.0 / pi; CF_x_angle = 0.98*(CF_x_angle+ gyr_x_rate*dt) + 0.02*a_x_angle; // крутим колёса! var pTerm = KP*CF_x_angle; // пропорциональная составляющая iTerm = iTerm + KI*CF_x_angle; // интегирующая составляющая var dTerm = KD * (CF_x_angle - CF_x_angle_prev); // дифференциальная составляющая CF_x_angle_prev = CF_x_angle; power = pTerm + iTerm + dTerm; brick.motor(M3).setPower(power); brick.motor(M4).setPower(power); }

Выбор констант KP, KI, KD

Осталась самая сложная часть: найти значения весов в сумме, к сожалению, это можно только делать эмпирически.

Для начала найдём коэффициент KP. Положим KI и KD равными нулю и увеличиваем KP начиная с нуля до того момента, когда наша тележка начнёт совершать (примерно) постоянные колебания, примерно вот так (KP=8, KI=0, KD=0):

Очевидно, что это перебор, тележка получает слишком сильный сигнал от пропорциональной составляющей, поэтому уменьшим её примерно вполовину, получим вот это (KP=5, KI=0, KD=0):

Теперь тележке не хватает чисто пропорционального сигнала, увеличим её скорость, добавив интегрирующей компоненты. Плавно увеличиваем KI с нуля, пытаясь достигнуть момента, когда снова получим колебания тележки вокруг желаемого положения (KP=5, KI=0.5, KD=0):

Теперь добавляем дифференцирующую компоненту, которая будет играть роль демпфера, гася колебания, вот что у меня получается (KP=5, KI=0.5, KD=5):

Заключение

У меня довольно быстро (за один вечер) получилась самобалансирующаяся тележка. Учитывая, что программа у меня получилась аж в двадцать пять строк, то теперь на досуге осталось добавить управление тележкой, повороты и прохождение полосы препятствий, это не должно составить больших сложностей.

Ни электротехнического, ни кибернетического бэкграунда у меня нет, то есть, это вполне доступно рядовым пользователям, что, собственно, мне и очень интересно. Буду продолжать изучение!

По сравнению с тем же леговским набором оно всё, конечно, выглядит несколько топорнее, китайские датчики (как и у лего), но не закатанные в толстенный качественный леговский пластик. Менее вылизанный софт, который находится в активной разработке. Существенно меньше сообщество людей, программирующих на этом контроллере, но учитывая, что проекту без году неделя, да ещё видя недавний успех ардуино, это меня мало пугает. Зато меня восхищает гибкость контроллера, которая получилась из потрясающго энтузиазма, с которым в Питере взялись за разработку.

Обновление: технические характеристики контроллера

Многие не понимают, чем отличается триковский контроллер от ардуино или от леговских коробок. Поэтому вот табличка:
Центральный процессор (ЦП) OMAP-L138 C6-Integra™ DSP+ARM® SoC, Texas Instruments
Тактовая частота ЦП 375 МГц
Процессорное ядро ЦП ARM926EJ-S™ RISC MPU
DSP-ядро ЦП C674x Fixed/Floating-Point VLIW DSP
Оперативная память 256 МБайт
FLASH - память 16 МБайт
Периферийный процессор (ПП) MSP430F5510, Texas Instruments
Тактовая частота ПП 24 МГц
Интерфейсы пользователя USB 2.0, WiFi b/g/n, BlueTooth, 2*UART, 2*I2C, Micro-SD, Mic in (stereo), Line out (mono)
Интерфейсы двигателей постоянного тока 4 порта двигателей 6-12V DC, с индивидуальной аппаратной защитой от перегрузки по току (до 2А на двигатель)
Интерфейсы периферийных устройств 19 сигнальных портов общего назначения (6 одноканальных и 13 двухканальных) с питанием 3.3-5V, из них 6 могут работать в режиме аналогового входа
Интерфейсы видео сенсоров 2 входа BT.656 VGA 640*480, поддержка режима стерео
Встроенный LCD монитор 2.4” TFT, цветной, сенсорный, разрешение 320*240 пикселей
Встроенный динамик Номинальная мощность 1W, пиковая 3W
Светодиодный индикатор 2-цветный, программно-управляемый
Слоты расширения 2 * 26-контактных «щелевых» разъема модулей расширения
Дополнительное оборудование (входит в состав контроллера) 3-х осевой акселерометр, 3-х осевой гироскоп, аудиокодек, усилитель, конвертеры и схемы управления питанием, схемы защиты входов от перегрузок по напряжению и току
Электропитание 6-12V DC, внешний сетевой адаптер либо LiPo аккумулятор RC 3P (11,1V) / 2P (7,4V)
Габариты корпуса 125 * 80 * 25 мм

Что общего между женской грудью и игрушечной железной дорогой? Правильно, и то, и то предназначено для детей, а играют с ними папы. Несколько дней назад я обзавёлся роботехническим конструктором ТРИК . Комплект довольно суровый, разработчики утверждают, что он хорош для быстрого прототипирования и для обучения, а именно (само-)обучение меня в данный момент и интересует.

Что сейчас широко доступно на рынке для робототехнических игр? Самодельное изготовление плат под каждый проект не рассматриваем. Лего, распи, ардуино. Лего прекрасен, но, к сожалению, очень и очень сильно ограничен. Распи и ардуины неплохо расширяются, но довольно неудобны и быстро превращаются в рассыпуху разных карточек-шильдиков-макеток. Вот тут и выходят на рынок питерские ребята со своим конструктором ТРИК.

Итак, моя задача понять, насколько это доступно широкой публике (мне). Я никогда не посещал лекций ни по теоретической кибернетике, ни по теории управления. Закон Ома я выучил ровно настолько, чтобы понять, что розетку лизать не стоит, и паяльник не является моим другом. Но как всякий нормальный (великовозрастный) ребёнок играть я люблю, и поэтому заинтересовался этой темой.

Я получил вот такой набор:

Вообще цена их наборов варьируется от примерно двадцати до семидесяти тысяч рублей. Дороже ли это, чем лего? Нет. Месяц назад я купил Lego EV3. Цена вопроса 370€ базовый набор + 100€ аккумулятор (они там совсем офигели?!) И это ещё я не считал зарядника за тридцать евро. Плюс ко всему в базовый набор не входят ни сонар (+35€), ни гироскоп (+35€). А уж про камеру с микрофоном и вообще можно забыть, не упоминая вообще в принципе отустствия доступа внутрь леговского линукса.

В мой набор (он и разложен на предыдущей фотографии) входят два контроллера , две камеры, два микрофона, сонары, два типа инфракрасных датчиков, кнопки, шесть электродвигателей с оптоэнкодерами, три сервы, два механических захвата, куча колёс, в том числе голономных, зарядки-аккумуляторы-шнурки, зубчатые колёса, рейки и куча металлических пластин и уголков (привет детство!). Конструктор чисто для начала, вообще к контроллеру можно подключить практически всё, на что хватит воображения. Центральный процессор ARM9, под видео отдельный процессор, чтобы не грузить центральный. Программировать можно на чём угодно от ассемблера до C#, вам дают рутовую консоль, плюс весь код прошивки опенсорсный.

Вот так выглядит моя чудо-коробка:

В качестве самого первого проекта я решил собрать обратный маятник, он и представлен на заглавной картинке. Вот так он выглядит сзади:

Из набора мне понадобилось два двигателя, два колеса, чуть крепежа и непосредственно контроллер с батареей. Моей целью не было скопировать туториал из обучающего курса ТРИК, мне интересно обломать зубы обо все проблемы самостоятельно, поэтому я буду изобретать велосипед.

Итак, в моём распоряжении одна степень свободы, акселерометр и гироскоп, энкодеры от двигателей я не использовал. Писать буду на Qt Script.

Чтение датчиков

Изначально я хотел обойтись одним акселерометром. Типа, читаю знак проекции на ось Z, если он положительный, то кручу колёса в одну сторону, если отрицательный, то в другую. В теории всё хорошо, но сделав это, добился только дикого дрыганья моей тележки. Вздохнул и сел штудировать литературу, благо, что она оказалась не сильно долгой. Итак, меня интересует только угол отклонения тележки от вертикали.

Гироскоп

Он же датчик угловых скоростей, выдаёт хороший плавный сигнал, но чтобы отследить с его помощью ориентацию в пространстве, скорости нужно интегрировать. Изначально скорости выдаются с погрешностью, интеграция вносит ещё ошибок, что в итоге приведёт к уплыванию показаний гироскопа. Поэтому только гироскопа нам для маятника недостаточно, нужно его комбинировать с акселерометром.

Вот мой код работы с гироскопом, здесь while(true) - основной цикл программы.
var gyr_x_angle = 0; var lasttime = Date.now(); while (true) { var G = brick.gyroscope().read(); G = G + 69; // drift correction var curtime = Date.now(); var dt = (curtime - lasttime)/1000.0; lasttime = curtime; gyr_x_rate = G * 0.07; gyr_x_angle = gyr_x_angle + gyr_x_rate * dt; }

В массив G я читаю значения датчика, в следующей строчке произвожу коррекцию интересующей меня оси. Выясняется, что мой конкретно датчик в полном покое показывает в среднем скорость в 69 единиц, поэтому я их вычитаю, чтобы получить интересующую меня скорость.
Датчик выдаёт целое число, которое нужно перевести в углы. В штатном режиме он работает на 2000 градусов/сек (dps). Даташит говорит, что этому соответствует константа в 70mdps/digit. Таким образом, G(digits) * 0.07 (dps/digit) даёт нам угловую скорость. Осталось её проинтегрировать, умножив на время измерения dt.

Акселерометр

Из акселерометра угол получить ещё проще, однако проблема в том, что уж больно он шумный, а уж когда тележка начинаёт дёргаться туда-сюда, вообще туши свет. Вот так выглядит код:
[...] while (true) { [...] var A = brick.accelerometer().read(); var a_x_angle = Math.atan(A / A) * 180.0 / pi; }

Гасим шум: совмещение показаний акселерометра и гироскопа

[...] var CF_x_angle = 0; while (true) { [...] CF_x_angle = 0.98*(CF_x_angle+ gyr_x_rate*dt) + 0.02*a_x_angle; }
Это просто говорит, что значение текущего угла это на 98% значение предыдущего угла с поправкой от гироскопа, а на 2% - это прямое чтение угла от акселерометра. Такое совмещение позволяет бороться с уплыванием гироскопа, обратите внимание, что переменную gyr_x_angle мы тут вообще не использовали.

ПИД-регулятор

Как я уже говорил, я не посещал умных лекций по теории управления, поэтому LQR-регуляторы мне не по зубам за разумное (пара часов) время. А вот ПИД вполне подойдёт.

В предыдущем параграфе мы получили пристойную (я надеюсь) оценку угла отклонения тележки от вертикали. Улучшить её можно, используя фильтрацию Калмана, но это стрельба из пушки по воробьям. Теперь пришло время крутить колёса - чем больше угол отклонения, тем быстрее нужно крутить колесо.

Скорость вращения колеса, которую нам выдаст ПИД, состоит из трёх (взвешенных) слагаемых: пропорциональной, интегирующей и дифференцирующей. Пропорциональная просто равна углу отклонения от вертикали, интегрирующая - это сумма всех ошибок регулирования, а дифференцирующая пропорциональна скорости изменения отклонения от вертикали.

Звучит это страшно, а на деле код крайне простой:

полный код программы

var gyr_x_angle = 0; var lasttime = Date.now(); var CF_x_angle = 0; var iTerm = 0; var CF_x_angle_prev = 0; var KP = 0; var KI = 0; var KD = 0; while (true) { var G = brick.gyroscope().read(); G = G + 69; // drift correction var curtime = Date.now(); var dt = (curtime - lasttime)/1000.0; lasttime = curtime; gyr_x_rate = G * 0.07; var A = brick.accelerometer().read(); var a_x_angle = Math.atan(A / A) * 180.0 / pi; CF_x_angle = 0.98*(CF_x_angle+ gyr_x_rate*dt) + 0.02*a_x_angle; // крутим колёса! var pTerm = KP*CF_x_angle; // пропорциональная составляющая iTerm = iTerm + KI*CF_x_angle; // интегирующая составляющая var dTerm = KD * (CF_x_angle - CF_x_angle_prev); // дифференциальная составляющая CF_x_angle_prev = CF_x_angle; power = pTerm + iTerm + dTerm; brick.motor(M3).setPower(power); brick.motor(M4).setPower(power); }

Выбор констант KP, KI, KD

Осталась самая сложная часть: найти значения весов в сумме, к сожалению, это можно только делать эмпирически.

Для начала найдём коэффициент KP. Положим KI и KD равными нулю и увеличиваем KP начиная с нуля до того момента, когда наша тележка начнёт совершать (примерно) постоянные колебания, примерно вот так (KP=8, KI=0, KD=0):

Очевидно, что это перебор, тележка получает слишком сильный сигнал от пропорциональной составляющей, поэтому уменьшим её примерно вполовину, получим вот это (KP=5, KI=0, KD=0):

Теперь тележке не хватает чисто пропорционального сигнала, увеличим её скорость, добавив интегрирующей компоненты. Плавно увеличиваем KI с нуля, пытаясь достигнуть момента, когда снова получим колебания тележки вокруг желаемого положения (KP=5, KI=0.5, KD=0):

Теперь добавляем дифференцирующую компоненту, которая будет играть роль демпфера, гася колебания, вот что у меня получается (KP=5, KI=0.5, KD=5):

Заключение

У меня довольно быстро (за один вечер) получилась самобалансирующаяся тележка. Учитывая, что программа у меня получилась аж в двадцать пять строк, то теперь на досуге осталось добавить управление тележкой, повороты и прохождение полосы препятствий, это не должно составить больших сложностей.

Ни электротехнического, ни кибернетического бэкграунда у меня нет, то есть, это вполне доступно рядовым пользователям, что, собственно, мне и очень интересно. Буду продолжать изучение!

По сравнению с тем же леговским набором оно всё, конечно, выглядит несколько топорнее, китайские датчики (как и у лего), но не закатанные в толстенный качественный леговский пластик. Менее вылизанный софт, который находится в активной разработке. Существенно меньше сообщество людей, программирующих на этом контроллере, но учитывая, что проекту без году неделя, да ещё видя недавний успех ардуино, это меня мало пугает. Зато меня восхищает гибкость контроллера, которая получилась из потрясающго энтузиазма, с которым в Питере взялись за разработку.

Обновление: технические характеристики контроллера

Многие не понимают, чем отличается триковский контроллер от ардуино или от леговских коробок. Поэтому вот табличка:
Центральный процессор (ЦП) OMAP-L138 C6-Integra™ DSP+ARM® SoC, Texas Instruments
Тактовая частота ЦП 375 МГц
Процессорное ядро ЦП ARM926EJ-S™ RISC MPU
DSP-ядро ЦП C674x Fixed/Floating-Point VLIW DSP
Оперативная память 256 МБайт
FLASH - память 16 МБайт
Периферийный процессор (ПП) MSP430F5510, Texas Instruments
Тактовая частота ПП 24 МГц
Интерфейсы пользователя USB 2.0, WiFi b/g/n, BlueTooth, 2*UART, 2*I2C, Micro-SD, Mic in (stereo), Line out (mono)
Интерфейсы двигателей постоянного тока 4 порта двигателей 6-12V DC, с индивидуальной аппаратной защитой от перегрузки по току (до 2А на двигатель)
Интерфейсы периферийных устройств 19 сигнальных портов общего назначения (6 одноканальных и 13 двухканальных) с питанием 3.3-5V, из них 6 могут работать в режиме аналогового входа
Интерфейсы видео сенсоров 2 входа BT.656 VGA 640*480, поддержка режима стерео
Встроенный LCD монитор 2.4” TFT, цветной, сенсорный, разрешение 320*240 пикселей
Встроенный динамик Номинальная мощность 1W, пиковая 3W
Светодиодный индикатор 2-цветный, программно-управляемый
Слоты расширения 2 * 26-контактных «щелевых» разъема модулей расширения
Дополнительное оборудование (входит в состав контроллера) 3-х осевой акселерометр, 3-х осевой гироскоп, аудиокодек, усилитель, конвертеры и схемы управления питанием, схемы защиты входов от перегрузок по напряжению и току
Электропитание 6-12V DC, внешний сетевой адаптер либо LiPo аккумулятор RC 3P (11,1V) / 2P (7,4V)
Габариты корпуса 125 * 80 * 25 мм

ТРИК, кибернетический конструктор нового поколения

Конструктор, позволяющий без помощи профессиональных инженеров и программистов собирать роботов: от простых радиоуправляемых моделей до сложных кибернетических систем. Законченная платформа для занятий персональной робототехникой, интересная в том числе профессионалам.

Конструктор ТРИК это не просто забавная игрушка, а прекрасный набор прототипирования робототехнических моделей: крепкий "скелет", базовые приводы, необходимые сенсоры.

Металлические детали ТРИК совместимы с "совметалконструктором", то есть перфорация под M4 c шагом 10мм. Мы не ставили себе целью изобрести новый металлический конструктор, а лишь добавили необходимое. Принципиальное отличие от обычных конструкторов в следующем.

  • Крепкий металл. Детали изготавливаются толщиной 0,75мм, 0,8мм, 1,0мм.
  • Жесткий профиль. Балки П-образного профиля.
  • Удобно собирать. Предусмотрены переходники (адаптеры) для крепления типовых моторов, сервомоторов и т.д.

Контроллер ТРИК позволяет легко создавать современных роботов, способных даже “видеть” и “слышать”. На его основе сделан конструктор ТРИК для использования в школах и вузах. Среда визуального программирования TRIKStudio позволяет составлять программы роботов из картинок с готовыми алгоритмами. Простота и удобство делают конструктор интересной игрушкой для широкого потребителя, желающего создать собственного робота или радиоуправляемую модель. Наш контроллер уже готов, есть разнообразные демо-модели. Есть предзаказы школ и университетов, живой интерес иностранных партнёров.

Конструктор продаётся в разных наборах: от простого до о-о-очень большого. На фото выше показаны примеры деталей, входящих в комплект. Также все наборы обязательно содержат контроллер ТРИК , видеокамеру и микрофон. (А как же иначе!)

Контроллер

Контроллер ТРИК сочетает в себе мощь современной электроники и надёжность проверенных решений. Он разработан командой опытных инженеров специально для робототехники. ТРИК способен одновременно решать задачи обработки аудио- и видеоданных, синтеза речи, навигации; управлять сервоприводами и моторами; собирать показания с аналоговых и цифровых датчиков; обмениваться информацией по беспроводной связи.

Контроллер совместим с широким спектром периферийных устройств, имеет в своем составе все необходимое оборудование для управления двигателями постоянного тока и сервоприводами, а также для приема и обработки информации от цифровых и аналоговых датчиков, микрофонов, видеомодулей. Контроллер снабжён цветным сенсорным дисплеем, программируемыми кнопками, есть поддержка WiFi, Bluetooth 4.0 (включая LE) и ANT. В контроллере установлены встроенные защиты от перегрузки по току и от глубокой разрядки аккумулятора.

На центральном ARM-процессоре контроллера ТРИК работает Linux, моторы и датчики программно доступны даже из shell скриптов. Поэтому автономные модели можно программировать не только на С или С++/Qt, но и на JavaScript, С#/F# (.NET), Python и Java. А для начинающих программистов без большого опыта есть среда визуального программирования



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: