В этом уроке:
- Сборка знаков
- Настройка знаков на передачу информации о них
Вы уже знаете, каким образом знаки передают информацию о себе, а также знаете, как их принимает машинка. Ваш автомобиль уже полностью готов к тому, чтобы учиться правилам дорожного движения, осталось подготовить знаки.
Мы решили вынести сборку всех знаков в отдельный урок, чтобы потом не возвращаться к этому, и сконцентрироваться исключительно на программировании машинки.
Сборка знаков
Для каждого знака, с которым Вы встретитесь, есть подробная статья (список ниже). Также, в 3-й главе Вы найдёте описание всех знаков линейки «Роботраффик». Там находится инструкция по сборке, необходимые скетчи и прочая полезная информация по работе со знаком. А вот те из них, с которыми мы будем работать в рамках данного курса:
- «Опасные повороты» (используем знак 1.12.1 — первый поворот направо);
- «Ограничение максимальной скорости» (используем знак на 60 км/ч);
- «Дети»;
- «Конец всех ограничений»;
- «Движение без остановки запрещено»;
- Светофор (используем обе дополнительные секции, программируем на Х-образные перекрёсток);
- «Железнодорожный переезд со шлагбаумом»;
- «Въезд запрещён»;
- «Направление движения» (используем знак 4.1.3 — движение налево).
Соберите знаки по инструкциям в статьях.
Программирование знаков
Знак нужно запрограммировать на передачу информации. После этого при подаче питания он будет работать автоматически. В статьях показано подключение знака для программирования к контроллеру Piranha UNO, однако, Вы можете использовать любой контроллер, который у Вас есть. Если другого контроллера нет, то можно снять с машинки Arduino Nano и запрограммировать знаки через него.
Для этого потребуется открутить 4 винта и снять модуль питания, после чего достать контроллер.
*Шлейфы можно не отключать
Затем подключаем к контроллеру первый знак — «Опасные повороты». Подключение всех остальных знаков будет производиться аналогично.
Контакт знака | Контакт Arduino Nano |
GND | GND |
Vcc | 5V |
SDA | A4 |
SCL | A5 |
Итак, теперь можно вернуться к пункту «Первое включение и настройка» и запрограммировать знак на передачу информации.
Так по очереди программируем все знаки.
Проверка знаков
Давайте проверим, что все знаки работают верно. Для этого установите контроллер Arduino Nano обратно на машинку и загрузите в него следующий скетч:
#include <iarduino_I2C_IR.h> // Подключаем библиотеку для работы с Trema модулями ИК-приёмник/передатчик I2C-flash iarduino_I2C_IR ir(0x09); // Объявляем объект ir для работы с функциями и методами библиотеки iarduino_I2C_IR, указывая адрес модуля на шине I2C // Если объявить объект без указания адреса (iarduino_I2C_IR ir;), то адрес будет найден автоматически void setup(){ // Serial.begin(9600); // Инициируем работу с шиной UART для передачи данных в монитор последовательного порта на скорости 9600 бит/сек ir.begin(); // Инициируем работу с ИК-приёмником/передатчиком I2C-flash ir.setProtocol(IR_IARDUINO); // Указываем протокол для приёма/передачи данных по ИК-каналу } void loop(){ if( ir.check(true) ){ // Если приняты данные: if( ir.device==MODUL_SIGN ){ // Если данные приняты от дорожного знака: Serial.print("Дорожный знак: "); Serial.println(ir.sign_str); // Выводим строку с номером знака } if( ir.device==MODUL_TLIGHT ){ // Если данные приняты от светофора: Serial.print("Светофор: регулирует перекрёсток c движением "); if( ir.track_L ){ Serial.print("налево, " ); } if( ir.track_R ){ Serial.print("направо, " ); } if( ir.track_F ){ Serial.print("прямо, " ); } Serial.print("сейчас сигналы светофора указывают"); Serial.print(": прямо "); switch(ir.forvard){ case 0: Serial.print("нельзя" ); break; case 1: Serial.print("можно" ); break; case 2: Serial.print("можно, если нет помех"); break; } Serial.print(", направо "); switch(ir.right){ case 0: Serial.print("нельзя" ); break; case 1: Serial.print("можно" ); break; case 2: Serial.print("можно, если нет помех"); break; } Serial.print(", налево "); switch(ir.left){ case 0: Serial.print("нельзя" ); break; case 1: Serial.print("можно" ); break; case 2: Serial.print("можно, если нет помех"); break; } Serial.println("."); } } }
Направьте запрограммированный (включенный) знак на ИК-приёмник машинки и Вы увидите его номер, а в случае со светофором — сигналы, которые он в данный момент передаёт. Проверьте все знаки на работоспособность. После того, как убедитесь, что всё хорошо, можно будет двигаться дальше.
Обсуждение