Шаг 2: Исправление окончательной ошибки
Надеемся, что если вы попытаетесь загрузить эскиз, используя библиотеку IR, вы должны остаться с этой ошибкой.
c: / программные файлы (x86) / arduino / hardware / tools / avr / bin /../ lib / gcc / avr / 4.3.2 /../../../../ avr / lib / avr25 / crttn85.o :(. init9 + 0x2): перемещение усечено до соответствия: R_AVR_13_PCREL для символа `exit ‘, определенного в разделе .fini9 в c: / программных файлах (x86) / arduino / hardware / tools / avr / bin /../ Библиотека / GCC / АРН / 4.3.2 / avr25 libgcc.a (_exit.o)
Но не беспокойтесь, если вы не используете неправильное ядро, поэтому просто перейдите к шагу 4 (Устранение неполадок) и вернитесь к этому шагу.
Если у вас есть ошибка, описанная выше, вам нужно извлечь вторую загрузку из последнего шага (tinyPCRELpatch.zip), этот шаг довольно прост, просто скопируйте папку с аппаратным обеспечением в папку с аппаратным обеспечением, в которую вы установили arduino ide (ЭТО НЕ Куда мы поместим папку с ИК-библиотекой, это будет место в файлах вашей программы (x86) (или версия для вашей операционной системы и компьютера). Путь для меня:
C: Program Files (x86) Arduino hardware
после того, как вы скопируете его, он спросит вас, хотите ли вы заменить Id.exe (убедитесь, что это только Id.exe и ничего больше), выберите «заменить» и разрешите копировать (это не влияет на обычные функции, поэтому, как только вы его там не будете не нужно беспокоиться.
если вы используете ответ для чтения Mac № 4 в этой теме:
HTTP: //forum.arduino.cc/index.php PHPSESSID = 8t8a2l …
Что нужно знать дополнительно
Определение: скетч – это программа, которая зашивается в память ардуины.
Сам по себе язык wiring – это не язык программирования в привычном виде, это надстройка над языком C. Удобоваримость и простота кода достигнуты за счет написания множества библиотек для работы с периферией и задержками. Последние задаются в количестве миллисекунд или микросекунд – ранее это было не столь явно, а в ассемблере и вовсе приходилось считать количество тактов, за которые выполняется один машинный цикл микроконтроллера, а потом производить бесполезные вычисления для формирования простоя системы на заданное время.
Чтобы упростить этот процесс и был придуман простой для понимания язык и Arduino IDE – среда разработки. Однако многие любители не останавливаются на достигнутом и переходят на уровень языка C.
Дело в том, что стандартные команды обращения к портам, чтения и записи выполняются довольно долго средствами ардуино. Поэтому вы можете обращаться к ним напрямую, и ускорить работу платы в десятки раз, где это необходимо, да и ШИМ на ардуино работает на низких частотах, что не есть хорошим признаком, а на Си, повторюсь, всё в разы быстрее.
Плата Digispark с Arduino Attiny85
Совместимые платы могут как превосходить по характеристикам и размерам стандартные ардуино, так и быть меньше их, как было сказано выше. Отличным примером такой платы будет Digispark.
Характеристики платы довольно скромные, она поставляется с микроконтроллером, подготовленным для работы, arduino attiny85 – он представлен в восьминогом корпусе SOIC или более крупных размеров – DIP8. Характеристики весьма непритязательные:
- постоянной памяти – 8 Кб, для программного кода и 512 для исполняемого;
- так как доступно всего 8 выводов (ножек), вычтем две плюс и минус питания – получится 6 цифровых пинов, из которых 4 – это ADC и 2 PWM (ШИМ);
- доступно только аппаратное прерывание;
- контроллер работает на частотах от 1 до 20 МГц;
- в зависимости от конкретного чипа напряжения питания различны от 1.8 до 5.5 Вольт;
- в режиме энергосбережения потребляет мизерный ток в 0.1 мкА, при самом низком напряжении питания в 1.8 Вольт.
У оригинального digispark интересная конструкция, для его прошивки не нужно использовать micro USB кабель или USB-UART. Плата разведена таким образом, что, просто вставив ее в USB порт вашего компьютера, вы получите возможность программировать микроконтроллер.
Плата не только маленькая, но и очень простая – её сборка не займет много времени, и совершенно не составит труда для начинающих. Как собрать клон digispark своими руками мы расскажем немного позже.
Шаг 5: Установка и настройка библиотеки V-usb
Загрузите библиотеку с http: //code.google.com/archive/p/vusb-for-arduin …Разархивируйте файл и скопируйте папку library / UsbKeyboard в папку библиотек скетчей.
Теперь вам нужно отредактировать пару файлов для совместимости с ATtiny85 (он настроен для работы с arduino):
А) отредактируйте usbconfig.h:
под «Hardware Config» изменить:
#define USB_CFG_IOPORTNAME Dв## определить USB_CFG_IOPORTNAME B
а также
#define USB_CFG_DMINUS_BIT 4в#define USB_CFG_DMINUS_BIT 0
в разделе «Изменение конфигурации дополнительного оборудования»:
#define USB_CFG_PULLUP_IOPORTNAME Dв## определить USB_CFG_PULLUP_IOPORTNAME B
Чтобы создать полную спецификацию HID для загрузки (иначе мультимедийные ключи работать не будут), также измените:
#define USB_CFG_INTERFACE_SUBCLASS 0 // Загрузкав#define USB_CFG_INTERFACE_SUBCLASS 0x01 // Загрузка
а также
#define USB_CFG_INTERFACE_PROTOCOL 0 // Клавиатурав#define USB_CFG_INTERFACE_PROTOCOL 0x01 // Клавиатура
При желании вы также можете изменить производителя и имя устройства в следующих определениях:
#define USB_CFG_VENDOR_NAME
#define USB_CFG_DEVICE_NAME
Б) отредактируйте UsbKeyboard.h:
менять:
PORTD = 0; // TODO: только для USB-пинов?DDRD | = ~ USBMASK;
в
PORTB = 0; // TODO: только для USB-пинов?DDRB | = ~ USBMASK;
Чтобы разрешить изменение кодов клавиш больше 101, также:
0x25, 0x65, // LOGICAL_MAXIMUM (101)чтобы:0x25, 0xE7, // LOGICAL_MAXIMUM (231)
а также
0x29, 0x65, // USAGE_MAXIMUM (клавиатурное приложение)чтобы:0x29, 0xE7, // USAGE_MAXIMUM (приложение клавиатуры)
Вам может понадобиться отредактировать также эти 3 файла:
usbdrv.husbdrv.cUsbKeyboard.h
и каждый раз, когда вы видите, PROGMEM добавляет «const» перед именем типа переменной (например: PROGMEN char usbHidReportDescriptor 35 ==> PROGMEM const char usbHidReportDescriptor 35)
Если это не ясно, посетите http: //forum.arduino.cc/index.php? Topic = 391253.0 # …
Вы можете избежать всех этих изменений, если просто загрузите прилагаемую библиотеку (я сам все это сделал) и просто извлеките ее из папки библиотек скетчей:
UsbKeyboard настроен для attiny85
Редактировать: недавно я обнаружил, что Алехандро Лейва (http://github.com/gloob) позаботился об этой библиотеке и, кажется, работает хорошо. Вы также можете попробовать его версию с необходимыми изменениями, которые я сделал, чтобы она работала с attiny, поэтому, если вы хотите проверить это, просто извлеките ее из папки библиотек скетчей.
UsbKeyboard настроен для attiny85 (версия Alejandro Leiva)
Как прошить плату Digispark на базе микроконтроллера ATtiny 85. Обзор платы.
Ниже представлены 4 самых часто встречаемых варианта плат, всех их объединяет наличие AVR
микроконтроллера ATtiny 85 с 8 битным процессором способным работать на частоте от 1 до 20 МГц.
Ее характеристики как и цена довольно скромные – всего 8 Кб памяти для хранения программ, 512 байт
оперативной памяти, 512 байт энергонезависимой памяти, 6 — цифровых входов/выходов, 4 — аналоговых входа,
3 — ШИМ выхода, 1 — I2C, 1 — SPI.
Зато у этой малышки имеется USB интерфейс, благодаря которому она может работать как джойстик,
клавиатура или мышь.
Благодаря наличию I2C и SPI к плате можно подключать различные датчики сервомоторы и даже LED дисплей.
Если вы решили сделать устройство где понадобится несколько кнопок, то всего лишь на один из аналоговых
входов можно смело вешать десяток кнопок с резистивной развязкой.
Так же на плате имеется стабилизатор напряжения для подключения от внешних источников питания (контакт
VIN) от 6 до 16 вольт (разработчики утверждают что стабилизатор выдерживает до 35 вольт). Плата отличается
особой экономностью, может потреблять всего 0,1 мкА.
О возможностях среды разработки
Arduino IDE имеет встроенный набор плат и микроконтроллеров, с которыми можно работать; в её основе лежит классический программатор AVR, кстати, благодаря ему и можно обращаться к устройству командами на Си.
Однако не всегда удобно и рационально использовать предложенные микроконтроллеры. Согласитесь, что глупо брать плату с парой десятков выводов для работы с 1 датчиком и 1 исполнительным механизмом, в роли которого может быть:
- сервопривод;
- транзистор;
- светодиод;
- соленоид и т. д.
Поэтому сторонние разработчики создали целый ряд совместимых плат. Работать с ними можно через Arduino IDE, используя простые команды встроенного языка. Для этого были переписаны загрузчики и библиотеки команд.
Шаг 2. Начнем с оборудования
Инструменты, которые вам нужны:
- совместимая с Arduino плата
- Адаптер последовательного интерфейса к USB для декодирования ваших удаленных ключей (просто используйте FT232RL)
- ПК с установленной GNU / Linux и правильно настроенной IDE arduino, я использую IDE arduino 1.8.0
- ИК-пульт для тестирования вашего устройства (даже такой дрянной, как те, что есть в стартовых комплектах Arduino, будет работать)
- мультиметр для отладки вашей платы (надеюсь, она вам не понадобится, удачи!)
Список материалов:
- 1 attiny85
- 2 резистора 68R
- 1 1.5K резистор
- 1 4.7K резистор
- 1 кристалл 16 МГц
- 1 конденсатор 22 пФ
- 1 0,1 мкФ конденсатор
- 1 10 мкФ конденсатор
- 2 стабилитрона 3,6 В 0,5 Вт
- 1 штекер USB типа A
- 1 штрипс с 6 контактами для программирования и отладки платы.
- 1 ИК-датчик TSOP31238
- много кофе, чтобы вы не спали
Перед пайкой окончательной платы вы, вероятно, захотите сделать макет макета для целей тестирования, следуя схеме, прилагаемой к этой инструкции, должно быть достаточно для ее сборки.
Для подключения attiny85 к ПК в окончательном варианте используется разъем USB типа A, который впаян в плату, но для прототипа вам потребуется кабель USB, который можно подключить к макету:
Припой в небольшой кусок 4 штырька для картона, затем обрежьте старый USB-кабель и припаяйте штырьки к 4 проводам внутри USB-кабеля:
- красный VCC (5 В)
- черный — земля
- белый D-
- зеленый это D +
Держите все вместе с горячим клеем.
Теперь нам нужно подключить программатор ISP (Arduino), адаптер USB-последовательный порт (FT232RL) и ИК-датчик к attiny85.
Вы можете оставить все подключенным, чтобы иметь возможность записывать различные загрузчики, загружать эскизы и проверять последовательный порт, не меняя провода,
Для этого подключите все, следуя этим инструкциям:
Интернет-программист (Arduino):это позволяет нам записывать загрузчики и загружать эскизы
- attiny85 PB0 (pin5) для pin11 (MOSI) в Arduino
- attiny85 PB1 (pin6) для pin12 (MISO) в Arduino
- attiny85 PB2 (контакт 7) для контакт 13 (SCK) в Arduino
- attiny85 RESET (pin1) с подтягиванием (4.6k к VCC) к pin10 в Arduino
- attiny85 VCC до 5 В в Arduino
- attiny85 GND для GND в Arduino
переходник с USB на последовательный порт (FT232RL):это позволяет нам проверить последовательный порт
- attiny85 PB0 (pin5 -> RX) для передачи в FT232RL
- attiny85 PB2 (pin7 -> TX) для RX в FT232RL
- attiny85 GND (pin4) для GND на FT232RL
- так как attiny85 уже питается от Arduino, вам не нужно подключать 5 В на FT232RL, в противном случае подключите: attiny85 VCC (pin8) к 5 В на FT232RL
переходник с USB на последовательный порт (FT232RL) только для калибровки часов(только для загрузчика «ATtiny85 @ 8MHz (внутренний генератор; BOD отключен)»)
- PB4 (pin3 -> RX) к TX в attiny85 FT232RL
- PB3 (pin2 -> TX) к RX в attiny85 FT232RL
- GND (pin4) в GND на FT232RL
- так как attiny85 уже питается от Arduino, вам не нужно подключать 5 В на FT232RL, в противном случае подключите: attiny85 VCC (pin8) к 5 В на FT232RL
Если вы используете Crysta 16 МГцl, подключите его к контактам Attiny85 PB3 (контакт 2) и PB4 (контакт 3) и подключите каждый контакт к GND, а также через крышку 22 пФ каждый.
Фильтр Attiny85 VCC с конденсаторами 0,1 мкФ и 10 мкФ, соединяющими их параллельно с заземлением
Подключите ИК-датчик выходной контакт на PBT1 attiny85 (контакт 6), включите его.
Создайте и подключите интерфейс USB:
- GND (черный провод): подключите его к общему GND (все заземления соединены вместе)
- D- (белый провод) подключен к attiny85 PB0 (контакт 5) через резистор 68R, подключите его также к заземлению через стабилитрон 3,6 В 0,5 Вт и протяните его до VCC с резистором 1,5 К
- D + (зеленый провод) подключен к PB2 через резистор 68R, подключите его к земле через стабилитрон 3,6 В 0,5 Вт
- 5V, вы можете оставить его неподключенным, так как на этом этапе все запитывается от Arduino, в противном случае подключите его к VTC attiny85
Стабилитроны подключены таким образом, что аноды связаны с заземлением, а катоды подключены к линиям передачи данных D + и D-.
Энергопотребление
Пришло время измерить энергопотребление получившегося устройства. Вводные следующие: данные передается каждые 120sec, если пришло прерывание от датчика освещения, то немедленно; событиями от датчика освещения можно пренебречь; ёмкость батареи 200mAh.
Частота | 1MHz | 8MHz |
---|---|---|
Радиомодуль (потребление) | 15.7mA | 18.3mA |
Микроконтроллер (потребление) | 1.1mA | 4.3mA |
Режим сна (потребление) | 7μA | 7μA |
Радиомодуль (активен за цикл) | 51ms | 16ms |
Микроконтроллер (активен за цикл) | 15ms | 4ms |
Оценка времени работы (дней) | 513 | 739 |
Как видно, тут было ради чего бороться. К сожалению, стабильности на 8MHz добиться не удалось. Видимо без внешнего осциллятора, это не реально.
Макетная плата
Готовую схему необходимо развести на плате. Это также можно сделать в KiCad. Для этого сначала требуется завершить работу со схемой:
- Промаркировать элементы на схеме , все настройки можно оставить по умолчанию.
- Сопоставить элементы схемы с посадочными местами на плате . Появится следующее окно:
Здесь для наглядности следует включить просмотр выбранного элемента .
Поскольку предстоит работать с макетной платой необходимо следить, чтобы все посадочные места укладывались в сетку 1/10″ (2.54mm). Если требуемый элемент найти не удаётся, проще назначить похожий, затем, в редакторе печатной платы, изменить его (Ctrl+E) и записать в свою библиотеку.
Как только все посадочные места будут назначены нужно сохранить результат и вернуться в редактор схемы. - Сгенерировать netlist , настройки по умолчанию вполне приемлемы.
Редактор схемы можно закрыть и перейти к редактору печатной платы . Здесь нажать , затем загрузить ранее созданный netlist (Read Current Netlist), убедиться, что не было ошибок и закрыть окно. Если схема была изменена или элементам были назначены другие посадочные места, необходимо обновить netlist и загрузить его здесь снова.
При первой загрузке netlist все посадочные места окажутся стопкой в одной куче. Сначала необходимо переключить сетку на 1/10″ (2.54mm), растащить элементы (используя кнопку m), убрать лишние надписи Visibles → Render → Values и, пользуясь подсказками редактора, соединить элементы дорожками.
Результат будет выглядеть примерно так:
Оставшиеся белые линии, указывают какие посадочные места необходимо соединить проводами. К сожалению в KiCad нет способа вывести результат, так чтобы его было удобно воспроизвести на макетной плате. Но в данном случае макетная плата получилась не большой, и с ней можно поступить просто: отключить лишние надписи Visibles → Render → Footprints Front, снять скриншот и зеркально отразить его по вертикали.
Готовый макет:
Тут два несоответствия со схемой выше: не распаяны подстроечные элементы R1,C3 и диод короче на одно отверстие.
Плата немного побита жёсткой отладкой, но на то она и макетная. Большинство других вариантов, после всех модификаций, выглядело бы хуже.
Шаг 1: Некоторые соображения
- У меня нет программиста AVR ISP, и я не очень хочу его покупать, поэтому я использовал Arduino для программирования attiny85
- Меня не волнует какая-либо другая ОС, кроме GNU / Linux, поэтому я не знаю, будет ли это работать иначе.
- Есть и другие ИК-библиотеки, но я не смог заставить их работать даже с Arduino. Учтите, что я начал с ограниченного знания о библиотеках IR. Возможно, я мог бы заставить их работать сейчас, после того, как приобрел опыт работы с большим количеством вопросов. Во всяком случае, я был потерян и в отчаянии, прежде чем нашел библиотеку, предоставленную Seejaydee, и я использовал это с тех пор (большое спасибо человек!).
- Существуют и другие аппаратные конфигурации, но я использовал только ту, которая использует 5 В для питания attiny85 и два 3,6 В 0,5 Вт стабилитрона для ограничения напряжения линий передачи данных, это работает из коробки, поэтому я не связывался с другие конфигурации.
- Вы можете использовать кристалл 16 МГц или библиотеку tinytuner для калибровки внутренних часов вашего attiny85. Я настоятельно рекомендую использовать кристалл, он намного более стабилен и, вероятно, избавит вас от головной боли.
- Я использую здесь два разных загрузчика для attiny85:
а) версия программного обеспечения Rowdy DogОн имеет встроенный последовательный интерфейс, который очень крутой и очень маленький, поэтому у вас есть больше места для вашей программы и других библиотек. Проблема в том, что по некоторым причинам, хотя он работает довольно хорошо, через некоторое время USB-устройство было отключено (вы можете найти проблемы с командой dmesg).Я не знаю, является ли это проблемой ядра или смешанной комбинации ядра плюс выбранных библиотек, поэтому через некоторое время я решил использовать это ядро просто для декодирования удаленных клавиш и калибровки часов (когда не используется 16 МГц кристалл). После этого я просто записываю загрузчик Mellis и загружаю окончательный эскиз, который не использует последовательный интерфейс.
б) версия Меллисастабильный загрузчик, я использовал это во многих проектах. Я бы использовал этот загрузчик всегда, если бы он включал последовательный интерфейс. Я использую это ядро в окончательном наброске после расшифровки всех ключей на пульте.
Шаг 1: Получение файлов
Основными проблемами, с которыми вы можете столкнуться при попытке использовать IR-библиотеку с Attiny, являются ошибки, подобные этой:
C: Program Files (x86) Arduino library IRremote IRremote.cpp: 229: ошибка: «TCCR2B» не был объявлен в этой области
все это связано с таймерами Attiny, отличными от чипа Atmega, но нам не нужно беспокоиться об этом, если вы не хотите изменить код библиотеки (ЭТО НЕКОТОРЫЕ ЖЕСТКИЕ ПЕРСОНАЛЫ, НЕ ИЗМЕНИТЬ КОД), но есть некоторые библиотеки или та же библиотека, просто портированные на Attiny, поэтому коды, которые мы пишем, такие же, как и для arduino. Вы можете скачать zip-файл здесь:
http://gammon.com.au/Arduino/IRremote_Attiny.zip
Просто извлеките файлы и поместите файл IRremote в папку библиотек в папке arduino, путь должен выглядеть следующим образом
C: Users (ваш пользователь) Documents Arduino библиотеки
Вам также нужно скачать это для следующего шага:
HTTP: //forum.arduino.cc/index.php PHPSESSID = f55lj4 …
Datasheet Download — ATMEL Corporation
Номер произв | ATtiny85 | ||
Описание | Atmel 8-bit AVR Microcontroller | ||
Производители | ATMEL Corporation | ||
логотип | |||
1Page
Atmel 8-bit AVR Microcontroller with 2/4/8K • High Performance, Low Power AVR8-Bit Microcontroller • Advanced RISC Architecture – 120 Powerful Instructions – Most Single Clock Cycle Execution • Non-volatile Program and Data Memories – 2/4/8K Bytes of In-System Programmable Program Memory Flash • Peripheral Features – 8-bit Timer/Counter with Prescaler and Two PWM Channels • Special Microcontroller Features – debugWIRE On-chip Debug System • I/O and Packages – Six Programmable I/O Lines • Operating Voltage – 1.8 — 5.5V for ATtiny25V/45V/85V • Speed Grade – ATtiny25V/45V/85V: 0 – 4 MHz @ 1.8 — 5.5V, 0 — 10 MHz @ 2.7 — 5.5V • Industrial Temperature Range • Low Power Consumption – Active Mode:
1. Pin Configurations Figure 1-1. Pinout ATtiny25/45/85 PDIP/SOIC/TSSOP
Port B also serves the functions of various special features of the ATtiny25/45/85 as listed in “Alternate Functions of Port B” on page 60. is not running and provided the reset pin has not been disabled. The minimum pulse length is given in Table 21-4 on page 165. Shorter pulses are not guaranteed to generate a reset. The reset pin can also be used as a (weak) I/O pin. |
|||
Всего страниц | 30 Pages | ||
Скачать PDF |
Шаг 3: Окончательный дизайн
Для окончательного дизайна вы могли бы использовать картон со сквозными компонентами или вытравить свою собственную доску и использовать компоненты SMD. Чтобы узнать, как вытравить доску, просто гуглите ее, есть удивительные учебники, доступные онлайн.
Я выбрал свою собственную доску, и я очень доволен конечными результатами (маленькая, стабильная и надежная доска).Да, я знаю, что порез — отстой, но я не мог использовать электроинструмент так поздно ночью, и я просто порезал доску ножницами.
Кстати, следы на изображениях — не голая медь, они обработаны неприятным химическим веществом, которое слегка связывает медь (предполагается, что он вызывает рак, поэтому используйте его с большой осторожностью, латексные шарики и пылезащитную маску):http://www.ebay.com/itm/1-pz-A2207-Preparato-chimico-agente-di-stagnatura-90g-TELSTORE/152106663870
Используйте схемы выше для разработки вашего макета или вы можете просто использовать мою печатную плату, чтобы вытравить вашу доску.
Программное обеспечение
- Работа с радиомодулем NRF24L01+;
- Измерение напряжения питания средствами микроконтроллера;
- Перевод микроконтроллера в режим сна;
- Пробуждение по таймеру WDT (WatchDog Timer);
- Пробуждение по Pin Change прерыванию PCINT;
- Работа с аналоговыми и цифровыми портами.
- TMRh20/RF24
- TMRh20/RF24Network
GitHubattwlight_sensorattwlight_rx
Измерение температуры
- avrdude — команда из пакета Arduino IDE находящаяся в папке hardware/tools/avr/bin/;
- /dev/ttyUSB0 — устройство программатора;
- /etc/avrdude.conf — ссылка на файл находящийся в директории с Arduino IDE по адресу hardware/tools/avr/etc/avrdude.conf.
Engbedded Atmel AVR Fuse Calculator
Шаг 11: Загрузка финального эскиза и надежда на лучшее!
Теперь у нас декодированы все кнопки пульта, файл UsbKeyboard.h заполнен нашими кодами клавиш, поэтому теперь мы можем загрузить в IDE arduino окончательный эскиз из:
Http: //github.com/venumz/ATtiny85-USB-IR-receiver …
Этот файл является точным файлом, который я использую для своего ресивера, и он работает для 2 разных пультов, поэтому вам, очевидно, потребуется обновить его для работы с вашими пультами.
Если вы не используете кристалл, раскомментируйте строку, содержащую переменную OSCCAL, и присвойте ей значение, которое вы нашли при калибровке часов.
Обратите внимание, что в функции цикла есть много операторов вроде этого:
if (results.value == 3405 || results.value == 1357) {// стрелка вверх
если (lastStroke! = results.value) UsbKeyboard.sendKeyStroke (KEY_ARROW_UP);
}
Вы должны создать свои собственные заявления, по одному на кнопку на вашем пульте. В условии «if» вы должны поместить в results.value значения, которые вы нашли, декодируя ваш пульт, и в качестве аргумента метода UsbKeyboard.sendKeyStroke вы должны поместить один из уже определенных кодов клавиш в файл UsbKeyboard.h.
Состояние » если (lastStroke! = results.value) «необходим, потому что некоторые пульты отправляют один и тот же код дважды за удар, и это предотвращает второй удар. Я не совсем уверен, и это может зависеть от протокола IR, который запрограммирован в вашем пульте (я не очень разбираюсь в ИК-протоколы), но, согласно моему опыту с моими пультами дистанционного управления, каждая кнопка может генерировать 2 разных кода, и, пока вы нажимаете и удерживаете кнопку, она отправляет один и тот же код, но если вы нажмете кнопку еще раз, она отправит другой. Кажется, что коды отправляются альтернативным способом, я думаю, это стандартный режим, чтобы узнать, сколько раз вы действительно нажали кнопку.
Хорошо, мы почти закончили, просто загрузите окончательный эскиз, подключите его к ПК и посмотрите, как он работает.
Для этого шага лучше, если вы отключите и Arduino, и адаптер USB-последовательный порт, и только затем подключите USB к порту ПК (на случай, если что-то пойдет не так, ваша схема будет проще отлаживать).
Если все работает нормально, когда вы открываете терминал и отправляете команду dmesg, вы должны увидеть нечто похожее на первое изображение на этом шаге. Если были проблемы, у вас должны быть ошибки, подобные тем, которые обнаружены на втором изображении, и вы должны начать отладку своей схемы и / или программного обеспечения. Одним из источников первоначальных ошибок, которые у меня были, был USB-концентратор, который не работал с моим ИК-приемником (хотя другие работали) … так что для этого последнего шага лучше подключить ИК-приемник непосредственно к порту ПК. Возможные ошибки может быть трудно найти, но в конце концов, как и я, вы многому научитесь, и цена, которую стоит заплатить, уверяет вас.
Вот и все, дайте мне знать, если вы заметили какие-либо ошибки в этой инструкции и наслаждайтесь вашим новым ИК-приемником USB!
Как прошить Digispark ATtiny 85.
Зальем в плату тестовый скетч, с помощью которого плата будет мигать встроенным светодиодом.
Для этого понадобятся:
1. Приложение Arduino IDE
2. Ссылка для менеджера плат
3. Добавить платы Digispark в приложение Arduino IDE
4. Установить драйверы для Digispark ATtiny 85.
Ознакомиться с приложение Arduino IDE http://kolotushkin.com
Запустите приложение Arduino IDE, зайдите во вкладку Файл/Настройки и в Дополнительные ссылки для
Менеджера плат: добавьте эту ссылку
И нажмите «ОК»
Затем откройте вкладку Инструменты /Выбор платы /Менеджер плат
В открывшемся списке выбираем пункт “Digistump AVR Boards” и нажмите “Установить”.
Чтобы быстрее найти, впишите в окно поиска слово “Digistump” или просто “digi”.
Осталось скачать и установить драйверы.
Откройте архив Digistump.Drivers.zip и извлеките из него папку с драйверами Digistump Drivers. Это можно сделать простым перетаскиванием папки Digistump Drivers из архива в удобную для вас папку.
Затем подключите плату Digispark к компьютеру. Откройте Пуск/Панель управления/Диспетчер устройств. Найдите в списке устройство помеченное желтым треугольником (у вас может отобразиться как «Неизвестное устройство»), кликните на него правой кнопкой мышки и в открывшемся окне кликните обновить драйверы.
Затем выберите пункт «Выполнить поиск драйверов на этом компьютере»
Укажите путь к той папке, которую вы извлекли из архива. Нажмите кнопку далее. После обновления нажмите закрыть.
Если теперь устройство определено как Digispark Bootoalder без желтой отметки, значит все готово!
Теперь откройте скетч Blink, который находится во вкладке “Файл/Примеры/Basics/Blink”.
Так как скетч расcчитан для платы Arduino на которой светодиод подключен к 13 пину, то необходимо
заменить значение “13” на “1” потому как на плате Digispark светодиод подключен к 1 пину!
Затем в менеджере плат выберите плату Digispark (Default — 16,5mhz)
Нажимаете “Загрузить”. После чего произойдет компиляция и снизу появится сообщение (will timeout in 60
seconds), и вот только тогда в течении 60 секунд нужно подключить плату к USB порту для загрузки скетча!
Скетч загрузится, и на плате будет мигать светодиод.
Видео версия обзора платы Digispark ATTiny85. «Как прошить Digispark ATTiny85. Обзор платы Digispark ATTiny85»