Где я могу начать с программируемого оборудования? - PullRequest
19 голосов
/ 25 августа 2010

У меня уже давно было желание узнать хоть немного об аппаратном обеспечении для программирования, и я подумал, что попрошу здесь получить некоторые отправные точки.Я достаточно опытный программист с опытом работы с Delphi и Objective-c, но я никогда даже не слушал порт / прерывание устройства (я даже не знаю терминологию), не говоря уже о программировании аппаратного обеспечения.

Для начала с чегоЯ хотел бы иметь возможность,

  • Купить простой набор с 2,3 или 10 кнопками
  • Подключите устройство к моему компьютеру через USB
  • Прослушайте устройство и напишите какой-нибудь код, чтобы сделать что-то после нажатия кнопки.

Я считаю, что это хорошее место для начала, у кого-нибудь есть указатели на покупку аппаратного обеспечения или как я мог начатьэто? * * 1013

Ответы [ 9 ]

20 голосов
/ 25 августа 2010

Мне нравится Arduino , простой в использовании, с открытым исходным кодом и отличное сообщество!

Хорошо для начала, и использует подмножество C / C ++.

Кроме того, доступно множество дополнительных устройств, таких как GPS, Bluetooth, Wi-Fi и т. Д.

Мой опыт работы с Arduino был не чем иным, как хорошим, с того момента, как вы достали его из коробки (и установили бесплатный компилятор).в Windows / Mac / Linux), чтобы создать свой первый «эскиз» (проект или приложение для Arduino).

Создание приложения легко, у вас есть метод Setup, который вызывается позапуск, а затем метод loop, который зацикливается во время работы Arduino.

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

Еще одна действительно хорошая вещь об Arduino (и других, я уверен) в том, что теперь у вас есть возможность использовать эти старые сломанные принтеры или 2x CD-Rom, которые никто не хочет, и любой другой немногоустаревшей технологии.Удивительно, что вы можете найти в серверной комнате!

Теперь я работал только над небольшими проектами, такими как подключение ЖК-дисплея, чтение температуры в комнате и различных подобных проектов.Но, основываясь на том, что я сделал, я доволен Ardunio, он дает хорошую основу для встроенного программирования, и если этого недостаточно, вы всегда можете пойти дальше!

Мои 2 цента!

3 голосов
/ 01 сентября 2010

Существует также горячая печать netduino , которая использует .NET Micro Framework и Microsoft Visual C # Express. Я не знаю, что это лучше, чем Arduino, но это еще один вариант.

2 голосов
/ 03 сентября 2010

Предыдущий плакат упоминал Arduino, но вы также должны рассмотреть Teensy .Это в основном то же самое, но цена немного лучше.У вас также есть возможность использовать его в режиме «Arduino» или в режиме сырого AVR.Я не знаю, дают ли Arduinos вам оба варианта.

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

2 голосов
/ 01 сентября 2010

Почему бы вам не начать программирование AVR для микропроцессоров. Да, это может быть слишком низкий уровень. но я знаю многих людей, которые начали с него для аппаратного программирования. Вы можете найти компилятор здесь. http://winavr.sourceforge.net/ и хороший учебник здесь: http://www.ladyada.net/learn/avr/

1 голос
/ 07 сентября 2010

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

  1. Получи себе копию "Искусство Электроника ". Это относительно легко читаемое и охватывает все между законом Ома и микропроцессором и даст вам хорошее представление о том, что делает вся система.
  2. Прочтите это.
  3. Проверьте Digikey. Вы можете купить любое оборудование, связанное с резисторами, конденсаторами, микросхемами, недорогими платами, легко онлайн и по доступным ценам.

В других ответах упоминаются Microchip PIC и Atmel AVR, которые представляют собой небольшие и простые микроконтроллеры. Обе компании имеют множество примечаний к приложениям, проверьте их веб-сайт, прочитайте некоторые примечания к приложениям. Вы можете получить недорогие платы для оценки выше или что-то вроде Arduino, упомянутого в других ответах. Подумайте о том, чтобы спроектировать и построить свою собственную доску, чтобы заставить себя изучать основы. Найдите друга, который является EE или серьезным любителем, который не против помочь вам с некоторыми советами.

Если вы хотите узнать больше об аппаратном обеспечении ПК, вы можете взглянуть на некоторые простые драйверы устройств (например, принтер или последовательный порт) под Windows (скачать WinDDK), Linux или даже DOS. Программирование под DOS на ПК позволяет относительно легко взаимодействовать с оборудованием ПК, вы можете использовать порт принтера для чтения кнопок и т. Д.

Ссылки (я новый пользователь, поэтому не могу напрямую ссылаться):

www.amazon.com / Art-Электроникс-Поль-Horowitz / дп / 0521370957

www.digikey.com /

* * Www.microchip.com тысячу двадцать-два / Stellent / idcplg? IdcService = SS_GET_PAGE & NodeId = 2879

www.atmel.com / продукция / АРН /

1 голос
/ 07 сентября 2010

Как уже упоминалось, Arduino - хороший выбор. Сообщество большое и полезное. Приятно то, что вы можете перейти прямо на «настоящий» язык, используя порт GCC для AVR micros, если хотите. В моем последнем проекте я сделал это - прототип большей части с помощью Arduino, затем переписал его на C.

Отличная идея - начать с кнопок и светодиодов. Прежде чем приступить к модификации Wii, наберитесь уверенности в работе с базовым оборудованием!

Некоторые ссылки:

  • Кросс-компилятор Windows GCC (установка в 1 шаг) для AVR: WinAVR
  • Комплект клонов Arduino
  • Adafruit - еще один хороший источник аппаратного и технического совета для стартера
  • Встроенный StackOverflow
1 голос
/ 06 сентября 2010

Я вижу, что вам нравится Delphi, поэтому вы можете взглянуть на AvrCo Multitasking Pascal для AVR. Вы можете попробовать это в http://www.e -lab.de . MEGA8 / 88 версия бесплатна. Существует множество драйверов, симулятора, онлайн-отладчика JTAG и программиста с визуализацией всех стандартных устройств (для стартапа вы можете создать простой программист LPT с помощью всего нескольких резисторов). Он также может создавать программы для всех устройств Arduino, поскольку AVR находится в их сердце. Atmel STK500 - хорошая плата для начинающих, со светодиодами, переключателями и несколькими другими периферийными устройствами. Если вы предпочитаете открытый исходный код, тогда WinAVR с GCC может быть вашим путем.

1 голос
/ 06 сентября 2010

Если я правильно понимаю ваш вопрос, вы не заинтересованы во встроенном программировании.Вы хотите купить что-то, что работает с самого начала, и управлять им из Windows.

Когда дело доходит до кнопок, в Windows мало что можно сделать.Это скрытые элементы управления, а Windows обрабатывает все интерфейсы для вас.Ничего особенного.

В этом случае вы можете взять любой джойстик и использовать DirectInput (часть технологии DirectX) для взаимодействия с ним.С помощью обратной связи вы можете делать некоторые интересные вещи.

Более интересным проектом было бы купить элемент управления Wii и написать несколько забавных приложений.Посмотрите на этот сайт, чтобы получить некоторые идеи о том, что я имею в виду:

http://johnnylee.net/projects/wii/

Поскольку Windows не поддерживает контроллер Wii, вы действительно можете поработать здесь:)

1 голос
/ 01 сентября 2010

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

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

...