Whack - A - Towel (Игра подходит как для людей, так и для...

Источник:

Последние несколько лет я учился в академии мехатроники моей школы, изучая STEM. К сожалению, я не смог сделать это в последний год обучения в старшей школе, поэтому решил, что мне нужен новый проект. За несколько дней до окончания конкурса я наткнулся на него и подумал, что это будет забавный проект, позволяющий завершить все, что я создал в старшей школе. Я хотел использовать что-то новое в коде и создать САПР, которая бросит мне вызов.

Итак, я сделал это, потому что наша семейная собака замечательная, но в то же время очень активная. Он всегда влезает в дела, особенно когда мы выходим из дома. Одно из его любимых — грязные полотенца в прачечной (отсюда и название). Итак, я работаю над созданием игрушки, которая позволит ему не портить полотенца и при этом будет занимать его. Итак, я создал меньшую первую версию игры, в которой о�� может попытаться получить кусок ткани или небольшую игрушку, в данном случае помпон. Эта первая итерация будет намного меньше готового продукта, но в нее все равно можно будет играть, чтобы тем временем уберечь его от неприятностей.

Функции
Перечислите ключевые особенности и функциональные возможности проекта. Некоторые примеры могут быть:
● Автоматическое отключение, когда он не используется, для экономии заряда батареи.
● Настраиваемый приз для домашних животных, которые могут попытаться получить.
● Несколько вариантов печати. В комплект входит полная модель, модель, которую необходимо склеить, или модель с винтами.

● Развлечения и стимуляция для гиперпитомцев.

Аппаратное обеспечение:

Плата Arduino (я использовал UNO)
Провода
Макетная доска или паяльная плата
Резистор 4-220 Ом
Резистор 3-1 кОм
пьезо
Ультразвуковой датчик
3 светодиодных фонаря
3 кнопки
3 серводвигателя
клей или шурупы для сборки
Whack — A — модель полотенца, напечатанная на 3D-принтере

Программное обеспечение:

Arduino IDE — программирование на C++
Тинкеркад — схемы
Шапр3д — моделирование

Схема подключения
Вот упрощенная версия

Вот правильная версия

/*
Что — А — Полотенце
Когда животное находится рядом, ультразвуковой датчик обнаружит его и начнет игру. Цель состоит в том, чтобы нажать кнопку, связанную с предметом награды/светом, который находится в поле зрения. После нажатия кнопки будет выбран другой. Это помогает домашним животным гадать и интересоваться.
*/

//Переменные
//для каждого компонента, чтобы код был простым для понимания

//Именование и включение библиотеки сервоприводов — сервоприводы помещают объект вознаграждения в поле зрения питомца, чтобы мотивировать его
#include
Сервопривод1;
Сервопривод2;
Сервосерво3;

//Кнопки
const int button1 = 5;
const int button2 = 6;
const int button3 = 7;
//Piezo — указывает, что кнопка нажата
const int пьезо = 8;
//Альтернативный сигнал, позволяющий питомцу определить, какую кнопку нажать
const int светодиод1 = 9;
const int светодиод2 = 10;
const int светодиод3 = 11;
//Ультразвуковой датчик, определяющий приближение домашнего животного
const int echo1 = 12;
const int trig1 = 13;

//Вывод — переменная случайного выбора
интервал вывода = 1;

недействительная настройка()
{
//Объявление каждого компонента как входного или выходного, чтобы информация собиралась или отправлялась
servo1.attach(3, 500, 2500);
servo2.attach(2, 500, 2500);
servo3.attach(4, 500, 2500);

pinMode (кнопка1, ВХОД);
pinMode (кнопка2, ВХОД);
pinMode (кнопка3, ВХОД);
pinMode(пьезо, ВЫХОД);
pinMode (led1, ВЫХОД);
pinMode (led2, ВЫХОД);
pinMode (led3, ВЫХОД);
pinMode(echo1, INPUT);
pinMode(trig1, ВЫХОД);

//Устанавливаем каждый сервопривод в базовое положение
серво1.запись(0);
servo2.write(0);
servo3.write(0);
//Набор последовательных мониторов для любой отладки
Серийный.начал��(9600);
задержка (500);
}

недействительный цикл()
{
//Ультразвуковой датчик отправляет и принимает импульс для определения расстояния, что гарантирует работу программы только во время использования
большая продолжительность, расстояние;

digitalWrite(trig1, LOW);
задержка(2);
digitalWrite(trig1, ВЫСОКИЙ);
задержка(2);
digitalWrite(trig1, LOW);

длительность = импульсВход(эхо1, ВЫСОКИЙ);
расстояние = (длительность/2)/29,1;

если (расстояние < 100)
{
//Если рядом находится питомец, программа запустится
старт_программы();
}
еще
{
//Если нет, устанавливает все компоненты в базовые позиции
ноТон;
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
серво1.запись(0);
servo2.write(0);
servo3.write(0);
}

}

во

09:39
27
Нет комментариев. Ваш будет первым!

Ссылка появится после регистрации

Похожие модели

Посещая этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.