Как сделать самодельный пистолет из Digispark и сломанной игрушки
При большом изобилии пластиковых игрушек, современные дети не ценят их. В следствии чего игрушки очень быстро надоедают или их просто ломают. У моего ребенка есть с пяток пистолетов из которых он играет одним. Взял я один из таких пистолетов и решил его переделать. Для переделки мне понадобились:
В общим из старых вещей и недорогих комплектующих из Китая на сумму 120 руб. (это мои затраты ваши могут быть другими) получилась интерактивная игрушка.
Корпус пистолета пришлось доработать. Удалил все лишние перегородки и выпилил отверстие для выключателя. Выключатель нужен для выключения пистолета когда ребенок не будет играть. Это сэкономит заряд батареек. Можно конечно выпоят с Digispark светодиод питания и при бездействии переводит в режим ожидания. Но я пока не очень хорошо освоил данную отладочную плату.
Все собрал по схеме:
Скетч для пистолета на Digispark
int led_0 = 0; // пин подключения Led1
int led_1 = 1; // пин подключения Led2
int led_2 = 2; // пин подключения Led3
const int buttonPin = 3; // номер входа, подключенный к кнопке
int soundPin = 4; // объявляем переменную с номером пина спикера
// переменные
int flag = 0; // флаг Led
boolean open = true; // флаг, включения
int interval[6]={50, 120, 90, 240, 150, 50}; // интервал включения/выключения LED
void setup() {
//выводs на выход
pinMode(led_0, OUTPUT);
pinMode(led_1, OUTPUT);
pinMode(led_2, OUTPUT);
// инициализируем пин, подключенный к кнопке, как вход
pinMode(buttonPin, INPUT_PULLUP);
pinMode(soundPin, OUTPUT); //объявляем пин как выход.
}
void loop() {
boolean current = digitalRead (buttonPin); // считываем данные с кнопки
if(current)
{
for (int x=0; x<6; x++) { // цикл 6 проходов
if(flag > 3)
flag = 0;
if (open) // если true
digitalWrite(flag, HIGH);
else // иначе
digitalWrite(flag, LOW);
delay(interval[x]); // Ждем
if (x == 5) // если последний проход по циклу
flag++; // передаем слово (меняем текущий пин)
open = !open; //меняем false на true и наоборот;
if(open)
tone(soundPin, 500); // включаем звук частотой 500 Гц
else
tone(soundPin, 100); // включаем звук частотой 100 Гц
}
}
else
noTone(soundPin); // выключаем звук
}
Ребенок радостно играл примерно дней 5, не выпуская пистолет из рук. И тут он решил взять его в детский садик. И всего один день в садике превратил его вот в это:
Что в садике с ним сделали? Как там играют? Вроде бы в садике игрушки тоже пластиковые и при этом целые. По просьбе ребенка пистолет я восстановил. И он продолжает радовать ребенка.
Минутка программирования в Arduino IDE
А вы используете конструкцию:
if (условие 1)
{
// выполнять действие A
}
else if (условие 2)
{
// выполнять действие B
}
else
{
// выполнять действие C
}
Пишите ваши примеры. Мой ответ будет в следующей статье.
Спасибо за информацию.Все кратко а самое главное понятно. А то заходишь на какой нибудь сайт и там 10километров текста. Да и не везде найдешь такую полезную информацию.
#2 Гость: Анатолий Катомка (20 февраля, 2019 в 12:28)
Отличная и понятная статья. Я поднакопил парочку сломанных игрушек ребёнка. С помощью этой статьи сделаю новую. думаю и он мне поможет.
#1 Гость: Юлия Яковлева (20 февраля, 2019 в 12:24)
Спасибо за информацию мне очень пригодилась. У нас с мужем годовщина свадьбы хотела подарить что-то особенно, а так как он давно мечтал о пистолете, сделала его сама. Да и меня получилось, потому что все просто и доступно написано.
Комментарии
Войдите или Зарегистрируйтесь И Вы сможете общаться на форуме и оставлять комментарии без капчи.