ИК-пульт
Что нужно для того, чтобы научить робота слушаться инфракрасного (ИК) пульта? Во-первых, нам потребуется сам пульт. Можно использовать обычный пульт от телевизора, а можно приобрести миниатюрный пульт от автомагнитолы. Именно такие пульты часто используются для управления роботами.
На таком пульте есть 10 цифровых кнопок и 11 кнопок для манипуляции с музыкой: громкость, перемотка, play, stop, и т.д. Для наших целей более чем достаточно.
Список кодов настройки RTV-02 и R-TV2
AIWA 814, 827, 884 AKAI 886, 157, 885, 809, 176, 053, 782, 787, 795, 840, 845, 849, 850, 854, 863, 865, 887, 888, 889, 059, 006, 890, 891, 073, 883 AKIRA 886, 786, 746, 447, 704, 053, 384, 537, 539, 519, 440, 807, 892, 893, 894, 044 AVEST 176, 807 BBK 134 BEKO 895, 896, 897, 040, 374 BENQ 841, 846 CHANGHONG 028, 130, 131, 136, 139, 141, 146, 151, 156, 161, 166, 171, 176, 181, 186, 196, 201, 285, 315, 323, 331, 340, 341, 346, 351, 361, 365, 366, 371, 376, 381, 386, 390, 396, 401, 406, 411, 415, 416, 421, 431, 432, 436, 440, 441, 446, 451, 456, 457, 461, 466, 474, 476, 481, 482, 486, 491, 498, 502, 658, 663, 668, 679, 683, 688, 729, 745, 781, 786, 791, 852, 858 CONROWA 063, 068, 178, 353, 468, 473, 514, 537, 542, 547, 552, 562, 740 CYBEX 752 DAEWOO 808, 813, 819 DRE 855, 927, 924 ELENBERG 248, 258, 265, 807 ERISSON 898, 746, 807, 764, 157, 440, 148, 814, 033 FUNAI 412, 899, 900, 248, 807 GENERAL 924, 927, 855 GOLDSTAR 776, 530, 797, 798, 803, 818, 830, 861, 862, 901 GRUNDIG 843, 777, 778, 783, 788, 793, Video (874) HAIER 524, 001, 033, 059, 158, 190, 195, 205, 214, 219, 529, 534, 682, 684, 687, 694, 715, 720, 739, 756, 761, 774, 807, 812, 825, 832 HI-VISION 152 HORIZONT 530, 901, 903, 775, 789, 794, 796, 799, 801, 823, 837, 857, 859 HISENSE 133, 003, 016, 022, 024, 034, 035, 043, 044, 132, 163, 168, 173, 185, 204, 209, 229, 276, 281, 291, 296, 301, 338, 343, 348, 448, 453, 458, 463, 511, 516, 519, 535, 538, 548, 553, 558, 559, 563, 564, 567, 568, 569, 572, 573, 574, 578, 579, 582, 583, 584, 587, 589, 592, 602, 607, 612, 622, 627, 632, 642, 647, 672, 677, 699, 700, 704, 705, 706, 710, 711, 716, 766, 779, 856 HITACHI 076, 496, 501, 506, 526, 531, 536, 541, 019, 037, 103, 108, 113, 116, 149, 545, 546, 551, 556, 561, 566, 571, 749, 811, 816, 821, 826, 511, 516, 521 HYUNDAI 746, 133, 447 JAV 066 JINXING (SVA) 010, 020, 153, 164, 169, 213, 218, 223, 228, 316, 373, 429, 492, 493, 497, 507, 521, 580, 590, 635, 640, 645, 650, 655, 660, 676, 737, 744 JVC 757, 762, 767, 772, 802 KONKA 879, 033, 006, 012, 014, 038, 062, 072, 074, 077, 115, 120, 124, 125, 144, 248, 253, 258, 263, 268, 273, 278, 283, 288, 293, 298, 303, 308, 313, 318, 352, 362, 367, 372, 377, 387, 392, 394, 399, 404, 409, 424, 479, 484, 489, 494, 499, 504, 605, 610, 641, 646, 651, 656, 686, 701, 707, 721, 726, 731, 800, 805, 810, 878 LG 776, 601, 530, 056, 096, 447, 520, 525, 576, 586, 591, 596, 771 LOEWE 922 MITSUBISHI 760, 829, 831, 834, 835, 860 NEC 876 ORION 904, 905, 923, 807 PANORAMA 045 PANASONIC 822, 906, 864, 869, 053, 078, 114, 133, 243, 319, 324, 329, 334, 339, 344, 349, 354, 359, 364, 434, 439, 444, 550, 696, 817 PANDA 002, 042, 047, 052, 107, 140, 152, 154, 159, 233, 238, 321, 378, 383, 414, 452, 462, 467, 472, 477, 487, 509, 555, 565, 570, 630, 708 PEONY 017, 082, 135, 189, 310, 488, 512, 517, 522, 665, 666, 671, 691, 742 PHILIPS 759, 764, 064, 901, 015, 040, 069, 070, 075, 080, 085, 090, 095, 100, 105, 110, 230, 240, 245, 754 POLAR 020, 447 PRIMA 013, 018, 023, 027, 049, 067, 089, 112, 117, 122, 134, 145, 157, 192, 200, 211, 235, 237, 250, 260, 272, 307, 328, 332, 357, 374, 382, 407, 449, 454, 459, 464, 469, 661, 693, 698, 703, 722 PROWEST 926 QINGHUAT OUGFANG 046, 051, 118, 593, 719, 734, 743 REKORD 133, 907, 908, 909, 910 ROLSEN 176, 432, 157, 883, 775, 789, 794, 796, 799, 801, 823, 837, 857, 859, 911, 912 ROWA 092, 102, 183, 188, 193, 199, 358, 455, 527, 581, 690, 695 RUBIN 897, 902, 779, 040 SAMSUNG 685, 877, 755, 137, 925, 902, 385, 007, 009, 142, 147, 194, 306, 360, 363, 368, 385, 419, 478, 483, 609, 614, 619, 624, 629, 634, 670, 675, 680, 681 SANAM 872, 883 SANYO 123, 533, 815, 143, 148, 206, 333, 503, 508, 513, 518, 523, 528, 533, 713, 735, 815, 820, 011, 058, 101 SANSUI 748 SHARP 773, 768, 763, 423, 917, 104, 126, 388, 393, 398, 403, 408, 413, 418, 758 SHIVAKI 759, 893, 447, 482 SITRONIKC 053 SKYWORTH 000, 005, 026, 031, 036, 045, 050, 054, 055, 060, 065, 079, 086, 091, 111, 121, 129, 138, 150, 155, 160, 162, 165, 167, 170, 172, 175, 177, 180, 182, 187, 197, 202, 207, 212, 217, 222, 225, 227, 232, 242, 247, 252, 257, 262, 267, 277, 282, 287, 292, 297, 302, 312, 317, 322, 326, 327, 337, 342, 347, 369, 379, 384, 389, 470, 490, 515, 532, 539, 540, 544, 549, 557, 560, 575, 577, 585, 588, 595, 597, 600, 603, 608, 613, 617, 618, 623, 628, 633, 637, 638, 643, 648, 652, 653, 657, 662, 664, 667, 669, 673, 674, 678, 702, 709, 712, 717, 725, 727, 730, 746, 751, 765, 769, 770, 780, 785, 790, 839, 844 SNOWA 875, 880, 882 SOKOL 804, 809 SONY 913, 836, 088, 093, 098, 106, 109, 234, 239, 244, 249, 254, 259, 264, 269, 274, 279, 284, 289, 294, 299, 304, 309, 314, 428 STRONG 833, 842, 847, 851, 866, 868 SUPRA 746, 794, 133 SVA 025, 041, 198, 203, 208, 554, 738 TCL 447, 021, 039, 048, 061, 087, 094, 099, 255, 265, 270, 275, 280, 290, 295, 300, 305, 320, 325, 330, 335, 345, 350, 355, 370, 375, 380, 395, 397, 400, 402, 405, 410, 412, 417, 420, 422, 425, 427, 430, 433, 435, 437, 438, 442, 443, 445, 450, 460, 465, 475, 480, 485, 495, 500, 505, 510, 606, 611, 615, 616, 620, 621, 625, 626, 631, 636, 639, 644, 649, 654, 659, 718, 723, 724, 728, 733, 753, 784, 848 THOMSON 853, 914, 915, 916, 792, 824, 828, 838, 867 TOSHIBA 081, 191, 806, 216, 221, 226, 231, 236, 241, 246, 251, 256, 261, 266, 286, 311, 336, 356, 391, 426, 471 VESTEL 919, 918, 920, 015 VITYAS 921, 530, 015 XIHU 008, 029, 030, 071, 084, 174, 179, 184, 741 X. VISION 873 OTHERS 004, 032, 057, 073, 083, 097, 119, 127, 128, 210, 215, 220, 224, 271, 543, 594, 598, 599, 604, 689, 692, 697, 714, 732, 736, 747, 750, 882
ИК-датчик
Во-вторых, для приема сигнала с пульта нам потребуется специальный ИК-датчик. Вообще, мы можем детектировать инфракрасное излучение обычным фотодиодом/фототранзистором, но в отличие от него, наш ИК-датчик воспринимает инфракрасный сигнал только на частоте 38 кГц (иногда 40кГц). Именно такое свойство позволяет датчику игнорировать много посторонних световых шумов от ламп освещения и солнца.
Для этого урока воспользуемся популярным ИК-датчиком VS1838B, который обладает следующими характеристиками:
- несущая частота: 38 кГц;
- напряжение питания: 2,7 — 5,5 В;
- потребляемый ток: 50 мкА.
Можно использовать и другие датчики, например: TSOP4838, TSOP1736, SFH506.
Подключение
Датчик имеет три вывода (три ноги). Если посмотреть на датчик со стороны приёмника ИК сигнала, как показано на рисунке,
- то слева будет — выход на контроллер,
- по центру — отрицательный контакт питания (земля),
- и справа — положительный контакт питания (2.7 — 5.5В).
Принципиальная схема подключения
Внешний вид макета
Руководство пользователя для универсального пульта дистанционного управления«4 в 1».
Ручной ввод кода:
1. Нажмите кнопку включения соответствующего устройства и убедитесь, что оно работает исправно.
2. Нажмите и отпустите кнопку выбранного устройства (TV, SAT, DVD, AUX), при этом светодиодный индикатор однократно мигнет.
3. Нажимайте кнопку SET UP (настройка), пока светодиод не загорится непрерывным светом, а затем отпустите кнопку.
4. Введите 4-значный код из списка кодов. Если код правильный, светодиод погаснет сразу, в противном случае он будет мигать три секунды, а затем погаснет. Для начала повторите шаг 2.
5. Направьте пульт дистанционного управления на соответствующее устройство и нажмите кнопки питания, при этом питание устройства будет выключено.
6. Если вы хотите настроить другое устройство, повторите шаг 1.
Автоматический поиск кода:
1. Нажмите кнопку включения соответствующего устройства и убедитесь, что оно работает исправно.
2. Нажмите и отпустите кнопку выбранного устройства (TV, SAT, DVD, AUX), при этом светодиодный индикатор однократно мигнет.
3. Нажимайте кнопку SET UP (настройка), пока светодиод не загорится непрерывным светом, а затем отпустите кнопку.
4. Направьте пульт дистанционного управления на соответствующее устройство и нажмите кнопку P+. Если устройство отреагировало, сохраните текущий код.
5. Нажмите кнопку OK для выхода.
Программа
Подключив ИК-датчик будем писать программу для Ардуино Уно. Для этого воспользуемся стандартной библиотекой IRremote, которая предназначена как раз для упрощения работы с приёмом и передачей ИК сигналов. С помощью этой библиотеки будем принимать команды с пульта, и для начала, просто выводить их в окно монитора последовательного порта. Эта программа нам пригодится для того, чтобы понять какой код дает каждая кнопка.
#include «IRremote.h» IRrecv irrecv(2); // указываем вывод, к которому подключен приемник decode_results results; void setup() { Serial.begin(9600); // выставляем скорость COM порта irrecv.enableIRIn(); // запускаем прием } void loop() { if ( irrecv.decode( &results )) { // если данные пришли Serial.println( results.value, HEX ); // печатаем данные irrecv.resume(); // принимаем следующую команду } }
Загружаем программу на Ардуино. После этого, пробуем получать команды с пульта. Открываем монитор последовательного порта (Ctrl+Shift+M), берём в руки пульт, и направляем его на датчик. Нажимая разные кнопочки, наблюдаем в окне монитора соответствующие этим кнопкам коды.
Проблема с загрузкой программы
В некоторых случаях, при попытке загрузить программу в контроллер, может появиться ошибка:
TDK2 was not declared In his scope
Чтобы ее исправить, достаточно удалить два файла из папки библиотеки. Заходим в проводник. Переходим в папку, где установлено приложение Arduino IDE (скорее всего это «C:\Program Files (x86)\Arduino»). Затем в папку с библиотекой:
…\Arduino\libraries\RobotIRremote
, и удаляем файлы: IRremoteTools.cpp и IRremoteTools.h. Затем, перезапускаем Arduino IDE, и снова пробуем загрузить программу на контроллер.
Подготовка к использованию
Для работы с пультом потребуются компьютер, программа RCCreator (скачать можно с сайта производителя) и шнур USB — mini USB. Программа RCCreator специально предназначена для программирования пультов, производимых . Также у программы есть ряд дополнительных сервисных возможностей, позволяющих расширить функциональность пультов Changer. Оттуда же можно скачать и подключаемый к базе данных программы RCCreator архив фотографий пультов.
Системным требованиям, предъявляемым к компьютеру, на который можно установить программу RCCreator, удовлетворит практически любая платформа:
- процессор Pentium II или эквивалент от AMD;
- 128 Мб ОЗУ, экран 800х600;
- операционная система MS Windows XP;
- Windows Vista или Windows 7.
При запуске программ автоматически включается функция поиска обновлений самой программы и базы данных. За время тестирования пульта обновление базы данных происходило несколько раз. Интерфейс программы RCCreator простой и понятный. Программа поддерживает выбор языка интерфейса (12 доступных языков, включая русский и украинский). Язык можно выбрать в процессе инсталляции программы или назначить его вовремя работы приложения.
В левой части окна программы размещен блок выбора параметров фильтров баз данных и модификации пульта Changer. Поиск данных по известным моделям пультов может осуществляться по базе производителя, по базе, созданной пользователем, или по всем имеющимся базам.
Фильтр позволяет:
- Задать бренд. В базе, поставляемой с программой RCCreator, собраны данные о моделях пультов для видео- и аудиоаппаратуры, выпускаемой различными производителями.
- Выбрать тип устройства. Устройства, о которых есть сведения в базе данных, разделены на 19 категорий (TV, SAT, DVR, HiFi, AUX, VCR и другие). Для использования фильтра можно указать несколько типов устройств из этого списка.
- Указать модель устройства. Данные пульта ДУ, выбранного фильтром поиска, можно сохранить в виде файла в формате XML. Созданные ранее файлы базы данных пультов можно импортировать в текущую используемую базу данных.
Для использования программы с универсальным пультом Changer нужно выбрать его модификацию. Программа предоставляет возможность выбора четырех разновидностей пультов Changer USB: TV, DVD, SAT и 4:1. В правой части окна программы отображаются таблица соответствия команд управления кнопкам пульта выбранного ДУ, изображение типа универсального пульта Changer с привязкой кнопок вы- бранного пульта к кнопкам пульта Changer. Переключившись на закладку «Картинки» можно вывести на экран изображение пульта ДУ, выбранного фильтром поиска. Информацию о выбранном пульте (его изображение, соответствие раскладки клавиатуры кнопкам универсального пульта Changer) можно распечатать из программы RCCreator в виде своеобразной «визитной карточки» пульта.
При первом подключении пульта Changer RC USB 4v1 к USB-порту компьютера ОС определяла его как USB HID-совместимое устройство. Драйверы система устанавливала автоматически. Программа RCCreator определяет наличие подключенного к компьютеру пульта Changer RC.
Управляем светодиодом с помощью ИК-пульта
Теперь, когда мы знаем, какие коды соответствуют кнопкам пульта, пробуем запрограммировать контроллер на зажигание и гашение светодиода при нажатии на кнопки громкости. Для этого нам потребуется коды (могут отличаться, в зависимости от пульта):
- FFA857 — увеличение громкости;
- FFE01F — уменьшение громкости.
В качестве светодиода, используем встроенный светодиод на выводе №13, так что схема подключения останется прежней. Итак, программа:
#include «IRremote.h» IRrecv irrecv(2); // указываем вывод, к которому подключен приемник decode_results results; void setup() { irrecv.enableIRIn(); // запускаем прием } void loop() { if ( irrecv.decode( &results )) { // если данные пришли switch ( results.value ) { case 0xFFA857: digitalWrite( 13, HIGH ); break; case 0xFFE01F: digitalWrite( 13, LOW ); break; } irrecv.resume(); // принимаем следующую команду } }
Загружаем на Ардуино и тестируем. Жмем vol+ — светодиод зажигается. Жмем vol- — гаснет. Теперь, зная как это все работает, можно вместо светодиода управлять двигателями робота, или другими самодельными микроэлектронными устройствами!
Конструкция
Пульт Changer RC USB 4v1 размещен в небольшом пластиковом корпусе черного цвета. Размеры корпуса 194 х 48 х 18 мм.
Весит пульт не больше, чем обычные (непрограммируемые) пульты. На нижней крышке корпуса имеется выемка, способствующая лучшему удержанию пульта в руке. Поверхность корпуса матовая, грязеотталкивающая. Клавиатура пульта состоит из 48 кнопок. Кнопки клавиатуры расположены строго симметрично, корпус тоже симметричный, поэтому пультом одинаково удобно пользоваться, держа его в правой или левой руке. Кнопки пульта нажимаются мягко. Тактильная обратная связь на нажатия хорошая.
Кнопки клавиатуры сгруппированы в зоны в соответствии с функциональным назначением. Кнопки каждой из зон имеют разный размер и форму. Навигационный круг расположен точно в центре, кнопки цифровой клавиатуры — в верхней части, кнопки выбора сервисов — в нижней. Для расширения функциональности имеющихся кнопок может быть использована префиксная кнопка Shift.
Есть небольшая зона из 8 кнопок, обозначенная как MINI TV. Это минимальный набор кнопок для управления просмотром (переключение программ, изменение уровня громкости, подтверждение установки, выбор НЧ-входа, отключение звука, переход в ждущий режим).
В самом нижнем ряду клавиатуры находятся кнопки выбора управляемого устройства: TV, DVD, SAT и AUX.
Большинство кнопок клавиатуры черные. Цветом выделены кнопки Power, Shift и группа функциональных («цветных») кнопок. Кнопка Power снабжена подсветкой, которая включается при посыле команды, закрепленной за запрограммированной кнопкой. На клавиатуре и корпусе пульта нанесены четкие, хорошо читаемые обо- значения, описывающие функции кнопок.
На лицевой (верхней) части корпуса нанесен логотип и название модификации пульта («4:1»). На нижнем торце корпуса пульта находится гнездо разъема mini USB, используемое для связи с компьютером. Питается пульт от трех батареек ААА.