Какой самый простой и дешевый способ взаимодействия с USB?

17

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

Шон
источник
4
Посмотрите на мою область с одним чипом USB здесь , это трудно сделать с меньшим количеством частей 1 ATTiny45 и парой стабилитронов, 2 канала HID
Очень классный проект!
Исполнители кода

Ответы:

10

Самый простой? Хватай Arduino и напиши пару строчек Python. Arduino невероятно просты в программировании, не требуют дополнительного оборудования для работы и довольно популярны . Python имеет очень простую последовательную библиотеку и очень прост в написании.

Пример кода

Python: запустить этот скрипт как сервис. Я использую Ubuntu, поэтому в этом скрипте появится всплывающее уведомление о нажатии кнопки на Arduino.

#! /usr/bin/python

import serial
import pynotify

ser = serial.Serial('/dev/ttyUSB0', 9600)
while True:
  x = ser.read()
  if x == 'b':
    # Show notification
    n = pynotify.Notification("Arduino", "The button was pressed.")
    n.show()

Arduino:

void setup(){
  // Assuming button is active low and on pin 4
  pinMode(4, INPUT);
  Serial.begin(9600);
}

void loop(){
  if(digitalRead(4) == LOW){
    Serial.print('b');
  }
}

 

Ник Паскуччи
источник
Можете ли вы предоставить более подробную информацию об использовании Pyserial для взаимодействия с Arduino? Пример кода или ссылки приветствуются.
LeanerRocky
1
Конечно вещь. Посмотрите на пример.
Ник Паскуччи
Я действительно ценю пример. Вы легенда!
LeanerRocky
Хотя не будет дешевле.
quick_now
это не "интерфейс с USB", а только серийный ftdi.
nonchip
8

Создайте устройство класса USB Human Interface Device Class. Это тот же класс, которым пользуются клавиатуры, мыши, джойстики, игровые планшеты и тому подобное. Ваш ПК уже имеет полную поддержку драйверов устройств для устройств HID, поэтому доступ к программному обеспечению прост. Множество указателей и даже пример кода можно найти на странице HID Яна Аксельсона . Просмотрите ее сайт, чтобы получить много полезной информации о разработке USB-устройств.

Многие из небольших семейств микропроцессоров могут выполнять HID. Я даже видел это на USB Low Speed ​​с 8-контактным AVR ATtiny полностью в программном обеспечении.

Выберите предпочитаемый вами чип, затем найдите его «обычные ресурсы» для поиска образцов HID.

Другой подход заключается в создании устройства последовательной связи. Существует несколько одночиповых решений от FTDI . FT232R является популярным выбором. Требуются драйверы, но сертифицированные драйверы Windows известны мастеру «Обнаружено новое оборудование», поэтому установка не сложна. После установки у вас есть устройство, которое выглядит как COM-порт. Доступны альтернативные драйверы, которые позволят вам получить доступ к его выводам GPIO и использовать его в более сложных режимах.

Обновление, 2015 год: здесь была ссылка на http://www.lvr.com/hidpage.htm , на которой, по-видимому, гнила ссылка, и новое местоположение было обнаружено благодаря El Marce . Jan's Lakeview Research по-прежнему является отличным источником информации о практическом использовании USB.

RBerteig
источник
Ссылка Яна Аксельсона не работает. Я нашел это ( janaxelson.com/hidpage.htm ) с помощью поиска в Google: «страница спрятана Джаном Аксельсоном». Было бы так любезно проверить, является ли это правильным? Благодарность!
Эль Марс
Благодарю. Это ее сайт сейчас. Я предполагаю, что Lakeview Research либо утратило, либо выпустило свое старое доменное имя, и его подхватил кто-то новый.
RBerteig
1
Если вы решите пойти по маршруту FTDI, убедитесь, что у вас есть кабель с оригинальной деталью FTDI. FTDI (китайская компания) устала от подделки своих чипов, поэтому они научили своих водителей распознавать свои собственные чипы. Это вызвало много проблем у людей, которые купили двусторонние радиоприемники с кабелями для программирования, которые были построены с поддельными чипами, потому что производитель радиостанции купил поддельные чипы (надеюсь, по ошибке!).
Джон Р. Стром
1
FTDI - английская компания (ну, на самом деле, шотландская), базирующаяся в Глазго.
quick_now
@RBerteig ссылка работает?
Быстрая Улитка
6

Вот очень подробное сообщение в блоге http://msdn.microsoft.com/en-us/devlabs/dd491992 с программным обеспечением для использования PIC18F4550 стоимостью менее 5 долларов США для интерфейса через USB в качестве стандартного устройства HID. Прилагаемое программное обеспечение можно использовать для взаимодействия с любым устройством HID, поэтому, если вам нужен альтернативный чип, программное обеспечение все равно будет работать.

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

JonnyBoats
источник
3

Вот мой простой проект с использованием PIC18F2455, основанный на программном обеспечении USB Брэда Минча. Печатные платы доступны от Olimex.

Леон Хеллер
источник
2

Если вы не возражаете против микроконтроллера на базе Cortex-M3, взгляните на LPC1343 от NXP . В Digikey всего 6,3 доллара (1 штука). Есть одна очень крутая функция - прошивка для хранения и HID устройства в ПЗУ чипа!

По сравнению с решением с чипом FTDI + микроконтроллер, на один чип меньше :)

Исполнители кода
источник