Каким образом я могу подключить свою схему к компьютеру?

8

Я новичок в взломе электроники. Я хотел бы знать, как я могу заставить схему общаться с ПК. Возьмем, к примеру, простую схему, с одним светодиодом и выключателем. Однако переключатель в цепи не используется для управления светодиодом. Нажатие на нее сообщает о текущем состоянии светодиода. У меня на компьютере работает программа, в которой есть пользовательский интерфейс, кнопка и графический объект; черный заполненный круг.

  • Я должен иметь возможность включать и выключать светодиод на моем компьютере, нажимая кнопку на экране.
  • Нажатие переключателя на плате, должно сообщать программе о состоянии светодиода. Если светодиод включен, черный круг должен стать зеленым, в противном случае он должен стать черным.

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

  1. провод?
  2. беспроводной?

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

sauparna
источник

Ответы:

17

Есть довольно много разных способов, которыми вы могли бы достичь этого. Вот несколько из них:

  1. Вы можете запрограммировать небольшой микроконтроллер, такой как Microchip PIC16F84A, для наблюдения за кнопкой и светодиодом. При каждом нажатии кнопки PIC16F84A отправляет символ через последовательный чип FTDI в порт USB на вашем компьютере. На вашем компьютере программа, написанная в Processing, следит за USB-портом и обновляет изображения на экране. Общая стоимость: 20 долларов за чипсы и макет.

  2. Вы можете купить Bluetooth Arduino с прототипом щита. Arduino связывается через чип Bluetooth с картой Bluetooth на вашем ПК. Программа, написанная на Python, слушает карту Bluetooth и рисует соответствующую картинку на экране с помощью библиотеки Pygame . Общая стоимость: 150 долларов за Bluetooth Arduino.

  3. Вы можете подключить веб-камеру к вашему ПК, которая наблюдает за вашим светодиодом и кнопкой. Программа, написанная на Ruby , анализирует каждое изображение, полученное с веб-камеры, сравнивая его с предыдущим изображением. Когда он обнаруживает изменение в области изображения рядом с кнопкой, он смотрит на цвет пикселей в светодиодной области и обновляет значение в базе данных . Веб-страница автоматически обновляется с помощью плагина таймера jQuery и обновляет изображение на экране в соответствии со значением в базе данных. Общая стоимость: 25 долларов за паршивую веб-камеру.

  4. Вы можете найти старый ПК с параллельным портом и установить на него Ubuntu Linux . Вы подключаете светодиод и кнопку к контактам параллельного порта, а затем пишете программу на C, которая читает адрес 0x378. Основываясь на возвращенных данных, он выполняет вызовы в графическую библиотеку C, которая выполняет соответствующий рисунок экрана. Общая стоимость: бесплатно, если вы можете найти компьютер достаточно старый.

  5. Вы заменяете кнопку питания на компьютере соответствующей кнопкой, а индикатор питания - соответствующим светодиодом. Вы заменяете свой BIOS версией OpenBIOS , которая была изменена, чтобы отображать зеленый кружок на экране, и никогда не загружать какую-либо операционную систему. Общая стоимость: вероятно, стоимость нового ПК.

Но со всей серьезностью

Думаю, я бы порекомендовал Arduino и Processing . Они просты и отлично подходят для начинающих. Общая стоимость: 30 долларов за Arduino.

Удачи.

pingswept
источник
Вам не нужен специальный BIOS для чтения состояния кнопки питания. Вы должны быть в состоянии сделать это из Linux без какого-либо взлома ядра или чего-либо еще. Я уверен, что вы можете настроить то, что происходит при нажатии кнопки питания.
Давр
2
Я думаю, что Arduino и Processing должны быть лучшим способом начать.
Саупарна
7

Получите книгу Тома Айго «Разговор»: http://oreilly.com/catalog/9780596510510

Речь идет не о речи, а о различных методах создания разных устройств - например, вашего компьютера и вашей схемы - разговаривать друг с другом. В нем вы найдете мрачные подробности всех методов, которые люди описывают в других ответах здесь, в комплекте с принципиальными схемами и исходным кодом (при необходимости).

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

Уинделл Оскай
источник
6

Python + FT245

Отбросьте PyUSB модуль, и вдруг он занимает всего три строки (ну, четыре, если включить импорт) кода , чтобы получить Python говорить с meatspace через 8 параллельных линий ввода - вывода.

import d2xx
hardwareHandle = d2xx.open(0)
#Open the First FTDI device on the computer
hardwareHandle.setBitMode(0xff, 0x01)      
#Put the hardware in Async Bit-bang mode, set all pins as outputs

#Finally
hardwareHandle.write(data)
#And suddenly
#`data` shows up on the FT245 pins!

hardwareHandle.setBitMode(0x00, 0x01)
#set the IO lines to inputs (the first byte is the IO mask)
input = hardwareHandle.read()
#and input is equal to the value on the IO lines!

Это очень простой параллельный ввод-вывод на языке высокого уровня.

В качестве бонуса аппаратное обеспечение стоит в общей сложности $ 17,95

Коннор Вольф
источник
4

Взгляните на TI Chronos

TI делает это потрясающее семейство 16-битных микроконтроллеров на основе чипа MSP430. Одним из вариантов этого чипа является CC430, в который встроена беспроводная связь.

Chronos - это «доска развития», которую они продают за 49 баксов. Он выпускается в форм-факторе наручных часов (который я использую каждый день, это даже модно за пределами мира гиков :-)) Он также поставляется с двумя USB-ключами, один для JTAG (программист), а другой - беспроводной аналог.

Одним из примеров в devboard является беспроводное управление мышью с помощью часов, что довольно круто. Часы также оснащены акселерометром, барометрическим (высотным) датчиком и термометром.

Паду мерлоти
источник
Мой Chronos прибывает в пятницу! Если серьезно, то это всего лишь немного более сложная форма настройки PIC -> FTDI.
Кевин Вермеер
1

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

http://www.hexwax.com/Products/expandIO-USB/

Нечто подобное (никогда не использовавшееся, не связанное с компанией), вероятно, заставило бы вас начать работать очень быстро и с минимальными усилиями. Похоже, они доступны от Digikey и Mouser, а также, возможно, от других.

akohlsmith
источник
1

Предполагая, что ваш ПК имеет последовательный порт, вы можете просто использовать USART на чипе и приемопередатчик RS-232 для связи между чипом и ПК. Если у вашего ПК нет последовательного порта, вам следует приобрести USB <-> конвертер RS-232.

mjh2007
источник
1

Если вы заинтересованы в том, чтобы быстро его запустить и запустить, есть набор цифровых наборов ввода / вывода на основе USB, которые включают в себя библиотеки программирования для чтения / записи состояний выводов. В отличие от работы с Arduino или другими микроплатами, это означает, что вам нужно беспокоиться только о программировании ПК (вместо того, чтобы писать и отлаживать код, работающий на плате микроконтроллера).

Раньше было так, что проводка входов и выходов через джойстик ПК или параллельный порт была подходящим способом. Но это было во времена DOS и Windows вплоть до Windows 95. С тех пор прямой доступ к регистрам для доступа к оборудованию становился все труднее делать. Тем не менее, это все еще выполнимо - вам просто придется прыгать через программирование, чтобы добраться до этих выводов из вашей программы. Например, док-станция для ноутбука ThinkPad имеет параллельный порт в старом стиле, и он по-прежнему поддерживается операционной системой, если я решу подключить LaserJet II. :)

Toybuilder
источник
0

Ваш самый быстрый и простой способ сделать это - через Labview и связанные устройства ввода-вывода USB. Конечно, это не дешево (тысячи долларов). То, что вы описываете, не является начальным уровнем, определенно не уровнем «Hello World».

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

AngryEE
источник
О, мальчик, это не так просто, как я думал. Спасибо за эту перспективу.
sauparna
Существует набор LabVIEW Home Bundle (лицензированный для некоммерческого использования для любителей и производителей), который можно приобрести за 50 долларов. Это можно использовать с Arduino, Raspberry Pi или другими недорогими платами для создания ввода-вывода с компьютера или для создания встроенного программного обеспечения для работы на плате. Хотя, вероятно, излишне для этой конкретной проблемы по сравнению с другими ответами, стоимость является разумной, и инструменты должны быть способны к гораздо более сложному использованию.
mbmcavoy