Подготовка знаков к работе

В этом уроке:

  • Сборка знаков
  • Настройка знаков на передачу информации о них

Вы уже знаете, каким образом знаки передают информацию о себе, а также знаете, как их принимает машинка. Ваш автомобиль уже полностью готов к тому, чтобы учиться правилам дорожного движения, осталось подготовить знаки.

Мы решили вынести сборку всех знаков в отдельный урок, чтобы потом не возвращаться к этому, и сконцентрироваться исключительно на программировании машинки.

Сборка знаков

Для каждого знака, с которым Вы встретитесь, есть подробная статья (список ниже). Также, в 3-й главе Вы найдёте описание всех знаков линейки «Роботраффик». Там находится инструкция по сборке, необходимые скетчи и прочая полезная информация по работе со знаком. А вот те из них, с которыми мы будем работать в рамках данного курса:

Соберите знаки по инструкциям в статьях.

Программирование знаков

Знак нужно запрограммировать на передачу информации. После этого при подаче питания он будет работать автоматически. В статьях показано подключение знака для программирования к контроллеру Piranha UNO, однако, Вы можете использовать любой контроллер, который у Вас есть. Если другого контроллера нет, то можно снять с машинки Arduino Nano и запрограммировать знаки через него. 

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

*Шлейфы можно не отключать

Затем подключаем к контроллеру первый знак — «Опасные повороты». Подключение всех остальных знаков будет производиться аналогично.

Контакт знакаКонтакт Arduino Nano
GNDGND
Vcc5V
SDAA4
SCLA5

Итак, теперь можно вернуться к пункту «Первое включение и настройка» и запрограммировать знак на передачу информации.

Так по очереди программируем все знаки.

Проверка знаков

Давайте проверим, что все знаки работают верно. Для этого установите контроллер 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(".");
         }
     }
}

Направьте запрограммированный (включенный) знак на ИК-приёмник машинки и Вы увидите его номер, а в случае со светофором — сигналы, которые он в данный момент передаёт. Проверьте все знаки на работоспособность. После того, как убедитесь, что всё хорошо, можно будет двигаться дальше.

Поздравляю с изучением данного урока!
Следующий урок:
№6. Получаем информацию о знаке.
приступить к изучению

Продукт в магазине

Комплект знаков для базового курса по "Роботраффику" для образования (продолжение ROBORACE)

В магазин

Обсуждение

Гарантии и возврат. Используя сайт, Вы соглашаетесь с условиями.