Как уже писалось в статье про создание робота Arduino собственными руками, начинаем наш первый урок.
1. Введение
Давайте обозначим элементы управления Arduino IDE
Итак, слева направо:
— компиляция (оригинальное название — проверка) кода
— стоп (остановка монитора COM-порта)
— новый скетч
— открыть скетч
— сохранить скетч
— загрузить скетч в микроконтроллер Arduino/Freeduino
— монитор последовательного (COM) порта
Самые важные для нас – первая и две последние кнопки
Цикл разработки скетча для Arduino можно представить так:
Написание кода – компиляция – загрузка в МК. Кажется — всё просто. Попробуем снова загрузить Blink. Открываем тестовый скетч из Examples — Digital — Blink и нажимаем кнопку компиляции
Компиляция прошла без ошибок о чём нам и сообщают – «Done compiling»
Остаётся подключить нашу ардуину к питанию и COM-порту и нажать кнопку выгрузки скетча на МК. Во время выгрузки будут мигать светодиоды Rx и Тx – сигнализирующие приём и передачу сообщений через последовательный интерфейс ардуины. Если выгрузка прошла успешно – мы получим сообщение: «Done uploading»
Т.к. джампер на плате установлен в Autoreset enable плата сама перезагрузится, произойдёт заливка скетча, снова перезагрузка и через 10 секунд ардуина начнёт весело мигать светодиодом
Впрочем, светодиод даже не обязательно вставлять в разъём – на плате уже есть сигнальный светодиод, подключённый к 13-му цифровому порту ардуины через ограничительный резистор.
Используя провода, изготовленные из витой пары,
схему можно перенести на макетную плату.
А если всё делать по-честному и подключать светодиод через ограничительный резистор, то получится такая простейшая схема:
которая на макетной плате будет выглядеть так:
Теперь немножко переделаем скетч Blink т.о., чтобы плата сообщала нам через COM-порт когда светодиод горит, а когда нет. Для этого нужно добавить всего три строчки кода:
int ledPin = 13 ;
void setup( )
{
pinMode(ledPin, OUTPUT) ;
Serial.begin ( 9600 ) ; // инициализация работы с COM-портом
}
void loop( )
{
digitalWrite(ledPin, HIGH) ;
Serial.print ( "H" ) ; // светодиод горит – пишем H
delay( 1000 ) ;
digitalWrite(ledPin, LOW) ;
Serial.println ( "L" ) ; // светодиод погасили – пишем L
delay( 1000 ) ;
}
Компилируем и загружаем скетч в МК.
Светодиод мигает, а сообщения от платы мы можем увидеть через монитор последовательного порта.
Ура! Работает. Сообщения из последовательного порта можно смотреть любой терминальной программой, например tutty:
выбираем наш COM-порт и любуемся:
Но что это – при любой новой попытке просмотреть сообщения COM-порта наша плата перезагружается! Всё дело в джампере Autoreset enable, который так удобен при загрузке новых скетчей. Если джампер снять, то теперь каждое новое подключение к последовательному порту не будет вызывать перезагрузку ардуины, но новые скетчи придётся загружать после ручного нажатия на кнопку Reset, расположенную на плате.
robocraft.ru