Автор книги: Евгений Рычков
Жанр: Компьютеры: прочее, Компьютеры
Возрастные ограничения: +12
сообщить о неприемлемом содержимом
Текущая страница: 2 (всего у книги 6 страниц) [доступный отрывок для чтения: 2 страниц]
Введение в робототехнику
Впервые слово «Робот» появилось в чешском от слова robota, что означает подневольный труд. В нашем мире существует множество автоматизированных устройств, но не все можно назвать роботами. Ниже приведены изображения, но не на всех из них можно увидеть робота.
Рисунок 3 – Роботы и автоматы
Разница между роботом и так называемым автоматом очень относительна. Во многих школах робототехники собирают автоматические устройства, но называют это роботами. И, наоборот, кажется устройство умеет самостоятельно принимать решение, обладает пусть простейшим, но интеллектом, а его все равно могут отнести к автоматизированным средствам. Так, 3D-принтер можно отнести скорее к автоматам, ему нужен g-code (последовательность команд в текстовом файле), в соответствии с инструкциями в этом файле, состоящем из набора команд, он перемещает экструдер, из которого льется пластик, в нужные точки для «печати» изделия. Он не думает и не принимает решения, лишь четко следует командам. По аналогии, многих из нас нельзя назвать биологическими роботами, среди нас полно био-автоматов.
Рисунок 4 – 3D-принтер
Но можно ли отнести 3д-принтеры, станки ЧПУ к роботам? Да, можно, но если они смогут что-то выполнять не по жестко заданной программе, а алгоритмам, которые зависят от комплекса внешних факторов – погоды, расстояния до ближайших стен в доме, уровню шума.
Автома́т – машина, самостоятельно действующее устройство (или совокупность устройств), выполняющее по жестко заданной программе, без непосредственного участия человека, процессы получения, преобразования, передачи и использования энергии, материала и информации. Автоматы применяются для обеспечения комфортных условий жизни человека, повышения производительности, облегчения и обеспечения безопасности его труда.
Ро́бот (чеш. robot, от robota – «подневольный труд») – автоматическое устройство, предназначенное для осуществления различного рода механических операций, которое действует по заранее заложенной программе.
Даже «робот-кот» может быть автоматом, если это – совсем бездушное существо, которое просто двигается по заранее предложенной программе. Поэтому грань между роботами и автоматами действительно очень тонкая, ведь кажется, что устройство, которое похоже на кота – это именно робот-кот! А не автоматический кот.
Рисунок 5 – Робот-кот, изготовленный в сообществе разработчиков Технофея
Робот не обязательно имеет какой-то физически существующий корпус. Это может быть программа, написанная на каком-либо языке программирования. Например, бот, написанный на Питоне с использованием Tensor Flow, подключаемое через интерфейс API к социальной сети «Вконтакте». То есть мы видим фотографию робота, видим, что он нам отвечает в процессе переписки с ним, видим, что он не просто перебирает 2 фразы, а даже в ответ на наше заевшее «Привет, как дела?» отвечает каждый раз по-разному. Да, мы разговариваем с бездушным устройством, но ответы оно подбирает уже случайным образом, либо с помощью обученной нейросети, поэтому мы разговариваем, пожалуй, с роботом, а не с автоматом.
Рисунок 6 – Бот от сообщества разработчиков Технофея, который использовался в 2017—2018 годах
Таким образом, робот может не иметь механической части, но когда мы увидим какую-нибудь отладочную плату, например, Arduino UNO или Wemos ESP32, к которой подключены датчики и в которой происходит самостоятельное принятие решения (без заранее подготовленных сценариев от разработчика этого устройства), мы по аналогии с Интернет-ботами можем говорить о том, что эта плата с некоторой модульной «обвязкой» – робот.
Робототехника базируется на 3-х более фундаментальных дисциплинах, переплетается с ними: c электроникой, механикой и программированием, рассмотрим их далее.
Электроника
Робот может состоять из платы управления, к которой подключаются датчики. модули, сенсоры, устройства. Можно помигать светодиодом, и даже сделать целую систему передачи информации, мигая им с помощью Азбуки Морзе, например. Можно анализировать содержание углекислого или угарного газов в квартире и на дисплей выводить одно из двух сообщений: «Зона слабой мозговой активности» или «Угроза пожара». Собранное по электрической схеме устройство – это наработка из области электроники. Внизу приведена схема, где к Arduino Uno подключен датчик температуры и влажности DHT11 и жидкокристаллический дисплей (или LCD – liquid crystal display c английского).
Рисунок 7 – Схема подключения к Ардуино жидкокристаллического дисплея и датчика температуры и влажности, созданная в среде Fritzing
Кстати, существуют действительно семисегментные жидкокристаллические дисплеи – крайне простой индикатор информаций, доступный еще в 90-х годах и ранее, известных как в зарубежной, так и в советской электронике. Но семисегментные дисплеи имею всего лишь 6 сегментов для отображения числа и один сегмент для визуализации разделителя – точки или запятой. В дисплеях на рисунке выше больше сегментов.
Рисунок 8 – Семисегментные индикаторы на модуле
Теперь представьте, Вы даже не показываете вашу разработку где-то на Всероссийском конкурсе, таком как «Шустрик». Но вы переезжаете на новый адрес своего жительства, Вам нужно сложить устройство в пакет, перевезти, потом заново запустить в новой квартире. Приехав в новое жилье, Вы замечаете, что 2 провода у Вас «отвалилось», и не понятно, куда их теперь вставлять, а схему Вы уже подзабыли… Вообще в электронике все четко, и такой ситуации быть не должно. Ведь вы сначала делаете прототип с использованием макетирования – на макетной плате собираете устройство. Макетная плата с ручной работой по трассировке с использованием паяльника показана на рис. ниже.
Рисунок 9 – Распаянные на макетной плате соединения
На рисунке ниже приведен альтернативный, другой вариант макетирования для будущего устройства. Видно, что компоненты соединяются друг с другом отдельными проводами, которые залужены (покрыты оловом или припоем другого состава) и припаяны в нужных местах.
Рисунок 10 – Результат прототипирования на макетной плате
Перед такой пайкой целесообразнее сначала собрать схему на беспаечной плате, например, как на рисунке ниже. Здесь процесс макетирования проходит намного быстрее, ведь уже купленные в интернет-магазине провода нужно просто воткнуть в плавильные ячейки, соединив их с электронными компонентами или модулями.
Рисунок 11 – Прототипирование на беспаечной макетной плате
Наконец, развитие электроники нам сейчас позволяет после макетирования перейти к PCB-платам, которые изготовлены на заводе с соблюдением всех необходимых технологический процессов, имеют шелкографию, то есть надписи на плате, например, белого цвета. Сама печатная плата – это кусок текстолита определенной толщины и габаритов.
Рисунок 12 – Электронные компоненты и микросхемы на плате промышленного образца
Правильно, конечно, в своих начинаниях в области электроники прийти в итоге именно к грамотно спроектированной печатной плате, такой, как на рисунке выше. Но «электроника» может «лежать» и в виде множества устройств на рабочем или лабораторном столе, модулей соединенных проводами между собой, и это также нормально. Более того, часто несколько печатных плат, представленных выше, все равно соединяются между собой. В устройстве может быть несколько таких плат, модулей. Печатные платы можно проектировать в таких программных обеспечениях, как Altium Designer, Eagle, Sprint Layout и так далее. Все дороги могут быть разведены на одной стороне печатной плате, а могут – на двух. Существуют и более сложные решения, например, 3-х слойные печатные платы и даже… 16 слойные и так далее.
Механика
Но даже если мы соберем очень функциональное устройство, управляющее всем умным домом, то под него все-равно необходим корпус. Поэтому нужно грамотно относиться к тому, на какие болты Вы будете прикручивать каждый электронный модуль, в каком месте корпуса оптимальнее расположить разные составляющие устройства. Тогда, даже если Вы не «посадите» провода на клей от клеевого пистолета и даже если Вы будете использовать не PCB-плату с шелкографией, изготовленную в Китае, а макетную плату с множеством плохо припаянных проводов, у Вас все-равно ничего не отвалится, по крайней мере, в ближайшее время. Ведь все жестко зафиксировано внутри корпуса, невозможно создать воздействие, из-за которого провод выпадет из гнезда или отвалится из-за плохой пайки.
Корпус можно не только купить готовый, но и спроектировать самому, например, в одной из сред разработки, таких как Fusion 360, AutoCAD, SketchUp и так далее. На рисунке ниже представлено устройство в корпусе, разработанном с помощью лазерной резки фанеры.
Рисунок 13 – Корпус проекта мини-компьютера на базе платы семейства Raspberry Pi
Соединять части корпуса между собой можно, просто склеив их, но такое соединение не самое крепкое, когда края на границе склейки ровные, когда одна деталь практически никак не держится за другую. Можно скрепить части корпуса металлическими уголками, но со временем стало известно правильное и оптимальное решение – надо границы на фанере оставлять с т-образными или п-образными неровностями-пазами. Такое соединение держится, и когда его закрепляешь клеем, получается относительно крепкое и устойчивое к механическим внешним воздействиям соединение.
Корпус можно украсить металлическими вставками, покрасить самостоятельно в нужный цвет. На рисунке ниже приведен еще один корпус, изготовленный с помощью лазерной резки.
Рисунок 14 – Корпус устройства, генерирующего сигналы, результат лазерной резки
Во время лазерной резки можно наносить текст и рисунки, прожигая фанеру не до конца, а лишь на некоторую глубину. Лазером в фанере на этапе проектирования можно закладывать отверстия любой формы. Резка лазером проходит намного быстрее, чем 3D-печать, так как лазеры с большой мощности режут фанеру толщиной 3—6 мм с первого раза, а 10 см лазер может проходить на большой скорости при этом, и отрезание все равно состоится.
Корпус может быть распечатан на 3D-принтере, слой за слоем. Такой корпус приведен на рисунке ниже. Издали он ничем не отличается от корпуса, который отлит в форму, но если присмотреться поближе – будет видно слои, то есть пластик будет не идеально гладкий, а будет состоять из слоев, полосок. Эти полоски можно сгладить наждачной бумагой, особенно, если поверхность будет плоской, но слои все равно так или иначе, обычно, видно. Если сверху покрасить деталь, напечатанную на 3D-принтере, то слои, конечно, видно не будет. Это один из «лайфхаков», способов, как скрыть факт того, что делать была распечатана слой за слоем, а не отлита в форму.
Рисунок 15 – Корпус мобильного робота, распечатанный на 3D-принтере
У корпуса должны быть подвижные части, предусмотренные разработчиками. Но, более того, просто подключить, например, сервопривод к Arduino – часто это бессмысленное занятие. Более того, что если подключать так, как на рисунке ниже, через сервопривод течет ток «холостого хода». Когда мы «нагрузим» этот сервопривод реальной задачей, например, установим в роборуку, то для хорошего крутящего момента тока, который он получает от Arduino, будет недостаточно. Нужен будет внешний источник питания. Это с позиции электроники.
Рисунок 16 – Подключение сервопривода к Arduino UNO
С позиции же механики нужно изготовлять полезные в быту и промышленности соединения, которые помогают роботу, например, поднимать и перемещать грузы. Например, механика может показать, как правильно сконструировать локоть у манипулятора. Проще всего, конечно, осознать, что такое механика, возможно, если рассматривать устройство автомобилей.
Рисунок 17 – Ламборгини Авентадор
Да, в автомобиле может быть «крутая» электронная «начинка». Может быть даже искусственный интеллект, из-за которого машину можно считать роботом. Например, система парковочных датчиков сама принимает решения по правильной парковке автомобиля. Но в машине очень важны: коробка передач, задний / передний / полный привод. Что это? Это «механика» в автомобиле.
Соединение разных частей любого проектируемого изделия можно выполнить напрямую, но они могут люфтить… Использовать ли шарнир…? Подшипник какого диаметра стоит подобрать…? Использовать ли передачу с одной шестерни на другую? Как сделать коэффициент передачи в редукторе для мотора между шестеренками 1:3 или 1:5, сколько зубьев должно быть на первой шестерне, а сколько на второй? Это все – механика.
Рисунок 18 – Рука-манипулятор, используемая в сообществе разработчиков «Технофея»
Программирование
Наконец, для правильной работы устройства у него должна быть правильная программа на одном или нескольких популярных языках: С++, С#, Java, Python и так далее, что изучается в разделе программирования. Вообще интерфейс робота можно разрабатывать и в веб-приложении, с которым робот обменивается командами. Тогда нам вообще открывается весь стек веб-разработчиков (PHP, Laravel, YII2, Javascript Underscore, React, Bootstrap, Sass css и так далее). Таким образом, программирование робототехнику также необходимо знать, и от уровня знания разных языков зависит то, какой сложности проекты такой разработчик будет разрабатывать или запускать с GitHub. Пример кода «Привет, Мир!» в Arduino IDE показан на рисунке ниже.
int hello = «Привет, Мир!»;
void setup () {
//Ничего не настраиваем, переходим к циклу
}
void loop () {
console. log (hello);
delay (1000);
}
***
Электроника, механика, программирование – это полноценные дисциплины, такие же, как физика, математика, черчение. Для того, чтобы приступать к робототехнике, необходимо знание всех этих предметов на достойном уровне, либо стоит уделить большое внимание тому, чтобы подтянуть навыки по этим дисциплинам по ходу работы с робототехникой.
Законы робототехники
Существует 3 закона робототехники, которые нам предлагает Айзек Азимов уже как с 1986 года. Создавая роботов, Вы должны соблюдать их.
Рисунок 19 – Известные на сегодня 3 закона робототехники
Ведь ограничения в этих законах – это как запрет в Хогвартсе на убивающее заклинание «Авада Кедавра». Если вы не убийца и не маньяк, не нарушайте, пожалуйста, нижеприведенные законы.
Айзек также говорил впоследствии о дополнительном, нулевом, законе робототехники, который гласит, что разрабатываемый робот должен приносить пользу не только одному конкретному человеку, особенно в целях его сугубо личной выгоды, но такой робот должен быть полезен для будущего и настоящего всего человечества.
В реальности роботы-убийцы – это не какая-то будущая утопия, но они уже существовали среди нас, правда те системы, о которых идет речь, сложно назвать роботами. Например, известно, что из-за ошибок в программном коде Therac-25 умерли несколько человек от получения смертельной дозы излучения. Therac-25 (с англ. – «Терак-25») – аппарат лучевой терапии, медицинский ускоритель, созданный канадской государственной организацией «Atomic Energy of Canada Limited» (AECL) и запущенный в серию в 1982 году. С июня 1985 года по январь 1987 года этот аппарат стал причиной как минимум шести передозировок радиации, некоторые пациенты получили дозы в десятки тысяч рад. Как минимум двое умерли непосредственно от передозировок.
В 1991 году в Испании, в городе Сарагоса, на эксплуатировавшемся аппарате Sagitar-35 в течение 10 дней подверглись передозировке не менее 25 пациентов, из которых как минимум трое умерли. Отличительной особенностью Therac-25 является то, что для расследования происшествий была организована группа экспертов, которая изучала причины и особенности инцидентов. Это позволило не только реконструировать картину произошедшего, но и на основе полученного опыта улучшить процедуры, директивы и систему отчетности для обеспечения безопасности медицинских устройств.
Аппаратом Therac-25 управляла мини-ЭВМ PDP-11 с собственной операционной системой реального времени, выполняющей одновременно около десятка задач, которые разделялись на критические и некритические. Всё программное обеспечение было написано на языке ассемблера.
Программное обеспечение Therac-25 состояло из 20 тысяч инструкций кода и было разработано одним программистом в течение нескольких лет, при этом оно включало в себя части кода, написанного для Therac-6 и Therac-20.
В суде Техаса было предоставлено очень мало информации о том, кто был данным единственным программистом. AECL могла не предоставлять свои записи о трудоустройстве, а также сотрудники компании не предоставляли данных об их образовании, квалификации и опыте работы. Известно только, что разработчик программного обеспечения покинул компанию в 1986-м году.
Заметьте, устройства, описанные выше, не являются роботами, хотя роботы могли бы содержать в себе подобные облучатели для убийства людей. В новостях о трагедиях пишут, что во всем виноват один программист, и это всегда, видимо, так… Когда устройство получилось успешным, то многие разработчики стараются доказать, что именно они внесли вклад, что целая группа ученых работала над успешной системой. А когда устройство по ошибке разработчика или нескольких инженеров и их руководителей убила людей, во всем, оказывается, виноват всего лишь один программист. Интересно, конечно.
Но ошибки в робототехнических системах могут обойтись дороже. Например, если бы в WiFI-модуле ESP32 не стояло бы изначально ограничения по мощности излучения в соответствии со стандартами связи, то передозировка WiFi-облучения при неправильном подходе к энергетическим расходам во время работы приложения могли бы привести даже к облысению жителей умных домов. Здесь, однако, немаловажен вопрос того, что порядочные разработчики систем и устройств умного дома на базе микроконтроллера ESP32 должны обязательно знать такую тему, как режим сна, гибернации и работы с отключенным WiFi-модуля. Это помогает не только снижать энергопотребление, но и риск негативного влияния на конечных потребителей.
Таким образом, 3 закона робототехники, которые дополняются еще нулевым законом, крайне актуальны не только для предотвращения намеренного вреда человечеству, но и для недопущения случайного вреда по отношению к людям из-за каких-либо программных ошибок в Вашем продукте или аппаратной неисправности. Теперь Вы посвящены в хранителей этих правил, и должны трепетно к ним относиться!
Микроконтроллеры и ПЛИС
С появлением однокристальных микро-ЭВМ связывают начало эры массового применения компьютерной автоматизации в области управления. Это обстоятельство, пожалуй, и определило термин «контроллер» (англ. controller – регулятор, управляющее устройство). Микроконтроллер – это интегральная схема, способная выполнять программы.
Первый патент на однокристальную микроЭВМ был выдан в 1971 году инженерам М. Кочрену и Г. Буну, сотрудникам американской Texas Instruments. Именно они предложили на одном кристалле разместить не только процессор, но и память с устройствами ввода-вывода. Фото микроконтроллера 93-го года с УФ стиранием памяти 62E40 европейской фирмы STMicroelectronics представлено на фотографии ниже.
Рисунок 20 – Фотография микроконтроллера семейства STM
Видно, что внутри микроконтроллера маленькие металлические провода «тянутся» к кристаллу, который на фотографии видно лишь как какой-то небольшой металлический объект. На самом деле, на кристалле микросхемы разведено множество логических элементов, под микроскопом на нем можно увидеть целую топологию и устройство архитектуры микроконтроллера.
Так как сам кристалл меньших размеров, чем корпус, в который он заключен, мы видим множество металлических проводов, которые тянутся через границы пластика к выводам микроконтроллерного чипа. Каждая «ножка» нужна для передачи по ней определенного сигнала. По фотографии ниже это уже более понятно, что на кристалле, к которому тянутся провода, что-то явно есть.
Рисунок 21 – Фото кристалла микроконтроллерной схемы крупным планом
На фотографии ниже показан советский микроконтроллер КМ1850BE39 (версия в керамике, 8-разрядный, ОЗУ 128 байт, без ПЗУ). ОЗУ – оперативное запоминающее устройство, то есть память, которая доступна, пока на микроконтроллер подается питание. Это временная память, при выключении питания там все стирается.
Рисунок 22 – Микроконтроллер КМ1850BE39
ПЗУ же – это постоянное запоминающее устройство. Там данные, которые однажды были туда занесены, хранятся всегда, хоть отключай питание, хоть не отключай. Для стирания данных или перезаписи нужно специально перезаписывать информацию, сама она не сотрется, по крайней мере в ближайшие несколько лет.
Микроконтроллеры требуют навыков в электронике от тех, кто хочет их запрограммировать. На фото выше мы видим, что микроконтроллер выглядит, как некоторый жук с ножками. Известно, что каждая нога – это электрический сигнал. Представьте, по аналогии с розеткой, там где 220 В переменного тока, что в микроконтроллере есть такая же возможность, как и в розетках – включение электроприборов. То есть с помощью 2-х выводов микроконтроллера можно, например, зажечь лампочку.
Однако стоит понимать, что микроконтроллерные сигналы намного менее мощные, чем те, которые мы получаем дома из своей обычной розетки. Более того, в розетку приборы «включаются». То есть мы вставляем вилку в розетку и включается телевизор, холодильник или пылесос, так как на них приходит напряжение и они начинают обеспечиваться некоторым током.
С помощью микроконтроллера, однако, можно не просто включать что-то типа лампочки, а создавать целые интерфейсы, чтобы, например, управлять жидкокристаллическим дисплеем, считать данные с SD-карты памяти, читать данные, которые отправляет нам, например, другой микроконтроллер, читать данные с датчиков и так далее.
В связи со спадом отечественного производства и возросшим импортом техники, в том числе вычислительной, термин «микроконтроллер» (МК) вытеснил из употребления ранее использовавшийся термин «однокристальная микроЭВМ».
Снова вернемся чуть назад во времени. Первый патент на однокристальную микроЭВМ был выдан в 1971 году инженерам М. Кочрену и Г. Буну, сотрудникам американской Texas Instruments. Именно они предложили на одном кристалле разместить не только процессор, но и память с устройствами ввода-вывода.
В 1976 году американская фирма Intel выпускает микроконтроллер i8048. В 1978 году фирма Motorola выпустила свой первый микроконтроллер MC6801, совместимый по системе команд с выпущенным ранее микропроцессором MC6800. Через 4 года, в 1980 году, Intel выпускает следующий микроконтроллер: i8051. Удачный набор периферийных устройств, возможность гибкого выбора внешней или внутренней программной памяти и приемлемая цена обеспечили этому микроконтроллеру успех на рынке. С точки зрения технологии микроконтроллер i8051 являлся для своего времени очень сложным изделием – в кристалле было использовано 128 тыс. транзисторов, что в 4 раза превышало количество транзисторов в 16-разрядном микропроцессоре i8086.
На сегодняшний день существует более 200 модификаций микроконтроллеров, совместимых с i8051, выпускаемых двумя десятками компаний, и большое количество микроконтроллеров других типов. Популярностью у разработчиков пользуются 8-битные микроконтроллеры PIC фирмы Microchip Technology и AVR фирмы Atmel, 16-битные MSP430фирмы TI, а также 32-битные микроконтроллеры архитектуры ARM, которую разрабатывает фирма ARM Limited и продаёт лицензии другим фирмам для их производства. Несмотря на популярность в России микроконтроллеров, упомянутых выше, по данным Gartner Group от 2009 года мировой рейтинг по объёму продаж выглядит иначе:[3] первое место с большим отрывом занимает Renesas Electronics на втором Freescale, на третьем Samsung, затем идут Microchip и TI, далее все остальные.
В СССР велись разработки оригинальных микроконтроллеров, также осваивался выпуск клонов наиболее удачных зарубежных образцов. В 1979 году в СССР НИИ ТТ разработали однокристальную 16-разрядную ЭВМ К1801ВЕ1, микроархитектура которой получила название «Электроника НЦ».
С появлением однокристальных микро-ЭВМ связывают начало эры массового применения компьютерной автоматизации в области управления. По-видимому, это обстоятельство и определило термин «контроллер» (англ. controller – регулятор, управляющее устройство).
В связи со спадом отечественного производства и возросшим импортом техники, в том числе вычислительной, термин «микроконтроллер» (МК) вытеснил из употребления ранее использовавшийся термин «однокристальная микроЭВМ».
Первый патент на однокристальную микроЭВМ был выдан в 1971 году инженерам М. Кочрену и Г. Буну, сотрудникам американской Texas Instruments. Именно они предложили на одном кристалле разместить не только процессор, но и память с устройствами ввода-вывода.
Если сам микроконтроллер – это, своего рода, жук с металлическими ножками, которые являются портами ввода-вывода сигнала, то микроконтроллерные платы – это уже относительно готовое электронное устройство. Его нужно лишь подключить к компьютеру через micro-usb интерфейс, например. И можно уже написать программу и слать данные в сеть интернет, если на плате встроен WiFI-модуль. То есть, в таком случае, даже не нужно ничего самостоятельно подключать к микроконтроллеру, нужна лишь правильная программа. Примером микроконтроллерной платыявляется, например, крайне популярная в последние 15 лет плата Arduino Uno, первый прототип которой создан еще в 2005 году в Италии. Сама плата приведена на фото ниже.
Рисунок 23 – Плата Arduino UNO
На плате есть микроконтроллер, он выглядит все также, как и раньше – жук с ногами, черного цвета. Это – Atgema328p, которая на рисунке выше представлена в корпусе PDIP и имеет 28 портов-»ножек». На рисунке выше видно, что вокруг микроконтроллера представлена целая периферия вспомогательных электронных компонентов. Стабилизатор питания, светодиоды, которые можно включать и выключать, кварцевый резонатор, порт для связи с компьютером и для программирования USB-B, кнопка перезагрузки программы и так далее.
В 2005 году плата была намного проще – на PCB развели дорожки чуть ли не методом литографии, припаяли микроконтроллер, припаяли светодиод и начали писать, видимо, Arduino IDE – среду, где писать программы для «мигания» светодиодом или чтения сигналов с датчиков газа, температуры, влажности и других теперь станет намного проще, чем это можно было делать раньше средствами, например, программы Atmel studio.
Рисунок 24 – Первый прототип платы Arduino Uno, разработанный в Италии основателями данного проекта
Дело в том, что в 2005 году разные разработчики программ и устройств на основе микроконтроллеров должны были знать много чего, обладать существенными профессиональными знаниями в области электроники. На заводах такие разработчики крайне ценились, особенно когда они умели отлаживать работу программу по интерфейсу JTAG. Arduino IDE, например, такой отладки не поддерживает.
Рисунок 25 – Среда разработки Arduino IDE
То есть нельзя в программе делать точки, где надо остановиться и посмотреть содержимое переменных, ключевых значений программы… Однако, с изобретением Arduino концепция совсем поменялась: подключить несколько датчиков к микроконтроллеру и вывести полученные с них величины на дисплей теперь могут обычные школьники, которые даже не обладают высшим образованием. При этом отладчик не особо то нужен, все переменные можно на любом шаге выполнения программы выводить в монитор порта.
В Arduino идет преобразование интерфейсов: вроде видно, что к компьютеру плата подключается по USB. Но на плате стоит USB-UART конвертер. То есть Atmega328p обменивается данными с компьютером, по факту, используя интерфейс UART, а не USB! Но далее стоит преобразователь интерфейсов, который USB-сигналы с компьютера преобразует в UART, а UART-сигналы с микроконтроллера преобразует в USB.
С другой стороны, микроконтроллерные платы начали активно развиваться для задач инженеров предприятий и заводов. Стали появляться профессиональные решения, например, отладочные платы от Texas Instruments, одно из таких решений представлено на рисунке ниже – EK-TM4C123GXL.
Рисунок 26 – Микроконтроллерная плата EK-TM4C123GXL фирмы Texas Instruments
Список производителей микроконтроллеров:
– 1 Altera
– 2 Analog Devices
– 3 Atmel
– 4 Cypress Semiconductor
– 5 ELAN Microelectronics Corp.
– 6 EPSON Semiconductor
– 7 Espressif Systems
– 8 Freescale Semiconductor
– 9 Fujitsu
– 10 Holtek
– 11 Hyperstone
– 12 Infineon
– 13 Intel
– 14 Lattice Semiconductor
– 15 Maxim Integrated
– 16 Microchip Technology
– 17 National Полупроводник
– 18 NEC
– 19 NXP Semiconductors
– 20 Nuvoton Technology
– 21 Panasonic
– 22 Parallax
– 23 Rabbit Semiconductor
– 24 Renesas Electronics
– 25 Redpine Signals
– 26 Rockwell
– 27 Silicon Laboratories
– 28 Silicon Motion
– 29 Sony
– 30 Spansion
– 31 STMicroelectronics
– 32 Texas Instruments
– 33 Toshiba
– 34 Ubicom
– 35 Xemics
– 36 Xilinx
– 37 XMOS
– 38 ZiLOG
Видно, что микроконтроллеры создаются очень большим перечнем компаний, особенно если они нужны для бытовой техники и портативных гаджетов. Но кроме микроконтроллеров существуют похожие микросхемы, но с абсолютно другим принципом действия. Интересно понимать разницу между микроконтроллерами и ПЛИС.
Если разработчики OFDM-систем хотели разработать новую версию радиоэлектронной системы, в 2012-м году они могли купить отладочную плату разработчика Virtex-6 или Kintex-7, не разрабатывать топологию таких плат с нуля, то есть не думать о том, где какие компоненты на плате должны находиться, сколько слоев должно быть на этой плате, на которой затем нужно паять электронные компоненты и разъемы для установки модулей. Если в микроконтроллере существует список команд, которые последовательно выполняются внутри микроконтроллера, где формируется стек задач, то в ПЛИС (Программируемые Логические Интегральные Схемы) тот же, примерно, функционал, что обеспечивают микроконтроллеры, можно организовать совсем в другом виде. Процессы, которые в микроконтроллере запускаются и выполняются последовательно, в ПЛИС могут быть представлены в виде параллельных «путей», каждый из которых выполняет определенные операции. ПЛИС могут решать задачи быстрее, чем микроконтроллеры.
Вычислительные мощности таких плат на основе ПЛИС постоянно увеличивали, разрабатывали более удобные среды программирования, совершенствовали языки программирования, такие как VHDL, Verilog, С++ и так далее. Но если мы говорим про ПЛИС (программируемые логические интегральные схемы) типа Virtex-6 и Kintex-7, их устройство не похоже на архитектуру микроконтроллеров. В ПЛИС применяются специальные логические ячейки (ЛУТ), с помощью них можно формировать множество параллельных сигналов, проходящих через разработанную схему на этапе создания решения на базе ПЛИС.
Внимание! Это не конец книги.
Если начало книги вам понравилось, то полную версию можно приобрести у нашего партнёра - распространителя легального контента. Поддержите автора!Правообладателям!
Данное произведение размещено по согласованию с ООО "ЛитРес" (20% исходного текста). Если размещение книги нарушает чьи-либо права, то сообщите об этом.Читателям!
Оплатили, но не знаете что делать дальше?