2008-12-14 5 views
13

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

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

До сих пор я нашел Phidgets, но есть только несколько датчиков, и это тоже довольно дорого.

Итак, вопрос: знаете ли вы о любой другой «платформе» с хорошим API и большим выбором датчиков?

+0

http://www.stackoverflow.com/questions/3047192/alternative-languages-for-embedded-programming –

ответ

9

Взгляните на Arduino. Есть масса забавных вещей, которые вы можете сделать с одним из перечисленных на Make.

3

Проверьте мой вопрос о микроконтроллере here. Также: How to Start programming microcontroller.

У меня есть заказ для chritsmas популярного микроконтроллера Arduino. Вы не можете программировать с C#, но у них есть структура над обычной Assembly/C, которая упрощает взаимодействие.

+1

Arduino выглядит интересно. Думаю, я мог бы использовать API C с P/Invoke. Но мне все равно нужно будет самостоятельно создавать входы/выходы. Это хорошая вещь о Phidgets, она уже подготовлена. – lacop

1

Существует также Bug Labs, которая производит ряд аппаратных модулей, которые могут быть соединены вместе, чтобы построить произвольные устройства. Модули выглядят очень гладкими (но я не видел их в реальной жизни).

4

Если вы хотите использовать C#, посмотрели ли вы на .NET Micro Framework? SDK является бесплатным, подключается к Visual Studio, поставляется с полным эмулятором, и есть несколько наборов для разработчиков, доступных по довольно разумной цене.

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

Что касается датчиков, все эти интерфейсы поддерживают интерфейсы I2C и SPI, поэтому количество доступных периферийных устройств в тысячи. Вероятно, вам придется сделать некоторые рудиментарные пайки для некоторых из них (резисторы и т. Д.), Но если это вас пугает, вы, вероятно, все равно идете по неверному пути.

2

В течение многих лет я был большим поклонником микроконтроллеров серии PIC от Microchip Technology. Они имеют широкий спектр микроконтроллеров с различными функциями: от супер-крошечных до интегрированных беспроводных сетей. Вы можете забрать один из своих наборов PicStart за 50 долларов США, который включает в себя программное обеспечение, устройство программирования и образец микроконтроллера.Они могут быть запрограммированы в C, сборке, BASIC и т. Д.

Первоначально я получил свое начало в программировании микроконтроллеров с базовым штампом Parallax, но они довольно ограничены дорогостоящими (50 долларов США по сравнению с 1-6 долларами США за PIC) и могут быть запрограммированы только на BASIC, хотя они просто просты в использовании.

+0

CCS объединяет отличный компилятор и обучающие наборы, основанные на PIC. Да, это компилятор C, но у них много готовых библиотек для большого количества периферийных устройств и протоколов, что облегчает жизнь начинающему. – ctacke

0

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

Если вы решили изучить аппаратный дизайн, плата Nexys 2 от Digilent - отличный способ узнать об аппаратном дизайне с использованием VHDL или Verilog. Если вы хотите развернуть микроконтроллеры, то Xilinx Embedded Developer Kit позволяет настраивать систему микроконтроллеров с использованием процессора SoftBore MicroBlaze, который будет реализован на аппаратном обеспечении, и предоставляет IDE для записи вашего кода на C, который будет работать на встроенной платформе.

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

1

Что относительно Lego Mindstorms? Они имеют 32-битный процессор, на котором работает виртуальная машина, которая поддерживает многопоточность. VM может быть запрограммирована в ассемблере.

Я играл с ними некоторое время назад, и это было довольно интересное и интересное занятие.

+0

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

+0

Выбор датчика действительно маленький для мозговых штурмов/NXT ... – lacop

0

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

Для Java существуют аналогичные компоненты.

См.: Basic USB - Using Microchip Stack and C#.NET - Hardware.

+0

Parallax имеет очень популярный BASIC-компилятор для PIC, поэтому ему не нужно быть C или ASM. И ПОС далеко не бесполезны. – ctacke

0

Если встроенная система, с которой вы работаете, имеет компилятор ANSI C, он может запускать Lua (www.lua.org), все, что вам нужно, это скомпилировать источник на вашем устройстве. Однажды я говорил с одним из разработчиков этого языка, он сказал, что на одном из веб-серверов почтовых рассылок (также написанных на Lua) на языке, работающем в мобильном телефоне, некоторое время просто проверяют его.

С Lua вы можете взаимодействовать с датчиками любого устройства, с которым вы будете работать на C или C++, и иметь функции, вызываемые из внутреннего кода Lua.

1

Отметьте «Coin-Cell-Powered Embedded Design» (доступно как a download, PDF, 7 МБ). Это бесплатный учебник для программирования своего микроконтроллера. Однако плата составляет 80 долларов.