Tkinter + Led. Как включить светодиод нажатием на кнопку виджета?

Реализовать следующую задачу для любого ноутбука или стат.компьютера:

  1. Посредством библиотеки Tkinter создать виджет с одной кнопкой
  2. Связать событие кнопки с передачей единицы по USB
  3. Зажечь светодиод

Что уже есть

  1. Понимание работы библиотеки Tkinter
  2. Знания в работе с микроконтроллерами stm32 (не понятно, надо ли вообще)

К сожалению, есть полное непонимание того, как связать нажатие кнопки с загоранием светодиода на любом компьютере. Что здесь нужно сделать? Порт какой-то задействовать? Свисток на USB спаять? Это какойто-конвертер?

Данная задача реализована, но с использованием Raspberry Pi. Малинка заточена для работы с такими игрушками. В ней уже реализовано готовое ПО. Это всё не то.

Как этот трюк повторить на обычном железе? Какова последовательность действий?

Подскажите советом, спасибо!


Ответы (1 шт):

Автор решения: gbg

Самое простое - это использовать относительно готовое железо, например - конвертеры USB-Serial FT232 и CP210X.

По крайней мере, вам не придется писать прошивку и использовать библиотеки, так как эти железяки управляются стандартным API операционной системы.

У порта RS232, который реализуют через USB данные микросхемы, помимо основных линий передачи данных TX/RX есть вспомогательные, в частности, линия RTS.

FT232 Для управления этой линией, имеется функция WinApi

BOOL EscapeCommFunction(
  HANDLE hFile,
  DWORD  dwFunc
);

Включить линию: EscapeCommFunction(hComm, SETRTS);

Выключить линию: EscapeCommFunction(hComm, CLRRTS);

Пример исходника

→ Ссылка