CraftDuino v2.0
  • - это CraftDuino - наш вариант полностью Arduino-совместимой платы.
  • CraftDuino - настоящий конструктор, для очень быстрого прототипирования и реализации идей.
  • Любая возможность автоматизировать что-то с лёгкостью реализуется с CraftDuino!
Просто добавьте CraftDuino!

Практическое программирование Arduino/CraftDuino - начало

У нас уже была серия статей про программирование Arduino/Freeduino/CraftDuino. Там мы рассмотрели структуру программы, константы и специфичные для Arduino функции, которые собственно и составляют язык Wiring.

Теперь же настала пора практических занятий :)

0. Начало

Пожалуй, всё же стоит обозначить элементы управления Arduino IDE
Arduino IDE

Итак, слева направо:

компиляция (оригинальное название — проверка) кода
— стоп (остановка монитора COM-порта)
— новый скетч
— открыть скетч
— сохранить скетч
загрузить скетч в микроконтроллер Arduino/Freeduino
монитор последовательного (COM) порта

Самые важные для нас – первая и две последние кнопки :)

Т.о. цикл разработки скетча для Arduino можно представить так:
цикл разработки скетча для 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, расположенную на плате.

читать далее: 1. Цифровой ввод — кнопка

По теме:
Подготовка к работе с Arduino/CraftDuino
Программирование Arduino — статьи.
Книги про Arduino
книга на русском языке: Блокнот программиста Arduino (PDF 1.3 Mb)
Шпаргалка по Arduino
Возможные ошибки при работе с Arduino
Arduino, термины, начало работы
Разновидности плат Arduino, а также про клоны, оригиналы и совместимость
КМБ для начинающих ардуинщиков
Состав стартера (точка входа для начинающих ардуинщиков)
  • +1
  • 3 августа 2009, 12:39
  • admin

Комментарии (14)

RSS свернуть / развернуть
+
0
а что нужно сделать, чтобы отключить autoreset, где расположен этот джампер?
У меня плата freeduino v1.16
avatar

RuZ

  • 14 июля 2010, 18:37
+
+2
сковырнуть конденсатор CRS или порезать дорожку идущую к нему
(лучше порезать — потом восстановить проще будет, при желании=)
както так:
avatar

Zoltberg

  • 14 июля 2010, 20:42
+
0
спасибо, пока правда воспользуюсь программным способом, всё равно свой софт писать
avatar

RuZ

  • 14 июля 2010, 22:46
+
0
Помогите, пожалуйста.
Ubuntu 10.10
Библиотека arduino 22
Запускаю Example-Servo-Knob
Отправляю на плату, а в ответ

In file included from Knob.cpp:4:
/home/sergei/arduino-0022/libraries/Servo/Servo.h:48:22: error: inttypes.h: Нет такого файла или каталога
In file included from Knob.cpp:6:
/home/sergei/arduino-0022/hardware/arduino/cores/arduino/WProgram.h:4:20: error: stdlib.h: Нет такого файла или каталога
/home/sergei/arduino-0022/hardware/arduino/cores/arduino/WProgram.h:5:20: error: string.h: Нет такого файла или каталога
/home/sergei/arduino-0022/hardware/arduino/cores/arduino/WProgram.h:6:18: error: math.h: Нет такого файла или каталога
/home/sergei/arduino-0022/hardware/arduino/cores/arduino/WProgram.h:8:27: error: avr/interrupt.h: Нет такого файла или каталога
In file included from /home/sergei/arduino-0022/hardware/arduino/cores/arduino/WProgram.h:10,
from Knob.cpp:6:
/home/sergei/arduino-0022/hardware/arduino/cores/arduino/wiring.h:28:20: error: avr/io.h: Нет такого файла или каталога
In file included from /home/sergei/arduino-0022/hardware/arduino/cores/arduino/WProgram.h:13,
from Knob.cpp:6:
/home/sergei/arduino-0022/hardware/arduino/cores/arduino/WCharacter.h:23:19: error: ctype.h: Нет такого файла или каталога

Где же все эти файлы брать???
avatar

serba

  • 21 января 2011, 15:21
+
0
возможно, поможет страничка:
www.arduino.cc/playground/Linux/Debian
скорее всего проблема в зависимостях:
sudo apt-get install openjdk-6-jre gcc-avr avr-libc avrdude

так же, нашлось небольшое руководство:
Here is a quick tutorial to get Arduino up and running on Ubuntu 10.04:
1. Download Arduino 00-22 — arduino.googlecode.com/files/arduino-0022.tgz
2. Leave it in your Downloads folder
3. Open Terminal
4. Type sudo apt-get install gcc-avr avr-libc to install the compiler and libraries
5. Type cd ~/Downloads to go to your Downloads folder
6. To untar the file, type tar -vxzf arduino-0022.tgz
7. To change directory to replace Serial library, type cd arduino-0022/lib
8. To backup the original lib, type mv librxtxSerial.so librxtxSerial.so.orig
9. Type find / -ls 2>&1 |grep -i librxtxSerial
10. Type mv librxtxSerial.so.orig librxtxSerial.so
11. To move up one directory, type cd…
12. To execute Arduino, type ./arduino
avatar

noonv

  • 21 января 2011, 15:30
+
0
спасибо большое :-)) Первое помогло…
avatar

serba

  • 21 января 2011, 15:38
+
0
а как отключить Autoreset enable в arduino mega 2560?
avatar

vomchik

  • 24 марта 2012, 11:34
+
0
нашел ответ, я разорвал цепь, но теперь не хотят загружаться скетчи
avatar

vomchik

  • 24 марта 2012, 11:50
+
0
нажимаю кнопку аплоад, потом жму ресет, идет компилинг но полностью скетч не загружается
avatar

vomchik

  • 24 марта 2012, 12:06
+
0
Жать надо позже, когда мигнёт светодиод RX.
Но попасть в нужный момент может оказаться не так просто=)
Дрампер можно запаять — надо загрузить — замкнули, не нужен авторезет — разомкнули, как на крафтдуино=)
avatar

Zoltberg

  • 24 марта 2012, 16:24
комментарий был удален

+
0
Припаял я переключатель.
У меня почему то при заливки выше приведенного скетча программы Tutty ничего не показывал думал из за Autoreset enable, но в итоге все равно ничего не показывает, хотя встроенная консоль IDE все отображает.
avatar

vomchik

  • 24 марта 2012, 17:28
+
0
Зугрузил скетч с посылкой данных в терминал, видно как led мигает, идет передача. Гаснет-идет передача. Но монитор порта ничего не выводит. Tutty тоже. baud вна мониторе стоит 9600. Что делать?
avatar

snzh

  • 13 августа 2013, 15:49
+
+1
если сам порт выбран правильно, то всё должно работать :)
avatar

admin

  • 13 августа 2013, 16:00

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.