Pull to refresh

Comments 8

В добрые старые времена каждое (наверно) повествование о Форте не обходилось без упоминания того, что его первым практическим применением было управление радиотелескопом. Жив ли сейчас тот аппарат и что им управляет…

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

Downloadpage for a smart home.

image

P.S. Есть и примеры, например, реализации программирования на OpenGL уроков Hexe в Forth.

Вспомнилось и это, найденное в i-net:
Из истории работы детского кружка.
Принципы построения малых мобильных роботов – мобильной платформы «Crazy Mouse» и робота-собаки «Робик».
Добрынин Д.А. к.т.н., научный сотрудник ВИНИТИ РАН, Москва, Россия, dobr@viniti.ru

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

Малые мобильные роботы занимают определенную нишу среди мобильных автономных робототехнических устройств.

Подобно своим «большим» собратьям они имеют тот же набор технических устройств на борту:

— управляющий модуль, который является «мозгом» робота.

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

В качестве главной управляющей программы используется операционная система, под управлением которой работает программа управления роботом;

— датчики, которые преобразуют информацию о препятствиях вокруг робота, положении робота в пространстве и внешних раздражителях в форму, удобную для обработки управляющим модулем;

— исполнительные механизмы – двигатели, индикаторы и другие «эффекторы»;

— механическая часть – колеса или другие движители, двигатели, редукторы и т.п.;

— системы связи с внешней компьютерной системой – для программирования, оперативного управления, обучения и реализации других функций.

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

Поэтому технические решения, которые позволяют построить малого робота,
отличаются от тех, что используются для создания их «больших» собратьев.

Большие роботы часто представляют собой уникальные системы, построенные для определенных целей.

Модификация их представляет собой достаточно сложную и дорогую техническую задачу.

Для уменьшения стоимости компоненты малых роботов должны представлять собой некий «конструктор», части которого легко собираются в системы разной степени сложности, имеют единый интерфейс и допускаютпростую замену компонент без переделки всей системы.

На базе кружка технического детского творчества «Родник» были разработаны два мобильных робота – мобильная платформа «Crazy Mouse» и робот-собака «Робик».

Несмотря на большие внешние различия эти два робота построены по одним
принципам, что позволяет говорить об их близком «родстве».

Робот «Crazy Mouse» состоит из несущей платформы, на которой установлено два двигателя с редукторами.

Каждый двигатель управляет отдельным колесом. Для свободного движения с поворотами платформа имеет третье колесо, которое свободно двигается.

Максимальная скорость движения составляет порядка 30 см в секунду.

Конструкция представляет собой две платы соединенные между собой стойкам. На нижней плате крепятся двигатели с редукторами, свободное колесо, датчики определения полосы и датчики столкновения.

На верхней плате расположен главный контроллер, со встроенной операционной системой Robos 1.1, коммутационная плата, контроллер двигателей, блок питания, аккумулятор и датчик определения препятствий.

Робот «Crazy Mouse» создавался в целях отработки электронной «начинки» малых мобильных роботов.

Он позволяет обнаруживать препятствия на расстоянии от 5 до 50 см, обнаруживает контрастную полосу.

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

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

Робот-собака «Робик» состоит из коробки, на которой крепится привод передних колёс и редукторы приводов задних колес.

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

Голова робота-собаки может вращаться на 360 градусов. В ней установлены глаза и детектор дальнего действия. «Робик» умеет произносить фразы, записанные во Flash памяти управляющего контроллера.

На поворотном кронштейне передних колес устанавливаются датчик определения препятствий ближнего действия и детектор полосы.

«Робик» имеет более сложную механику, чем мобильная платформа, и большее количество исполнительных механизмов.

Управляющий контроллер и датчики идентичны тем, что установлены на роботе «Crazy Mouse».
Таким образом, различны только контроллеры приводов и механическая часть этих двух роботов.

Бортовые системы управления больших роботов обычно строятся на стандартных компьютерных компонентах – обычных компьютеров, ноутбуков или промышленных контроллеров.
Для малых роботов такой подход не применим в силу ограниченных габаритов и снижения стоимости, поэтому для них необходимо разрабатывать малогабаритные контроллеры на основе широко распространенных микроконтроллеров.
При этом остро встает проблема с операционной системой, поскольку для стандартных компьютеров существует множество готовых операционных систем, начиная от DOS, и заканчивая Windows и Linux, а для микроконтроллеров только микроядра
операционных систем, обладающие ограниченными возможностями.

Управляющий контроллер, на котором построены описываемые роботы, реализован на микроконтроллере ATMega128 фирмы Atmel и имеет встроенную операционную систему, представляющую собой законченную ФОРТ-систему.

Контроллер имеет 128К памяти программ и дополнительно 128К ОЗУ, разбитого на две части.
Для сохранения образов операционной системы и хранения звуков дополнительно используется DataFlash объемом 1 Мбайт.

Для программирования и оперативного управления роботом может подключаться к компьютеру по USB интерфейсу.

Управление идет в режиме терминала, то есть пользователь при помощи простой терминальной программы вводит команды, а ФОРТ-система их выполняет.
Загрузка программы внутрь контролера происходит в виде текста — контролер сам компилирует программу, а потом её при необходимости исполняет.

Использование языка ФОРТ в качестве операционной системы для мобильного робота дает следующие преимущества:

— компактность кода (общий размер ядра ФОРТа составляет порядка 16 КБайт), ОЗУ 64 Кбайт хватает для достаточно серьезных приложений;
— высокое быстродействие (всего лишь в 2-раза медленнее, чем программа, написанная полностью на ассемблере, в десятки раз быстрее Бейсика);
— язык высокого уровня – программа на ФОРТе понятна и легко изменяется;
— интерактивный язык – для управления устройствами робота (двигателями, датчиками) в реальном времени можно использовать простой текстовый терминал;
— компиляция в системе – не требуются сложные компиляторы. Программа на ФОРТе в виде текста загружается в контроллер, компилируется им самим и сохраняется в ОЗУ.

Содержимое ОЗУ можно записать во Flash память для последующей быстрой загрузки;

— высокая скорость отладки – терминальный режим позволяет исполнить части кода непосредственно, при этом мгновенно проявляется эффект – идет управление оборудованием в реальном времени и ошибки находятся на ранней стадии написания
программы.

При сопряжении управляющего контроллера с исполнительными механизмами и их контроллерами встает проблема создания «хорошего» системного интерфейса.

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

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

Целесообразным является использование простого последовательного интерфейса, желательно синхронного типа, чтобы снизить точность поддержания частоты при передаче сигналов и повысить скорость обмена.

При построении программного интерфейса необходимо обеспечить «сокрытие» структуры исполнительного контроллера от управляющего, чтобы сделать однородное управление всей системой.

Все датчики и контроллеры описываемых роботов подключаются к управляющему контроллеру по системному последовательному интерфейсу.

Интерфейс построен на основе аппаратного SPI интерфейса, и позволяет обмениваться информацией с 32 ведомыми устройствами.

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

Таким образом, для управляющего контроллера все внешние устройства представляют собой набор регистров с одинаковыми правилами чтения и записи.

Скорости обмена по системному интерфейсу хватает для обработки датчиков в реальном времени.

Датчики, используемые в роботах, построены на собственных микроконтроллерах и являются в некотором смысле «умными».

Например, датчик определения препятствия позволяет определить не только наличие препятствия перед роботом, но и зону (слева, прямо или справа) его нахождения, а также определить дальность с точностью до сантиметра.

Датчик полосы измеряет уровни яркости на 4-х фотодатчиках и позволяет калибровать порог «светло»-«темно» чисто программными средствами. Таким образом, датчики производят предварительную обработку информации, значительно разгружая управляющий контроллер.

Построенные мобильные роботы являются модульными системами, что позволяет,

во-первых, упростить всю систему в целом,

во-вторых, обеспечить гибкость архитектуры,

и в-третьих, уменьшить стоимость и сроки разработок новых систем за счет унификации компонентов


Добрынин Д.А. История создания минироботов в ЦДТ «Родник»

Добрынин Д.А. Принципы построения малых мобильных роботов — мобильной платформы «Crazy Mouse» и робота-собаки «Робик»
А почему хаб «ненормальное программирование»?
То есть постить котиков — нормальное программирование, а научные вычисления (ради чего компьютеры и придумали) — ненормальное программирование?
Вот тоже на форте написал «Соэл» 2020г N3-c60,62 и тут вариант 90.189.213.191:4422/temp/uart_max6675_v1/test/uart_max6675_v1.zip
Время покажет возможности Форта, но этих времен мы можем не увидеть.
Sign up to leave a comment.

Articles