123




Содержание

  • 7.1 Понимание
    • 7.1.1 Понимание
    • 7.1.2 Упрощение и разделение
    • 7.1.3 Исключение и уверенность
  • 7.2 Проверка платы
  • 7.3 Проверка схемы на макетной плате
  • 7.4 Выделение проблемы
  • 7.5 Проблемы с IDE
  • 7.6 Как получить помощь онлайн

Глава 7. Устранение неполадок


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

Чем больше вы работаете с электроникой и Arduino, тем больше вы поймёте и получите опыт, который сделает процесс работы менее болезненным. Не обескураживайтесь проблемами, с которыми вы встретитесь - они не так страшны как выглядели вначале.

Так как любой проект на основе Arduino состоит из программного и аппаратного обеспечений, то для поиска причины неприятностей будет больше одного места. В поисках проблемы вам следует следовать трём правилам:

7.1 Понимание

7.1.1 Понимание

Попробуйте понять как можно больше о том как работают используемые вами части и какой вклад они вносят в готовый проект. Такой подход позволит вам использовать какой-либо способ проверить каждый компонент в отдельности.

7.1.2 Упрощение и разделение

Древние римляне говорили: "divide et imper", что означает "разделяй и властвуй". Попробуйте разбить (мысленно) проект на его компоненты с использованием знаний где начинается и заканчивается ответственность каждого компонента.

7.1.3 Исключение и уверенность

При исследование проверьте каждый компонент отдельно для того чтобы быть абсолютно уверенным что он работает. Вы будете постепенно наращивать понимание того какие части проекта делают свою работу, а какие являются сомнительными.

Отладка (debugging) - это термин, используемый для определения такого процесса применительно к программированию. Легенды говорят, что в первый раз он был использован Грейс Хоппер в 1940-м, когда компьютеры были электромеханическими и один из них перестал работать из-за того что в механизм залезло настоящее насекомое (bug, баг).

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

7.2 Проверка платы

Что делал самый первый пример, "мигание светодиодом"? Разве это был он скучен? Давайте посмотрим что можно сделать.

Перед тем как начать обвинять свой проект, вам стоит проверить несколько вещей в порядке, подобном тому как пилоты самолёта проверят все системы перед вылетом.

Подключите свою Arduino к разъёму USB своего компьютера.

  • Удостоверьтесь что компьютер включён (да, звучит глупо, но и такое случается). Если зелёный светодиод, обозначенные "PWR" светится, это означает что компьютер подаёт питание на плату. Если светодиод светится слабо, что-то случилось с питанием: попробуйте другой кабель USB и проверьте USB-порт компьютера, а также разъём USB платы Arduino на предмет повреждений. Если это не помогло, попробуйте другой USB-порт компьютера.
  • Если Arduino только-что была куплена, светодиод "L" начнёт мигать в немного нервной манере; это тестовая программа, загруженная продавцом для проверки платы.
  • Если вы используете внешний источник питания и старую плату Arduino (Extreme, NG или Diecimila), удостоверьтесь что источник питания включён и перемычка "SV1" замыкает два ближних к разъёму питания контакта.

Примечание: Если вы испытываете проблемы с другими скетчами и хотите проверить, работает-ли плата, откройте первый пример "мигание светодиодом" в IDE Arduino и выгрузите его в плату. Светодиод на плате должен начать мигать.

Если вы прошли все описанные шаги успешно, можете быть уверены что плата Arduino работает корректно.

7.3 Проверка схемы на макетной плате

Теперь подключите плату Arduino на макетной плате проводами от 5 V и GND к негативной и позитивной шинам. Если зелёный светодиод "PWR" выключился, немедленно отключите провода. Это означает что в вашей схеме есть большая ошибка и где-то произошло "короткое замыкание". Когда такое случается, ваша плата потребляет слишком большой ток и для защиты компьютера питание отключается.

Примечание: Если вы опасаетесь повредить свой компьютер, то знайте, что на многих компьютерах токовая защита достаточно хороша и срабатывает быстро. Также плата Arduino оснащена "полисвитчем" - прибором для защиты по току, который автоматически восстанавливается когда проблема будет устранена. Если вы настоящий параноик, вы всегда можете подключать Arduino через USB-хаб с отдельным питанием. В этом случае,если всё пойдёт очень плохо, помрёт только хаб, а не ваш компьютер.

Если у вас случилось короткое замыкание, начните процесс "упрощения и разделения". Всё что вам надо сделать, это пройтись по каждому сенсору в проекте и подключать их поочерёдно.

Первое, с чего следует начать - всегда питание (подключения 5 V и GND). Осмотрите их и удостоверьтесь что все части схемы подключены к ним правильно.

Работать шаг за шагом и производить по одному изменению за раз - правило номер один при устранении неполадок. Это правило было вбито в мою молодую голову моим школьным учителем и первым работодателем, Маурицио Пирола. Каждый раз когда я отлаживал что-то и дела шли плохо (и, поверьте, это случалось часто), в моей голове всплывало его лицо со словами: "одно изменение за раз ... одно изменение за раз" и это обычно помогало. Это очень важно, так как что вы поймёте что устранило проблему (очень легко потерять след всех изменений, которые решили проблему, поэтому так важно делать их один за другим).

Каждый опыт отладки будет выстраивать у вас в голове "базу знаний" неполадок и их возможных решений. И после тем как вы поймёте это, вы станете экспертом. Вы будете выглядет круто, так как новичок скажет "Оно не работает!", а вы бросите беглый взгляд и дадите ответите в несколько секунд.

7.4 Выделение проблемы

Другое важное правило - найти надёжный способ воспроизвести проблему. Если ваша схема ведёт себя странно в разные случайные моменты времени, попробуйте точно определить момент, в котором неполадка случается и что её могло вызвать. Такой процесс позволит вам подумать о возможной причине. Также очень полезно когда вам требуется пояснить кому-нибудь то, что вы делаете.

Описание проблемы настолько точно, насколько это возможно, это также хороший способ найти решение. Попробуйте пояснить кому-нибудь проблему - во многих случаях решение всплывёт в голове как только вы озвучите проблему. Брайан В. Керниган и Роб Пайк в книге "Практика программирования" (изд-во Addison-Wesley, 1999), рассказали историю, в которой один университет "держал плюшевого мишку возле службы поддержки. Студенты с загадочными проблемами должны были пояснить их мишке прежде чем пообщаться с консультантом".

7.5 Проблемы с IDE

Иногда у вас могут быть проблемы с использованием интегрированной среды разработки Arduino, в частности, в Windows.

Если вы получаете ошибку при двойном щелчке на иконке Arduino, или не происходит вообще ничего, попробуйте запустить двойным щелкчком файл run.bat. Это альтернативный способ запуска Arduino.

Пользователи Windows могут также получить проблему если операционная система назначает COM-порту для Arduino номер COM10 или больше. Если такое произошло, обычно вы можете уговорить Windows назначить более низкий номер порта. Сначал откройте диспетчер устройств, нажав кнопку "Пуск", щёлкнув правой кнопкой на "Компьютер" (Vista) или "Мой компьютер" (XP) и выбрав "Свойства". В Windows XP щёлкните на "Оборудовани" и выберите "Диспетчер устройств". Для Vista щёлкните "Диспетчер устройств" (он расположен в списке приложений в левой части окна).

Найдите последовательные устройства в списке "Порты (COM и LPT)". Найдите последовательное устройство, которое вы не используете и имеющее номер COM9 или ниже. Правой кнопкой мышки щёлкните на нём и выберите "Свойства". Затем выберите закладку "Параметры порта" и нажмите кнопку "Дополнительно...". Установите номер COM в COM10 или выше, нажмите "ОК" и ещё раз "ОК" чтобы закрыть окно "Свойства".

Теперь сделайте то-же самое с последовательным портом USB, который представляет Arduino, с одним отличием - установить номер порта COM (COM9 или ниже), который вы только-что освободили.

Если эти подсказки вам не помогли, или у ваша проблема не описана выше, просмотрите страничку устранения неполадок Arduino:www.arduino.cc/en/Guide/Troubleshooting.

7.6 Как получить помощь онлайн

Если вы застряли, не тратьте дни на решение проблемы самостоятельно - попросите о помощи. Одна из лучших вещей у Arduino - это сообщество. Вы всегда найдёте помощь если сможете достаточно хорошо описать проблему.

Возьмите за правило копировать и вставлять текст в поисковую систему и убеждаться что кто-то уже говорил об этом.

Например, когда Arduino IDE выплевывает неприятное сообщение об ошибке, скопируйте и вставьте его в поиск Google и посмотрите, что получится. Сделайте то же самое с кода, с которым вы работаете или только определенным именем функции. Осмотритесь: все, что уже было изобретено раньше и оно хранится где-то на веб-страницах.

Для дальнейших изысканий начните с главного сайта www.arduino.cc и посмотрите на часто задаваемые вопросы и ответы на них (FAQ,www.arduino.cc/en/Main/FAQ), затем пройдитесь по "детской площадке" (playground, www.arduino.cc/playground), свободно редактируемой вики, где любой пользователь может поспособствовать улучшению документации. Это одна из лучших частей философии открытого кода. Люди способствуют созданию документации и примеров, которые вы можете применить к Arduino. Перед началом проекта поищите в детской площадке и вы найдёте части кода или схем, которые помогут вам начать.

Если вы всё ещё не можете найти ответ, поищие на форуме (www.arduino.cc/cgi-bin/yabb2/YaBB.pl). Если он не содержит ответа, задайте в форуме вопрос. Выбирайте правильный раздел форума для своего вопроса: есть несколько разделов для проблем с программным или аппаратным обеспечанием, и даже форумы на разных языках. Пожалуйста, дайте как можно больше информации:

  • Какую Arduino вы используете?
  • Какую операционную системы вы использяете для запуска Arduino IDE?
  • Дайте описание того, что вы хотите сделать. Укажите ссылки к базам данных нестандартных компонентов, которые используются.

Количество ответов зависит от того, как вы сформулируете свой вопрос.

Ваши шансы увеличатся если вы будете избегать следующих вещей (эти правила одинаковы для любых форумой, не только об Arduino):

  • Писать своё сообщение ЗАГЛАВНЫМИ БУКВАМИ. Это сильно раздражает людей и подобно хождению по улицам с татуировкой "новичок" на лбу (в онлайн-сообществах писать заглавными буквами означает "кричать")
  • Писать одинаковые сообщения в разных разделах форума
  • "Подталкивание" своих сообщений вопросами "Что, никто не ответил?", или, что ещё хуже, просто "вверх". Если вы не получили ответа, просмотрите своё сообщение. Понятна-ли тема? Вы хорошо описали проблему? Вы были вежливы? Всегда будьте вежливым.
  • Сообщения вида "Хочу построить космический шаттл на Ардуино как мне это сделать". Это означает что вы хотите чтобы на вас работал кто-то ещё, что для настоящего самоделкина невесело. Лучше обьяснить что вы хотите сделать, а затем задать определённый вопрос об одной части проекта.
  • Если вы зададите вопрос, то люди будут рады помочь, но если вы попросите их сделать всю работу (и не поделитесь деньгами), ответов не получите.
  • Писать сообщения, подозрительно похожие на просьбы сделать вам домашнее задание. Преподаватели, такие как я, бродят по форумам и наказывают провинившихся студентов.

Приложение A. Макетная плата

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

Решением данной проблемы является очень практичное устройство, называемое беспаечной макетной платой. Вы можете увидеть её на рис. A-1. Это небольша пластиковая пластина со множеством отверстий, каждое из которых содержит пружинный контакт. Вы можете вставить ножку компонента в одно из отверстий и получить электрический контакт со всеми отверстиями, расположенными в той-же вертикальной колонке отверстий. Каждое отверстие находится на расстоянии 2,54 мм от других.

Поскольку у большинства компонентов ножки (ещё называемые "пинами") расположены со стандартным шагом, чипы со множеством ножек отлично устанавливаются. Не все контакты платы сделаны одинаковыми - есть небольшая разница. Верхний и нижний горизонтальные ряды (помеченные красным и синим цветом и обозначенные "+" и "-") соединены горизонтально и используются для подключения питания по всей плате, так-что когда вам требуется питания или земля, вы можете быстро получить их, проведя перемычку (короткий отрезок провода для соединения двух точек схемы). И последнее что вам следует знать в макетной плате - это то, что посередине платы есть большой разрыв, соизмеримый с самой маленькой микросхемой. Все вертикальные линии прерываются посередине, так-что когда вы установите в плату микросхему, у неё не будут замкнуты ножки по двум стронам микросхемы. Умно, да?

Приложение B. Маркировка резисторов и конденсаторов

Для того чтобы использовать электронные компоненты, вы должны уметь различать их, что может быть трудной задачей для начинающего. Большинство сопротивлений, которые вы можете найти в магазинах, имеют цилиндрическую форму с двумя выводами и странную цветовую маркировку по кругу. Когда производились первые коммерческие резисторы, способа напечатать на них такие маленькие знаки ещё не было, так-что умные инженеры решили что они могут обзоначать величины полосками цветной краски.

Теперь начинающие должны понять как расшифровать такие знаки. "Ключ" очень прост: вообще существует четыре полоски, и каждый цвет обозначает отдельную цифру. Одно из колец, обычно золотистого цвета, обозначает точность сопротивления. Для правильного прочтения кода держите сопротивления так чтобы золотистая полоска была справа. Затем читайте цвета и заменяйте их соответстсвующими цветами. В следующей таблице показано соответствие между цветами и их числовыми значениями:

ЦветЗначение
Чёрный
0
Коричневый
1
Красный
2
Оранжевый
3
Жёлтый
4
Зелёный
5
Синий
6
Красный
7
Серый
8
Белый
9
Серебристый
10%
Золотистый
5%

Например, коричневый, чёрный, оранжевый и золотистый означают 103±5%. Просто, не так-ли? Не очень, так как здесь есть выверт: третья полоска означает количество нулей в значении. Поэтому 1 0 3 означает десятку с тремя нулями, в итоге получается результат 10000 Ом ±5%. Электронные ботаники любят сокращать эти значения в килоомы (тысячи ом) или мегаомы (миллионы ом) , так-что обычно 10000 Ом превращается в 10k тогда как 10000000 становится 10M. Пожалуйста, заметьте что инженеры любят улучшать всё подряд, и на некоторых схемах вы можете увидеть 4k7, что означает 4,7 килоОма, или 4700, что означает то-же самое.

С конденсаторами немного легче: конденсатор в форме бочонка (электролитический) чаще всего имеет надпись со своим номиналом. Емкость конденсатора измеряется в фарадах (F), но большинство конденсаторов, с которыми вы встретитесь, измеряются в микрофарадах (uF). Так-что если вы увидите конденсатор с надписью 100 uF, это конденсатор с ёмкостью 100 микрофарад.

Множество конденсаторов в форме диска (керамические) не имет надписей с указанием единиц и используют трёхзначный код, показывающий количество пикофарад (pF). В одном микрофараде 1000000 пикофарад. Подобно коду резисторов используйте третью цифру для определения числа нулей в значении, с одной разницей: если это цифра от 0 до 5, то она показывает число нулей; цифры 6 и 7 не используются; если-же вы видите 8, то умножайте первые две цифры на 0,01; а если видите девятку, то умножайте на 0,1.

Итак, если конденсатор обозначен маркировкой "104", значит его ёмкость равна 100000 пикофарад, или 0,1 uF. Конденсатор с надписью 229 имеет ёмкость 2,2 пФ.


Презентация проекта SERVODROID Закрыть
Если презентация не появилась 5 секунд - просто нажмите на пустой центр панели