Съдържание:

Шеговит танк: 5 стъпки
Шеговит танк: 5 стъпки

Видео: Шеговит танк: 5 стъпки

Видео: Шеговит танк: 5 стъпки
Видео: Щит и меч, 1 серия (реставрация 4К, реж. Владимир Басов, 1967 г.) 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 LED (всеки цвят ще е подходящ, но аз използвах син).
  • 4x 1kΩ резистор
  • 1x 2, 7kΩ резистор
  • 1x платка
  • 1x micro SD карта (за предпочитане малка (1 или 2 gb)).
  • 1x Електрическа бормашина.
  • 1x 16 мм пробивна глава (за предпочитане за пробиване на метал).
  • 1x 9 мм пробивна глава (също за предпочитане за пробиване на метал).
  • 1x 1 мм бормашина (за предпочитане отново за пробиване на метал).
  • 1x модел резервоар (използвах 1:35 мащаб леопард 2, но и други случаи трябва да са добре).
  • Суперлепило / горещо лепило
  • и доста жици за предпочитане в различни цветове.
  • кабелни връзки (по избор).

Стъпка 2: Окабеляване

Електрически инсталации
Електрически инсталации

Трябва да започнем с окабеляването, изображението е технически чертеж за това как всичко трябва да бъде свързано. Това трябва да служи като ваш план. Забележка: Всички портове на Arduino са наречени AP# за всеки порт. Така че четвъртият порт на Arduino е AP4, порт A0 е APA0, а порт 6 ~ е AP6 ~ и т.н. Всички останали портове са наименувани така, както се появяват на самите модули.

Стъпка 3: Предварително кодирайте нещата

Сега, преди да можем да започнем да използваме кода, имаме нужда от малко. Препоръчвам ви сега да следвате този урок за човека от стъпка 2 до 4

www.electronoobs.com/eng_arduino_tut8.php

Въпреки това няма да използваме неговия код, тъй като ще използваме нашия собствен Моля, имайте предвид, че някои високоговорители използват различни честоти. Моят говорител използва 16-битови 32kHz аудио файлове. Така че, ако вашето говорене създава някакъв шум, но не възпроизвежда вашите файлове, опитайте да играете с вашата честота.

Стъпка 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); // Задава другите входове и задава битрейта на програмата. void setup () {wtv020sd16p.reset (); pinMode (lightDetectedPin, INPUT); pinMode (soundDetectedPin, INPUT); Serial.begin (9600); } // Основна част от програмата. void loop () {// Задава междинните числа int lightDetectedVal = analogRead (lightDetectedPin); int distanceVal = sonar.ping_cm (); int soundDetectedVal = digitalRead (soundDetectedPin); // Забавяне, така че проектът проектът да не използва безкрайно високоговорителя. забавяне (30000); // Сериен печат и линии за печат, за да можете лесно да видите какви стойности се приемат от сензорните модули. Serial.print ("Звукова стойност:"); // Множествени оператори if, така че програмата да възпроизвежда различни аудио файлове в зависимост от стойностите се измерват от сензорните модули. if (soundDetectedVal == 0) {Serial.println (soundDetectedVal); Serial.print ("Разстояние:"); if (distanceVal == 0) {Serial.println (distanceVal); Serial.print ("Светлинна стойност:"); if (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); } иначе ако (lightDetectedVal> = 500 || lightDetectedVal 0 || distanceVal == NULL) {Serial.println (distanceVal); Serial.print ("Светлинна стойност:"); if (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); } иначе ако (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); } иначе ако (lightDetectedVal> = 500 || lightDetectedVal 0 || distanceVal == NULL || distanceVal> = 150) {Serial.println (distanceVal); Serial.print ("Светлинна стойност:"); if (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); } иначе ако (lightDetectedVal> = 500 || lightDetectedVal << 500) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (24); Serial.println ("24 -------"); забавяне (5000); }}}}

Стъпка 5: Делото

Случаят
Случаят
Случаят
Случаят

Сега идва същинската сложна част.

Поставянето на всичко в кутията може да е малко сложно, това зависи от това как сте монтирали всичко на вашата дъска или как сте запоявали нещата заедно. Но ще трябва да направите няколко дупки, за да могат сензорите да се залепят. Сложих микрофона (необходима е 9 мм бормашина) и сонарния модул (необходима е 6 мм бормашина) отзад и LDR отпред на резервоара, но можете да ги поставите ефективно, ако имате място.

Не забравяйте да изрежете дупка в тялото на модела, за да можете да свържете вашия arduino с конекторния кабел.

Бих препоръчал поставянето на високоговорителя в кулата. тъй като там трябва да остане много място.

Лявото изображение по -горе е начинът, по който монтирах arduino и отпечатъка, който запоех вътре в модела Leopard 2. Дясното изображение е едно с повечето монтирани кабели.

Това, което можете да направите, е да пробиете малки дупки в долната част на модела, за да закрепите Arduino с кабелни връзки.

Но ако не греша, сега трябва да свършите.

Препоръчано: