Постановка задачи
Привет! Это руководство проведет вас через этап создания умного деревянного манекена, который представляет собой учебное пособие по электронике для разработки режима обучения на основе данных и статистики. В то время как многие виды спорта имеют стандартные показатели, на которых основываются тренировки, такие измеримые показатели иногда трудно найти в боевых искусствах; этот проект направлен на исправление этого положения, представляя подробные инструкции, которым может следовать тот, кто не является мастером электроники, а также дополнительную подробную информацию для тех, кто хочет разобраться в деталях.
Описание умного деревянного манекена
Это устройство будет определять удары по мере того, как вы его используете, и измеряет общее количество ударов, соотношение попаданий / промахов, время реакции, а также пиковую и среднюю использованную силу. Вы можете настроить время раунда, требуемую скорость удара, требуемую силу удара и откалибровать его в соответствии с вашими конкретными настройками. В этом проекте используется уже построенный деревянный манекен, описанный в этом руководстве: https://www.instructables.com/id/Karate-Wasted-Dummy/), и его можно адаптировать для использования с деревянными манекенами других стилей. Общая стоимость составляет около 480 долларов, при условии, что вы не можете утилизировать детали.
Это достигается с помощью датчиков для создания шести целевых областей; Акселерометры со светодиодами / зуммером в трех плечах, а также светодиоды / зуммеры в сочетании с большими настраиваемыми концевыми выключателями для высоких / средних / низких целей «ствола».
Все они подключены к основному блоку, который включает в себя ЖК-экран для отображения статистики и пользовательского интерфейса, регуляторы для настройки круглых параметров и кнопку запуска.
Внутри этого корпуса вся обработка выполняется с использованием трех Arduino Megas (из-за количества входов и скорости обработки), подключенных в конфигурации Master / Slave. Одно подчиненное устройство управляет руками, одно подчиненное устройство управляет стволом, а главное устройство обеспечивает координацию между ними и панелью пользовательского интерфейса. (см. блок-схему и схему). Более подробная информация представлена в следующих шагах.
В этот проект было вложено много времени и усилий; Я надеюсь, вам понравится и вы получите пользу от этого руководства! Если у вас есть идеи / комментарии или вы делаете свои собственные, дайте мне знать!
Шаг 1. Список деталей и инструменты
Запчасти
ПРИМЕЧАНИЕ. Прилагаемая электронная таблица содержит ссылки на страницу продукта для всех частей, перечисленных ниже
# Товар (поставщик) Цена (# использовано) Итого
1 Arduino Mega (Amazon) 14,99 $ (3) 44,97 $
2 ADXL377 - Трехосевой акселерометр High-G (Adafruit) 24,95 долл. США (4) 99,80 долл. США
3 красных светодиода Jumbo (Digikey) 0,50 $ (6) 3,00 $
4 ЖК-дисплея (2 шт.) (Amazon) 4,95 долл. США (1) 4,95 долл. США
5 8 Con. кабель, 100 футов (Amazon) 40,00 $ (1) 40,00 $
6 ПВХ, 1 дюйм x 10 футов SCH 40 (Lowes) 4,17 долл. США (1) 4,17 долл. США
7 1-дюймовая заглушка из ПВХ (Lowes) 0,89 долл. США (3) 2,67 долл. США
8 Большая коробка для проектов (Amazon) $ 32,99 (1) $ 32,99
9 циферблатов переменного резистора (Amazon) $ 12,86 (1) $ 12,86
10 зуммер (упаковка из 6) (Amazon) 5,99 $ (2) 11,98 $
11 переменных резисторов (Amazon) 16,99 $ (1) 16,99 $
12 ПВХ 1 муфта (Lowes) 0,60 $ (3) 1,80 $
13 разветвитель питания Arduino (Adafruit) 5,00 $ (1) 5,00 $
14 Винтовые клеммные колодки (Amazon) 32,00 $ (3) 96,00 $
15 Кабельный ввод (20 шт.) (Amazon) 12,00 $ (1) 12,00 $
16 Выключатель питания (pk 5) (Amazon) 8,50 долл. США (1) 8,50 долл. США
17 Кнопка втулки (pk 5) (Amazon) 10,99 $ (1) 10,99 $
18 Кабель питания (Adafruit) 8,00 $ (1) 8,00 $
19 Корпус Arduino (Amazon) 10,00 $ (3) 30,00 $
20 пластиковых хомутов (12) (Lowes) 1,04 $ (1) 1,04 $
21 Дверные петли (Lowes) 3,08 $ (5) 15,40 $
22 болта: 6 / 32x3 / 8 (упаковка 14) (нижние) 1,28 долл. США (1) 1,28 долл. США
Расходные материалы
1 Термоусадка (100 футов) (Amazon) 7,50 долл. США (1) 7,50 долл. США
2 Цемент ПВХ (Lowes) 5,80 $ (1) 5,80 $
3 жидких гвоздя, 10 унций клея (Lowes) 1,80 $ (1) 1,80 $
4 припоя (0,35 унции, 0,031 дюйма) (Amazon) 3,50 доллара США (1) 3,50 доллара США
ИТОГО: 482,99 $
Инструменты
я. Инструмент для зачистки проводов
II. Паяльник с припоем
iii. Дрель
iv. Дремель, горячий нож или пила (для отверстия ЖК-дисплея в коробке)
v. Фрезы или пила для ПВХ
vi. Рука помощи (держатель для проволоки с зажимом из крокодиловой кожи)
vii. Маленький разводной ключ
viii. Маленькая отвертка Phillips
ix. Кусачки с игольчатым носом
Икс. Компьютер с программой Arduino и кабелем
Навыки и умения
Как бы я ни старался избегать этого для новичка, в этом проекте есть места, требующие пайки. Если у вас нет большой практики в пайке, перейдите по этой ссылке, чтобы получить отличные инструкции, чтобы освоить этот относительно простой навык.
Безопасность
В отношении проекта применяется стандартный протокол безопасности; паяйте только в хорошо проветриваемом помещении и используйте соответствующие средства защиты при использовании инструментов (защитные очки, перчатки и т. д.). С точки зрения боевых искусств, это руководство содержит следующий отказ от ответственности: этот проект не следует использовать, кроме как под руководством компетентных инструкторов по боевым искусствам. Читатель создает и использует это учебное пособие на свой страх и риск и несет ответственность за обеспечение качества / безопасности машины перед каждым использованием.
Шаг 2: Изготовление датчиков руки
Общие шаги:
Я использовал сверхпрочный ПВХ для рук; они работали хорошо, без следов износа.
Для оружия:
1. Вырежьте три секции 1-дюймового ПВХ Schedule 80, XX дюймов каждая.
2. Приклейте ПВХ к каждой детали по 1 дюймовой муфте.
Для сенсорных головок:
1. Вырежьте три 2,5-дюймовых секции из 1-дюймового ПВХ Schedule 80.
2. Просверлите отверстие размером XX дюймов в центре 1-дюймовой крышки из ПВХ для большого светодиода. Здесь не торопитесь; Если вы сделаете это правильно, светодиод будет так плотно прилегать, когда его вставят, не потребуется никакого клея (используйте отвертку с плоской головкой между выводами, чтобы вставить его).
3. После установки датчиков приклейте колпачок к 2,5-дюймовой трубе. Я предпочитаю не приклеивать сенсорную головку к рукам на тот случай, если мне когда-нибудь понадобится поработать с ними.
Для датчиков:
1. Вот сложная часть; их нужно припаять для надежности. Я согнул концы проводов в маленькие крючки для зуммера / светодиодов, чтобы они были механически прочными. Для акселерометров рука помощи просто необходима; При необходимости обрежьте излишки прилипания с другой стороны боковыми ножами. Я использовал отрезок кабеля длиной 12 футов на каждую руку. Цветовой код, который я использовал для 8-жильного кабеля к каждой руке, следующий:
A. Красный - напряжение зуммера / светодиода
б. Черный - Зуммер / Заземление светодиода
c. Белый - Питание акселерометра 5В
d. Зеленый - масса акселерометра.
д. Желтый - сигнал оси X акселерометра.
е. Оранжевый - сигнал оси Y акселерометра.
g. Коричневый - сигнал оси Z акселерометра.
h. Blue - Тест акселерометра (Не используется; см. ниже)
сборка
1. ПРИМЕЧАНИЕ. Перед сборкой рычагов вы захотите подключить их к Arduino и запустить тестовую программу, чтобы убедиться, что все читается. Детали и программа на этапе «тестирования».
2. После того, как комбинация датчика и светодиода / зуммера будет спаяна и светодиод вставлен в отверстие в колпачке, наденьте 2,5-дюймовый ПВХ на кабель и вставьте его в колпачок. Если вы уверены, вы можете заполнить колпачок силиконом / строительным клеем для прочности и прочности. Лично я набивал поролоном колпачки, пока все не стало плотно, затем наложил кусок ленты на верх, чтобы все это удерживалось. Таким образом, если я хочу / нуждаюсь в внесении изменений, они не будут захоронены.
В глубине:
Эти датчики обеспечивают аналоговый выход от 0 до 3,3 В. Они измеряют от -200 г до + 200 г, поэтому 0 г выдает 1,65 В. Они также измеряют по всем трем осям (x, y, z).
Что касается светодиода / зуммера, мне жаль, что я не прикрепил их к отдельным проводам, вместо того, чтобы соединять их последовательно с синим проводом, идущим к испытательному контакту акселерометра (который не использовался). Если вы хотите это сделать, вам придется немного изменить программы, чтобы установить 2 цифровых выхода на высокий уровень, а не только один.
Шаг 3: Изготовление датчиков багажника
Для концевых выключателей
1. У моего деревянного манекена уже были ударные накладки (с сайта TigerClaw.com), так что я просто смог их использовать. Однако, если у вашего деревянного манекена нет подкладок, вам нужно будет их изготовить / купить. Конечно, у оригинального деревянного манекена не было обивки, только дерево, так что вы могли использовать доску, если были склонны.
2. Прикрепите дверные петли (2 для больших подкладок, 1 для малых) с помощью болтов №10-24x1”. Если хотите, неплохая идея - какой-нибудь красный замок.
3. Что касается клемм, я намотал провод на винт с головкой и головкой 1-1 / 2 (из набора анкеров для гипсокартона), зажатый между двумя шайбами крыла. Мне пришлось использовать сверло, чтобы немного увеличить отверстия в шайбах крыльев.
4. На пару дюймов ниже того места, где будет верхняя часть площадки, вставьте клеммы в заднюю панель на расстоянии примерно 3 дюйма друг от друга. На соответствующей высоте на задней части ударной планки прикрутите 6-дюймовую стальную скобу (деталь Lowes № 64735).
5. Наконец, возьмите два 3-дюймовых винта и добавьте шайбы (для защиты колодки), протолкните их через отверстия колодки и установите пружины сзади. Ввинчивайте их в плату, пока плата не пройдет всего 1/2 дюйма, прежде чем скоба соединится с клеммами. Плата должна свободно перемещаться по винту (у 3-х дюймовых винтов верх у головки не имеет резьбы).
6. Примечание. Я решил, что три кабеля от концевых выключателей будут соединены в один 8-жильный кабель для подключения к коробке, и то же самое для трех кабелей, идущих от головок PCV индикатора. Это совершенно необязательно и не нужно. Я использую немного меньше кабеля, но если вы решите, у меня будет больше работы.
Для акселерометра
1. Я решил установить задний акселерометр в небольшой жестяной коробке Altoids (для облегчения доступа при необходимости).
2. Просверлите отверстие в дне формы и выровняйте ее с помощью молескина.
3. Протолкните кабель (10 футов) через отверстие и припаяйте акселерометр, используя то же цветовое соглашение, что и рычаги. Используйте анкер для кабельной стяжки внутри олова для снятия напряжения.
4. Набейте контейнер пеной, чтобы все было на месте, закройте банку и заклейте изолентой.
5. Прикрепите к задней части деревянного манекена с помощью небольшого куска ремня и двух винтов диаметром 1 дюйм.
Для комбинаций светодиод / зуммер
1. Светодиод и зуммер будут спаяны вместе так же, как и ручки для каждого из трех «индикаторов»; впрочем, акселерометра не будет в каждом, как в дужках. Это связано с тем, что весь ствол ощущает вибрацию любой пораженной цели, поэтому было бы трудно различить, какая была поражена; для этого данные от одного датчика соединяются с концевым выключателем, чтобы определить, какая цель была поражена и силу. Для этого приложения вы можете использовать ¾ "PVC и колпачок вместо 1" для уменьшения занимаемой площади, если хотите.
2. Просверлите отверстие в древесине полностью точно по диаметру ТРУБЫ из ПВХ (не заглушки), которую вы используете. Отрежьте кусок трубы, длина которого ровно столько, чтобы пройти через доску, с фитингами на каждом конце. Я использовал горячий клей, чтобы закрепить кабель в патрубке трубы для снятия натяжения. Для подгонки спины у меня были под рукой отводы под углом 90 градусов, поэтому я использовал их; крышка с просверленным отверстием может сделать вид более законченным.
3. Такое решение является уникальным для данного типа деревянных манекенов (с плоской доской); если у вас круглый стиль, вы можете просверлить неглубокое отверстие для головки из ПВХ (без заднего фитинга) и узкое сквозное отверстие для кабеля. Затем заклейте его столярным / строительным клеем.
Шаг 4: Изготовление корпуса
У меня был неиспользованный ящик, который работал в этом проекте, поэтому тот, который я указал в списке деталей, будет другим. Хотя кабельные вводы технически не требуются, я определенно порекомендовал бы их, чтобы шнур натягивался, а не соединения Arduino.
Во-первых, точно измерьте, где вы хотите, чтобы дисплей и экран располагались на передней панели. Я включил PDF-файл на первом этапе шаблона для этикеток циферблата. Просто распечатайте их на транспортной этикетке на всю страницу. Сделав это, я зажал этикетку между двумя тонкими досками и зажал их; потом просверлил отверстия для циферблатов сразу во всем. Это сделано для чистых круглых отверстий, а не для использования точного ножа. Записка; на циферблатах есть крошечные язычки сбоку, чтобы они не вращались. Вы можете отрезать их и просто убедиться, что они очень плотные, или вы можете сделать, как я, и просверлить крошечные отверстия рядом с каждым основным отверстием, чтобы оно вошло.
Что касается отверстия для экрана, я на самом деле использовал шлифовальный станок, чтобы сделать прямые разрезы (и немного промахнуться, как вы можете видеть на готовой фотографии).
Теперь у моей коробки была металлическая задняя пластина (съемная пластина для крепления компонентов). Я не хотел монтировать Arduino непосредственно на металл и рисковать закоротить соединение, поэтому я взял прозрачные пластиковые корпуса Arduino, перечисленные в разделе деталей. Однако с перечисленным мною пластиковым корпусом это не будет проблемой, и вы можете обойтись без них. Ардуино просто прикручиваются маленькими болтами 6-32x3 / 8”. Обратите внимание, я оставил между ними место для анкеров кабельных стяжек.
Я получил заметку на ЖК-экране; через заднюю часть было много лишней «проволоки», которая мешала креплению; Я просто отрезал лишнее кусачками. Кроме того, ЖК-дисплею нужны два контакта слева, подключенные для работы подсветки. Если у вас есть джемпер - отлично. В моем нет, поэтому я просто припаял к ним крошечный кусочек или провод.
Еще одно замечание: я включил шкалу для калибровки; что думал о будущих улучшениях. Я планирую сделать процедуру калибровки подпрограммой в основной программе, где вы используете циферблат для корректировки показаний до фактических, а затем программа сохраняет их в энергонезависимой памяти Arduino. Вы попадете в калибровку, нажав и удерживая кнопку пуска.
Шаг 5: Проводка и подключения
Общие шаги:
Я вложил средства в клеммные колодки, чтобы они работали поверх Arduinos; для меня это того стоит. Они обеспечивают надежность паяного соединения с гибкостью макетной платы. Если вы уверены в своей пайке, вы можете купить Arduinos без установленных разъемов и просто припаять его прямо к плате.
Для всех подключений к клеммным колодкам важно, чтобы провода были либо лужеными (на конец добавлено небольшое количество припоя, чтобы сделать выступ и менее хрупким), либо использовать наконечники. Учитывая, что я протягивал их через небольшие кабельные вводы, я выбрал лужение, потому что оно меньше.
Для соединений внутри коробки я использовал два коротких отрезка 8-жильного кабеля. Обратите внимание, как я разместил анкеры для кабельных стяжек; вы хотите, чтобы крышка открывалась полностью, не натягивая кабель, но вы также хотите, чтобы крышка закрывалась, не сжимая кабель пополам.
Как показано на рисунке выше, основной PDF-файл также включает в себя схему соединений. Здесь очень помогают анкеры для кабельных стяжек; моя коробка уже выглядит как крысиное гнездо, но я могу проследить, куда идет каждый провод. Без якорей почти наверняка что-то не так. Важно: при установке якорей имейте в виду, что вы хотите иметь возможность добраться до портов питания и программирования портов позже.
Трехглавый адаптер питания от Adafruit подключается к каждой плате, а дополнительные просто убираются. Хотя у меня есть переключатель питания на крышке, я решил, что купленный переключатель для тестирования проще, и использовал его в конечном продукте.
Практически каждый кабель, подключаемый к Arduinos, будет выходить из коробки или из крышки; Исключение составляют шинные кабели. Для шины I2C и общего заземления потребуются собственные перемычки. Кроме того, есть провод, идущий от вывода 3.3V к выводу AREF на каждом ведомом устройстве, для которого потребуется установить перемычку.
В глубине:
Аналоговые выводы Arduino возвращают целое число от 0 до 1023 в зависимости от ссылки. Эталонное значение по умолчанию - 5 В. Таким образом, 0V вернет 1, а 5V вернет 1023. Однако акселерометры выдают от 0 до 3,3 вольт. Хотя по умолчанию будет работать, вы теряете некоторое разрешение, если не используете полную шкалу. Связав контакты вместе и добавив в программу команду для пользователя аналогового опорного вывода, 0-123 равняется 0-3,3 В, что дает гораздо лучшее разрешение. Пример: на основе 5 В и датчика от -200 до + 200g, показание 500 против 501 будет разницей в 4,888 мВ или 0,592 г. Используя 3,3 В в качестве эталона, изменение от 500 до 501 составляет 3,23 мВ или 0,39 г; намного лучше.
Шаг 6: программирование
Общие шаги:
Ниже вы найдете программы (эскизы) Arduino для каждой платы, а также программы тестирования и калибровки. Должно быть достаточно "подключи и работай", за одним исключением; есть две разные библиотеки, которые можно использовать для управления ЖК-экраном I2C. Оба хороши, но не взаимозаменяемы. Важно, чтобы вы загрузили тот, который использовал я, прежде чем пытаться загрузить программы. Перейдите по этой отличной ссылке, чтобы получить пошаговые инструкции по установке на свой компьютер:
Если вы новичок в Arduinos, вам необходимо загрузить программное обеспечение Arduino (IDE), которое можно найти здесь: https://www.arduino.cc/en/Main/Software. После того, как вы откроете эскизы ниже в программе, следуйте этим инструкциям, чтобы загрузить эскиз на устройство: https://www.dummies.com/computers/arduino/how-to-upload-a-sketch-to-an-arduino /
Я обнаружил, что при переключении между несколькими Arduinos будут предоставлены разные порты. Таким образом, вам может потребоваться снова выбрать правильный порт при переключении того, какой Arduino подключен. Также для тестирования программы будут отправлять сообщения обратно на компьютер с помощью «последовательных» команд. Чтобы просмотреть их, выберите «Монитор последовательного порта» в разделе «Инструменты» программы и выберите 9600 в качестве скорости передачи данных.
В глубине:
В этом проекте используется протокол I2C (иногда называемый TWI) для обмена данными между Arduinos и ЖК-экраном. Это позволяет мастеру подключаться к 255 «ведомым» устройствам. Это хороший, простой и быстрый протокол, который использует только 2 провода. Однако это не протокол на большие расстояния, длина которого составляет всего около метра. Это означает, что он предназначен только для внутреннего использования в коробке; вы не можете расположить экран на расстоянии 10 футов и ожидать, что он будет работать.
Важное замечание: многие ЖК-экраны имеют адрес I2C 0x27, однако это не всегда так. Если ваш экран не работает, воспользуйтесь этим отличным пошаговым руководством, чтобы узнать адрес вашего ЖК-дисплея:
Вот ОЧЕНЬ упрощенный взгляд на программу (скетч) и ее настройку:
Мастер
1. Создайте переменные и настройте библиотеки (настройка, при первом включении)
2. Считайте циферблаты и масштабируйте их вводы; отобразите на экране и дождитесь нажатия кнопки пуска.
3. Нажата кнопка «Пуск»! Запустить таймер раунда.
4. Создайте случайное число от 1 до 6 (номер датчика; 1-3 для рук, 4-6 для туловища) и отправьте его подчиненному:
а. РАБ: Сиди здесь и жди числа.
б. Номер получен! Начать мониторинг датчиков, чтобы превысить пороговое значение.
c. Датчик превысил порог! Продолжайте следить, чтобы получить максимальную силу.
d. Совпадает ли пораженный датчик с номером, отправленным мастером (была ли поражена правильная цель)? Если это так, отправьте пиковую силу обратно. Если нет, отправьте обратно «1».
5. Если ответ не один, запишите значения. Если это один, прибавьте 1 к счетчику «пропущенных».
6. Срок действия таймера раунда истек? Если нет, вернитесь к шагу «случайное число» и начните заново.
7. Раунд завершен! Вычислить статистику (коэффициент попадания, средняя сила удара и т. Д.)
8. Отобразите статистику на ЖК-экране. По истечении тайм-аута вернитесь к шагу «считывание циферблатов».
Шаг 7: Калибровка
Это устройство будет записывать силу, которую ощущают сенсоры, что вполне подходит для ваших личных тренировок. Просто сравните свой личный номер на той же машине, чтобы увидеть, улучшились ли вы. Однако, если один из них есть у более чем одного человека, и вы хотите сравнить свои числа значимым образом, вы захотите использовать импульс вместо g. Поскольку жесткость, вес и материалы каждого деревянного манекена будут влиять на силу, воспринимаемую датчиками, вам необходимо откалибровать машину для вашей установки. Ниже показано, как выполнить двухточечную калибровку вашей системы.
Чтобы создать импульс для калибровки, вам понадобится известный вес, движущийся с известной скоростью. Я сделал это с помощью мячей для упражнений размером 2 фунта (для рук) и 6 фунтов (для туловища). Я привязал к ним веревку и использовал их как маятник. Если вы знаете длину веревки и угол, под которым они начинаются, вы можете рассчитать скорость, с которой они будут двигаться в нижней части своего замаха. Ниже прилагается электронная таблица, которая автоматически рассчитает результирующий импульс на основе ваших настроек.
Загрузите программу калибровки (на этапе программирования) в мастер Arduino. Будет написано «Датчик 1». Держите мяч под углом 90 градусов так, чтобы конец веревки находился прямо над мишенью. Отпустите и позвольте весу поразить цель. На экране будет отображаться записанная сила в течение нескольких секунд (запишите это), а затем перейдет к следующему датчику. Повторите это для всех датчиков, используя меньшее усилие (я использовал веревку длиной 10 дюймов до середины груза), а затем повторите процесс снова, используя больший вес (я использовал длину веревки 17 дюймов).
После того, как все значения будут записаны, откройте основную мастер-программу и введите значения примерно на 2/3 меньше (как отмечено комментарием) в функциях «карты».
Загрузите новую программу в мастер, и все готово!
Примечание: я планирую дальнейшее улучшение, при котором весь этот процесс будет встроен в основную программу; см. шаг «Изготовление корпуса».
Шаг 8: Эксплуатация
Инструкция по применению
я. Включите устройство, щелкнув черный переключатель внизу.
II. Через несколько секунд на экране отобразятся настройки вашего раунда:
1-й циферблат: время раунда. От 1 до 5 минут, как долго вы хотите, чтобы раунд длился? Время отображается на экране в секундах (300 секунд равны 5 минутам).
2-й набор: Скорость: от 5 секунд (легкий) до 0,25 секунды (жесткий); как быстро нужно ударить по нему, прежде чем он будет засчитан как промах? Время отображается в миллисекундах; 5000 миллисекунд равны 5 секундам.
3-й набор: Требуемая сила: от 0 (легкий) до 200 (жесткий); как сильно нужно ударять по сенсорам, чтобы это засчитывалось как попадание?
4-й диск: Калибровка: Не требуется, за исключением начальной настройки.
iii. Перемещайте диски, чтобы изменить значения на желаемые.
iv. Нажмите кнопку пуска, чтобы начать; раздастся звуковой сигнал обратного отсчета.
v. Когда загорится светодиод, поразите цель как можно быстрее и сильнее; повторяйте этот процесс, пока не услышите сигнал «Round Over» (три длинных звука зуммера).
vi. Статистика будет отображаться на экране после раунда, да и прокрутите; не нужно ничего делать. После отображения всей статистики система сбросится на новый раунд.
Шаг 9. Будущие изменения и возможности обновления
Как упоминалось в предыдущих шагах, я с нетерпением жду возможности включить процедуру калибровки в качестве подпрограммы в основную программу, чтобы ее можно было легко выполнять на лету, не меняя программы в главной программе.
Кроме того, делая это снова, я бы сделал зуммер и светодиод на их собственных цифровых контактах вместо того, чтобы соединять их вместе, чтобы я мог лучше контролировать звук из зуммеров. Это потребует незначительных изменений в коде ведомого устройства, но ничего огромного (сделайте два выхода на высоком уровне вместо 1).
Кроме того, можно использовать токопроводящий коврик, на котором вы будете стоять во время использования машины, а затем обернуть манекен кусочком фольги или олова. Когда вы касаетесь мишени, стоя на циновке, образуется полный контур. Другой дизайн и со своими усложнениями. Однако, если вам просто нужно иметь закругленные мишени вместо плоских подушек, которые у меня есть, это может быть вариантом.
Шаг 10: Дополнительные ресурсы / извлеченные уроки
При создании этого проекта я наткнулся на множество хороших ссылок на информацию и сохранил их; вот этот список для вашего удовольствия:
Объяснение TWI и I2C
www.i2c-bus.org/twi-bus/
Сравнение SPI и I2C
www.lifewire.com/selecting-between-i2c-and-spi-819003
Технические данные Arduino Mega
www.mouser.com/catalog/specsheets/ArduinoBoardMega2560.pdf
Как сделать Arduino Master / Slave с I2C
www.arduino.cc/en/Tutorial/MasterReader
www.arduino.cc/en/Tutorial/MasterWriter
На I2C первые 7 адресов зарезервированы; адрес может начинаться с 8. В LSD-дисплей встроен адрес 20.
Распиновка ArduinoMega
www.circuitstoday.com/arduino-mega-pinout-schematics
Вывод питания 3,3 В имеет ограничение 50 мА
5 В поступает прямо от блока питания
Аналоговое чтение - разрешение
www.arduino.cc/reference/en/language/functions/analog-io/analogread/
www.arduino.cc/reference/en/language/functions/analog-io/analogreference/
Характеристики памяти Arduino Mega: Flash 256 Кбайт (из которых 8 Кбайт используется для загрузчика), SRAM 8 Кбайт, EEPROM 4 Кбайт
www.arduino.cc/en/tutorial/memory
ATmega2560 в Mega2560 имеет больший объем памяти:
Учебное пособие по акселерометрам Adafruit
cdn-learn.adafruit.com/downloads/pdf/adafruit-analog-accelerometer-breakouts.pdf?timestamp=1564456210
Примеры ЖК-дисплеев I2C
www.electronoobs.com/eng_arduino_tut4.php
create.arduino.cc/projecthub/Oniichan_is_ded/lcd-i2c-tutorial-664e5a
Отличное видео о библиотеке I2C для LCD
www.youtube.com/watch?v=B8DNokj9LnY
I2C LCD Пошаговое руководство с поиском адреса
forum.arduino.cc/index.php?topic=128635.0
2-точечная калибровка Arduino
learn.adafruit.com/calibrating-sensors/two-point-calibration
Калькулятор маятника
www.endmemo.com/physics/spendulum.php
Калькулятор импульсов
www.ajdesigner.com/phpimpulse/impulse_equation_impulse.php#ajscroll
Ниже приведены извлеченные уроки; Что касается меня, у меня был проект, основанный на времени, с графиком, бюджетом и т. д., поэтому некоторые из них будут специфичны для этих аспектов.
Стратегии и процессы, которые привели к успеху
Начав работу над проектным предложением в начале недели, я смог подготовить его, оставив 2 свободных дня. Кроме того, использование исследования затрат для определения поставщиков позволяет сократить время на этапе закупок.
Выделение времени на подробное описание элементов затрат / графика в предложении позволило начать более продвинутое планирование.
Ежедневный мониторинг оценок позволил относительно быстро обработать запрос на повторную отправку задания на третьей неделе.
Работая с опережением графика проекта, он снизил рабочую нагрузку и стресс при выполнении заданий на текущей неделе.
Выделение и выравнивание ресурсов показало, на каких неделях ресурсы исчерпаны, а на каких неделях их избыток; это может быть использовано, чтобы определить, какие недели / задачи могут иметь дополнительные ресурсы, чтобы сдвинуть график вперед и снять стресс от тяжелых недель.
Заказывая известные необходимые компоненты, это дало время для ознакомления с технологиями отдельных частей, сокращая время обучения для будущих задач.
Выбрав программное обеспечение для создания схематических диаграмм, которое производит конечный продукт, который будет использоваться в одном из конечных результатов, можно было избежать повторной работы за счет передачи схемы между системами.
За счет использования подручных материалов стоимость первоначального прототипа значительно снизилась.
Использование клеммных колодок в конструкции вместо пайки сэкономило общее время в проекте, позволив «окончательное наращивание» схемы с возможностью изменения гибкости по мере необходимости во время тестирования.
Написав кучу небольших программ «тестирования» для проверки физического наращивания по мере его продвижения, можно было разделить накопление на две отдельные фазы; Железо и софт. Когда пришло время писать код, было известно, что оборудование исправно, и усилия по устранению неполадок можно было сосредоточить исключительно на программном обеспечении.
Кроме того, цветная маркировка кабелей на отдельных датчиках изолентой, а также на их концах, позволила подтвердить, что они правильно подключены внутри коробки.
Области потенциального улучшения
Текущий процесс: требуется чтение, запись и отправка. Должен быть: прочитать задание требует, записать задание, повторно прочитать требования и отправить. Это позволит избежать возможных переделок.
WBS в исходном предложении был выполнен в Excel (из-за незнания Project); продвижение вперед и выполнение этого в Project сэкономило бы время и силы на 4-й неделе.
Возможно, можно было разделить закупку на два этапа в зависимости от того, какие компоненты были общими для всех рассматриваемых вариантов конструкции, что позволило бы заранее закупить известные детали.
При первоначальном создании расписания помните, что если у вас есть представление о том, какие ресурсы будут ограничены, убедитесь, что задачи с большим объемом ресурсов не планируются одновременно, что сэкономит время на выравнивании / настройке позже в процессе.
Периодического обзора WBS недостаточно для целей проекта; в будущем, как только будет установлено окончательное расписание, внесите все критические даты в личный календарь с уведомлениями.
Был начат неформальный общий исследовательский документ со ссылками на информацию, ресурсы и исследования по конкретным проектам. Запуская этот документ с самого начала, если бы проект сэкономил время, пытаясь повторно найти информацию.
Использование непроверенных технологий было признано опасным и сбылось (токопроводящие маты). Для любой непроверенной технологии в будущем, если будет дешевый вариант 2, подумайте о приобретении деталей для обоих вариантов, чтобы снизить риск.
По оценкам, большая часть времени отводилась на сборку, тестирование и т. Д. - не хватало времени на документацию. Оформление документов / административное время требует больше времени, чем первоначально предполагалось.
Было бы хорошо, если бы компоненты были как можно более независимыми. В отличие от предыдущих тестов, звук зуммеров был более высоким и не таким громким при нарастании. Наличие зуммеров и светодиодов на разных выходных контактах позволило бы индивидуальную тонкую настройку с тривиальным дополнительным объемом кода.