Какие языки / интернет-протоколы для удаленного управления роботами / электроникой? - PullRequest
2 голосов
/ 27 октября 2010

Интересно, какие языки используются в роботах и ​​электронике.Это языки низкого уровня, такие как Java, C, C ++ и т. Д.?

И если этими роботами и электроникой можно управлять из другого места, какой протокол используется?

Это не может быть HTTP Restне так ли?:)

Ответы [ 8 ]

2 голосов
/ 27 октября 2010

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

В качестве примеров небольших платформ Ada доступна для Atmel AVR (8-разрядная версия) как AVR-Ada.См. http://sourceforge.net/apps/mediawiki/avr-ada/index.php?title=Main_Page

. Для LEGO MindStorms Ada доступна из GNAT как версия GPL, которая также поддерживает профиль задач Ravenscar.Следовательно, вы можете легко создавать многозадачные приложения на платформе MindStorms.Смотри http://libre.adacore.com/libre/tools/mindstorms/

1 голос
/ 27 октября 2010

C / C ++, Java и Python.

Я бы сказал, что C / C ++ более широко используются, чем такие языки, как Java и Python, для программирования роботов, просто потому, что там уже так много всего.И C также является очень распространенным языком для встроенных приложений.Многие люди, которых я знаю в промышленности, используют C в качестве средства управления роботами и аппаратными средствами, такими как RS-232, UART, шаговые двигатели и т. Д.

Когда я работал в академических исследованиях, мои немецкие коллеги использовали Java почти исключительно на автономныхроботы, с удовлетворительными результатами.Если вы используете Java, вам просто нужно абстрагировать аппаратное обеспечение, когда вы его используете, что можно сделать с помощью Player / Stage или ROS.

Я думаю, все зависит от того, что вы хотите сделать.В моей конкретной области (ПЛК Mitsubishi) C ++ является языком выбора.Другие отрасли используют C ++ для программирования робототехники, например Honda ASIMO.AMD ATi использует Python для программирования своих графических ускорителей.Практически любой язык, который может общаться с коммуникационным портом, может быть использован для робототехники.

Что касается удаленного управления ими, Боевые роботы , вероятно, будут отличным примером:

Какой бы язык вы ни выбрали, вскоре вы обнаружите, что вам нужно будет говорить с точки зрениянули и единицы;)

1 голос
/ 27 октября 2010

Большинство созданных мною роботов были построены с помощью Lego Mindstorms.Есть несколько языков, которые вы можете использовать, но языком по умолчанию является визуальный инструмент.Вы можете удаленно управлять роботом через Bluetooth или ИК-порт (и Lego включает ИК-передатчик, подключенный через USB)

1 голос
/ 27 октября 2010

Как насчет LEGO Mindstorms? Если у вас нет особых требований к физическим свойствам робота, которые исключают Mindstorms / NXT, вы можете многое с этим сделать. И это серьезный предмет - не обманывайтесь брендом "LEGO".

http://mindstorms.lego.com/en-us/Default.aspx

Помимо поставки с собственным языком программирования, он также поддерживается Microsoft Robotics Developer Studio - так что вы можете использовать .Net для его кодирования.

http://msdn.microsoft.com/en-us/robotics/default

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

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

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

1 голос
/ 27 октября 2010

Я бы сказал, что это зависит от вашего проекта. Я использовал C / Assembler для программирования электронного микропроцессора, но я знаю, что вы можете использовать языки программирования высокого уровня и для некоторых проектов, если ваша операционная система роботов позволяет это. Таких как Java / C # и так далее. Существует множество протоколов, используемых для подключения к инструменту, и я считаю, что TCP / IP или UDP / IP является наиболее распространенным. Но некоторые люди предпочитают писать / программировать свои собственные протоколы.

0 голосов
/ 10 мая 2019

Вы можете управлять роботами и электронными гаджетами на разных языках, на которых вам удобнее. Но это также зависит от типа гаджетов, которыми вы пытаетесь управлять, т.е. если вы разрабатываете робот или гаджет с нуля, вы можете запрограммируйте его на выбранном вами языке, например C, C ++. Python, Java и т. Д. Вы также можете использовать встроенный язык для программирования контроллера на ваш выбор языка. Существует множество различных компиляторов, доступных только для компиляции вашей программы из контроллера, например, MicroC - один из них, который я часто использую для компиляции. мой встроенный код для микроконтроллеров. Если вы программируете какую-то плату, такую ​​как Arduino, то вы можете использовать ее собственную IDE, где вы можете ее запрограммировать. Для удаленного управления роботами и гаджетами вы можете использовать множество различных способов, например:

  1. Интернет: вы можете использовать Интернет для управления ими, интегрируя их с такими модулями, как ESP8266, NodeMcu, модули GSM и т. Д., И использовать пользовательское веб-приложение, мобильное приложение для управления ими. Это относится к Интернету вещей (IOT).

2.Bluetooth: Вы даже можете использовать Bluetooth для управления устройствами, интегрировав модуль Bluetooth с вашим устройством, но диапазон Bluetooth мал.

  1. Radio Frequency RF: Вы также можете использовать радиочастотные RF-модули для управления роботами в отдаленных районах, но стоимость внедрения выше, чем в остальных случаях.
0 голосов
/ 27 октября 2010

Отказ от ответственности: я не эксперт.

У меня действительно только опыт работы с Arduino , который можно запрограммировать на ассемблере или C (набор инструментов AVR-GCC ). Однако, если целевая среда является достаточно мощной или имеет достаточно памяти, ничто не мешает использовать язык более высокого уровня - кроме других технических ограничений, таких как, например, требование hard realtime - такое как, скажем, Lua или что-то еще более высокого уровня.

Что касается связи, то это зависит и от конечной транспортной среды. Для, скажем, Bluetooth, Zigbee, просто для цифровой радиосвязи, или, может быть, вы знаете, пара проводов (или даже один провод ) или что-то еще, это было бы достаточно последовательный протокол с низкой пропускной способностью ... Но, конечно, все зависит от целевой платформы.

Для чего это стоит, в отношении HTTP - я создал управляемый HTTP RGB-фонарь (который плавно затухает между цветами !: P), используя Arduino и Ethernet Shield, доступные для него. HTTP-сервер работает на Arduino.

0 голосов
/ 27 октября 2010

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

http://www.google.co.uk/products/catalog?q=build+java+robots&hl=en&cid=346434932749925759&ei=WATITISGE5_g2ASm_tilCQ&sa=title&ved=0CAcQ8wIwADgA#p

Эта книга показала мне, как разговаривать с роботом с помощью Bluetooth.

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

...