smur писал(а):
Мне кажется я и начал обсуждать применение автоматного программирования на примере
https://vzikblog.wordpress.com/2019/04/02/проект-bibi-часть-5/
в ветке:
forum10/topic18271.htmlпричем в деталях, для тех, кто читает, а не просматривает.
Одна из ключевых деталей, которые соответсвуют обсуждаемой здесь темы, состоит в том, что в качестве IDE Вы применили в своем BiBi проекте Arduino, при этом логирование предварительно было в виде графического описания алгоритма с применением автоматного программирования, где драйвер каждого аппаратного модуля брался из готовых библиотек.
В качестве MCU был применен Atmega328p с обвязкой в виде шилда NANO.
В принципе сам по себе факт применения здесь автоматного программирования
не оспаривается.
Здесь же речь идет не столько об алгоритмизации задач с применением АП, в виде графов, сколько о среде программирования, в которой легко, просто и доступно присутствовать на празднике для разраба.
В Вашем случае, тут я развернуто повторяюсь, Вы да, должны обладать следующими скилами:
1. Знание языка программирования. Обычно для Atmega 328p используется язык программирования C/C++, и вы должны быть знакомы с этими языками.
2. Инструменты разработки. Вам потребуется среда разработки, такая как Atmel Studio или Arduino IDE, а также компилятор для языка C/C++.
3. Доступом к множеству библиотек и ресурсов доступных для работы с Atmega 328p, включая библиотеки для работы с GPIO, таймерами и коммуникацией, что таки да, проприетарно.
4. Вы должны знать, как создавать конечные автоматы для управления поведением вашего робота с описывнием различных состояний и переходов между ними.
5. После написания программы вы должны будете прошить микроконтроллер Atmega 328p, чтобы загрузить вашу программу на него.
smur писал(а):
Flowcode вещь полезная, хотя и платная и проприетарная. Но она не научит, как запрограммировать, например, работу лифтов в многоквартирном доме. А вот с помощью автоматного программирования это сделать довольно просто. Я имею в виду алгоритм работы. Подключение моторов и датчиков это дело техники, сам подход в программировании систем со сложным поведением это уже другой уровень задач которые я и пытаюсь рассмотреть.
Простые вещи возможно на нем генерить т.к. он поддерживает конечные автоматы (FSM) и позволяет создавать программы, основанные на этом подходе. Вы можете создавать состояния, определять переходы между ними и добавлять действия, выполняемые в каждом состоянии, т.е. он вполне подходящим инструментом для реализации автоматного программирования уровня Bi-Bi проекта, но опять же с доказательной подоплекой.
Серьезных вещей на нем не запилить, да он стоит денег и кроме того, согласен, если нужна большая гибкость или более высокая степень контроля над программой, возможно, вам придется перейти к текстовому программированию с использованием языков, таких как C/C++, либо персмотреть процессорную архитектуру с возможностью восспользоваться такими IDE,
которые датут позволят Вам в полной мере использовать их инструменты, чем мы и занимаемся.
smur писал(а):
В вашей IDE как запрограммировать работу лифтов, кстати? Скажем два лифта и 9 этажей. Одна кнопка вызова на каждом этаже.
Вполне, реально причем с всевозможными изяществами, начиная от считывания ID пассажира по карточке номера комнаты отеля, в котором вы проживаете, ограничениями колличества пассажиров по общему весу от рассчитанной грузоподъемности, так и езда лифта по сценариям.
На практике же многочисленная индустрия производит такие лифтовые контроллеры в комплекте с IDE их программирования, что позволяет далеко не скрипт кодеру, а электрику, прошедшему курсы и получившему лицензию, заниматься установкой такого контроллера, наладочными работами и программировать такой проприетарный комплекс, который возможно включат в себя изначально метод АП.
Но с лифтами более менее все понятно, а что делать с остальным хозяйством, где требуется роботизация и автоматизация? Это вопрос, который сегодня терзает практически любого
обладателя идей, но без инструментов, идея так и останется идеей.
К слову, будете удивлены, но идей из за отсутствия инструментов не густо, некоторые это понимают на стадии принятия решения о привлечении инвестиций, а некоторые посыпают голову пеплом, т.к. деньги все потрачены а света в конце тоннеля нет.
Я за то, чтоб развивать АП в комфортной среде, доступной для широкого сообщества специалистов, а не только для тех, кто имеет четкое представление об АП и занимается доказательными проектами уровня Bi-Bi.
Мое мнение, что разработчик не должен вникать в теорию и методы логгирования АП, он просто должен работать в среде, которая эти методы применяет.
По ходу Тьюринг предложил построить дешифратор на основе электронных ламп и привёл в команду Т. Флауэрса — опытного инженера-электронщика. В результате совместных усилий математиков и инженеров был разработан «Колосс» — одна из первых в мире ЭВМ. К 1944 году с помощью «Колосса» код «Лоренц» был взломан, что позволило союзникам читать всю переписку высшего германского руководства.