Оглавление:
Видео: Танк-шутка: 5 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:52
Это проект, который я реализовал в моей школе 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 с помощью кабельных стяжек.
Но если я не ошибаюсь, теперь все готово.
Рекомендуемые:
Танк с дистанционным управлением с 3d принтом !!: 8 шагов (с изображениями)
3D-печатный танк с дистанционным управлением !!: Вы когда-нибудь хотели иметь дистанционно управляемый автомобиль, который может выезжать на бездорожье, и вы даже можете видеть его с камеры обзора от первого лица, тогда этот танк для вас потрясающий. Гусеницы на танке обеспечивают отличное сцепление с дорогой при движении по бездорожью, например по грязи и
Радиоуправляемый танк с движущейся камерой FPV: 9 шагов (с изображениями)
Танк с дистанционным управлением с движущейся камерой FPV: Здравствуйте, в этой инструкции я покажу вам, как построить резервуар с дистанционным управлением с камерой FPV. Вначале я строил только радиоуправляемый танк без FPV камеры, но когда я ехал на нем по дому, я не видел, где он находится. Итак, я придумал, что добавлю к
Танк Halo Scorpion: 5 шагов
Танк Halo Scorpion: Этот учебник был создан во исполнение требований проекта Makecourse в Университете Южной Флориды (www.makecourse.com). Это мой пошаговый процесс по разработке и созданию полностью функционального танка Halo Scorpion. Ссылка
Как построить мощный металлический робот-танк с радиоуправлением: 6 шагов (с иллюстрациями)
Как построить мощный металлический робот-танк с дистанционным управлением: добрые друзья! Итак, я подумал о каком-то проекте, который был бы интересен, и решил построить танк (космический полет) на знаке, который, конечно же, полностью сделан из металла. 100% Моя конструкция качественная и точная, большая часть
Танк Arduino с дистанционным управлением: 9 шагов
Танк Arduino с дистанционным управлением: Привет, я хотел создать хороший танк, управляемый с помощью классического радиоуправляемого радиоуправления, проходящего через Arduino. На самом деле в наши дни это довольно просто со всей доступной электроникой. Вам нужно будет добыть несколько элементов, чтобы построить этого зверя