Оглавление:

Танк-шутка: 5 шагов
Танк-шутка: 5 шагов

Видео: Танк-шутка: 5 шагов

Видео: Танк-шутка: 5 шагов
Видео: Алексей Матов - Нас отсюда не подвинуть 2024, Ноябрь
Anonim
Шутливый Танк
Шутливый Танк

Это проект, который я реализовал в моей школе HKU, он потребовал от нас что-то сделать с Arduino Uno. Я хотел сделать что-то, что занимало бы мое любимое дело, заставляло людей смеяться. Поэтому решил сделать коробку для шуток, которая подкинет вам шутку, но то, что она даст вам, будет зависеть от того, что измеряли пара сенсорных модулей в данный момент времени. Чтобы сделать его более индивидуальным, я решил сделать из него танк.

Шаг 1. Получение деталей

Части, которые вам понадобятся для воссоздания этого проекта, будут

  • 1x компьютер с возможностью запуска Arduino IDE
  • 1x Arduino Uno
  • 1x usb-соединительный кабель для Arduino Uno
  • 1x датчик сонара
  • 1x динамик (желательно приличного качества (я использовал тот, который вытащил из динамика bluetooth)).
  • 1x модуль усилителя LM386 (можно сделать это самостоятельно, но я использовал модуль).
  • 1x микрофон LM393
  • 1x LDR
  • 1x светодиод (подойдет любой цвет, но я использовал синий).
  • 4 резистора 1 кОм
  • 1x 2 резистор 7 кОм
  • 1x макетная плата
  • 1x карта micro SD (желательно небольшая (1 или 2 ГБ)).
  • 1x Электродрель.
  • Сверлильная головка 1x 16 мм (желательно для сверления металла).
  • Сверлильная головка 1x 9 мм (также желательно для сверления металла).
  • 1x 1 мм сверлильная головка (опять же, желательно для сверления металла).
  • 1x Модель танка (я использовал Leopard 2 в масштабе 1:35, но и другие чехлы тоже подойдут).
  • Суперклей / горячий клей
  • и довольно много проводов желательно разного цвета.
  • кабельные стяжки (по желанию).

Шаг 2: Подключение

Проводка
Проводка

Нам нужно начать с проводки, изображение представляет собой технический чертеж того, как все это должно быть подключено. Это должно служить вашим планом. Примечание: все порты Arduino имеют имя AP # для каждого порта. Итак, 4-й порт на Arduino - это AP4, порт A0 - это APA0, а порт 6 ~ - это AP6 ~ и т. Д. Все остальные порты названы так, как они указаны на самих модулях.

Шаг 3. Предварительный код

Теперь, прежде чем мы сможем начать использовать код, нам понадобится кое-что. Я рекомендую вам выполнить это руководство с шага 2 по 4.

www.electronoobs.com/eng_arduino_tut8.php

Однако мы не собираемся использовать его код, так как мы собираемся использовать наш собственный. Обратите внимание, что некоторые динамики используют разные частоты. Мой динамик использовал 16-битные аудиофайлы 32 кГц. Поэтому, если ваша речь издает какой-то шум, но не воспроизводит файлы, попробуйте поиграть со своей частотой.

Шаг 4: Код

Теперь мы собираемся загрузить код в Arduino. Скопируйте все это, вставьте в Arduino IDE и загрузите на свой Arduino.

// включает библиотеку для устройства чтения SD-карт. # include "Wtv020sd16p.h" // включает библиотеку, необходимую для датчика сонара. #include // Устанавливает контакты для Arduino. int resetPin = 4; int clockPin = 5; int dataPin = 6; int busyPin = 7; int soundDetectedPin = 12; int lightDetectedPin = A0; // Устанавливает контакты для библиотеки SD-карты. Wtv020sd16p wtv020sd16p (resetPin, clockPin, dataPin, busyPin); // Устанавливает контакты для библиотеки датчиков сонара. Эхолот NewPing (11, 10); // Устанавливает другие входы и устанавливает битрейт программы. пустая настройка () {wtv020sd16p.reset (); pinMode (lightDetectedPin, ВХОД); pinMode (soundDetectedPin, ВХОД); Serial.begin (9600); } // Основная часть программы. void loop () {// Устанавливает промежуточные числа int lightDetectedVal = analogRead (lightDetectedPin); int distanceVal = sonar.ping_cm (); int soundDetectedVal = digitalRead (soundDetectedPin); // Задержка, чтобы проект не продолжал бесконечно использовать динамик. задержка (30000); // Последовательная печать и печать строк, чтобы вы могли легко увидеть, какие значения принимаются модулями датчиков. Serial.print ("Звуковая ценность:"); // Несколько операторов if, чтобы программа воспроизводила разные аудиофайлы в зависимости от значений, измеряемых модулями датчиков. если (soundDetectedVal == 0) {Serial.println (soundDetectedVal); Serial.print ("Расстояние:"); если (distanceVal == 0) {Serial.println (distanceVal); Serial.print ("Легкое значение:"); если (lightDetectedVal> = 1000) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (1); // Еще одна серийная печать, чтобы вы могли видеть, какой именно аудиофайл был воспроизведен. Serial.println ("1 --------"); // Еще одна задержка для воспроизведения аудиофайла на полную длину. задержка (5000); } иначе, если (lightDetectedVal> = 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (2); Serial.println ("2 --------"); задержка (5000); } иначе, если (lightDetectedVal> = 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (3); Serial.println ("3 --------"); задержка (5000); } иначе, если (lightDetectedVal> = 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (4); Serial.println ("4 --------"); задержка (5000); } иначе, если (lightDetectedVal> = 600) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (5); Serial.println ("5 --------"); задержка (5000); } else if (lightDetectedVal> = 500 || lightDetectedVal 0 || distanceVal == NULL) {Serial.println (distanceVal); Serial.print ("Легкое значение:"); если (lightDetectedVal> = 1000) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (7); Serial.println ("7 --------"); задержка (5000); } иначе, если (lightDetectedVal> = 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (8); Serial.println ("8 --------"); задержка (8000); } иначе, если (lightDetectedVal> = 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (9); Serial.println ("9 --------"); задержка (5000); } иначе, если (lightDetectedVal> = 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (10); Serial.println ("10 -------"); задержка (8000); } иначе, если (lightDetectedVal> = 600) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (11); Serial.println ("11 -------"); задержка (6000); } else if (lightDetectedVal> = 500 || lightDetectedVal <= 1000) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (13); Serial.println ("13 -------"); задержка (5000); } иначе, если (lightDetectedVal> = 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (14); Serial.println ("14 -------"); задержка (5000); } иначе, если (lightDetectedVal> = 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (15); Serial.println ("15 -------"); задержка (5000); } иначе, если (lightDetectedVal> = 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (16); Serial.println ("16 -------"); задержка (5000); } иначе, если (lightDetectedVal> = 600) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (17); Serial.println ("17 -------"); задержка (5000); } else if (lightDetectedVal> = 500 || lightDetectedVal 0 || distanceVal == NULL || distanceVal> = 150) {Serial.println (distanceVal); Serial.print ("Легкое значение:"); если (lightDetectedVal> = 1000) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (19); Serial.println ("19 -------"); задержка (5000); } иначе, если (lightDetectedVal> = 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (20); Serial.println ("20 -------"); задержка (5000); } иначе, если (lightDetectedVal> = 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (21); Serial.println ("21 -------"); задержка (5000); } иначе, если (lightDetectedVal> = 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (22); Serial.println ("22 -------"); задержка (5000); } иначе, если (lightDetectedVal> = 600) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (23); Serial.println ("23 -------"); задержка (5000); } else if (lightDetectedVal> = 500 || lightDetectedVal << 500) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (24); Serial.println ("24 -------"); задержка (5000); }}}}

Шаг 5: Дело

Дело
Дело
Дело
Дело

А теперь самое сложное.

Уместить все это в футляр может быть немного сложно, это зависит от того, как вы установили все на свою макетную плату или как вы спаяли вещи вместе. Но вам нужно будет проделать пару отверстий, чтобы датчики могли воткнуться в них. Я положил микрофон (требуется сверло 9 мм) и модуль сонара (необходимо сверло 6 мм) сзади, а LDR - спереди резервуара, но вы можете эффективно установить их в любом месте, если у вас есть место.

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

Я бы рекомендовал поставить динамик в башню. так как там должно быть достаточно места.

На левом изображении выше показано, как я установил Arduino и отпечаток, который я припаял внутри модели Leopard 2. На правом изображении показана большая часть проводки.

Что вы можете сделать, так это просверлить небольшие отверстия в нижней части модели, чтобы закрепить Arduino с помощью кабельных стяжек.

Но если я не ошибаюсь, теперь все готово.

Рекомендуемые: