Мазмуну:
Video: Тамашалуу танк: 5 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:41
Бул менин HKU мектебимде жасаган долбоор, бул бизге Arduino Uno менен бир нерсе жасоону талап кылды. Мен сүйүктүү нерсемди жасай турган, адамдарды күлдүрө турган нерсе кылгым келди. Ошентип, сизди тамашага сала турган тамаша кутучасын жасоону чечтим, бирок ал сизге кандай тамаша берди, ошол убакта сенсор модулдарынын бир нечеси өлчөнүп жатканына жараша болот. Муну жеке кылуу үчүн мен аны танк кылууну чечтим.
1 -кадам: Бөлүктөрдү алуу
Бул долбоорду кайра түзүү үчүн сизге керектүү бөлүктөр болмок
- 1x компьютер Arduino IDE иштете алат
- 1x Arduino Uno
- 1x USB туташтыргычы кабели Arduino Uno үчүн
- 1x Sonar сенсор
- 1x Динамик (татыктуу сапатка ээ (мен Bluetooth динамигинен сууруп алганын колдондум)).
- 1x LM386 күчөткүч модулу (муну өзүңүз жасасаңыз болот, бирок мен модулду колдондум).
- 1x LM393 микрофону
- 1x LDR
- 1x LED (каалаган түс берет, бирок мен көк колдонгом).
- 4x 1kΩ каршылыгы
- 1x2, 7kΩ каршылыгы
- 1x нан тактасы
- 1x micro SD карта (кичине болсо жакшы (1 же 2 Гб)).
- 1х Power бургу.
- 1х 16мм бургулоочу баштык (металды бургулоо үчүн жасалган).
- 1х 9мм бургучу (ошондой эле металлды бургулоо үчүн жасалган).
- 1х 1мм бургулоочу баштык (дагы металлды бургулоо үчүн жасалган).
- 1x Model танк (мен 1:35 масштабдуу илбирс 2 колдонгом, бирок башка учурлар да жакшы болушу керек).
- Superglue / hotglue
- жана кээ бир зымдар ар кандай түстө.
- кабелдик байланыштар (милдеттүү эмес).
2 -кадам: Кабелдөө
Биз зым менен башташыбыз керек, сүрөт - бул анын кантип өткөрүлүшү керектигинин техникалык чиймеси. Бул сиздин планыңыз катары кызмат кылышы керек. Эскертүү: Бардык Arduino порттору ар бир порт үчүн AP# деп аталат. Ошентип, 4 -порт Arduino AP4, A0 порт APA0 жана 6 порт ~ AP6 ~ ж.б Бардык башка порттор модулдардын өзүндө көрүнгөндөй аталат.
3 -кадам: Pre Code Things
Эми биз кодду колдонууну баштаардан мурун бизге бир аз стуф керек. Мен азыр бул кишинин үйрөткүчүн 2ден 4кө чейин ээрчиңиз.
www.electronoobs.com/eng_arduino_tut8.php
Бирок биз анын кодун колдонбойбуз, анткени биз өзүбүздүн жеке программабызды колдонобуз, кээ бир спикерлер ар кандай жыштыктарды колдонорун эске алыңыз. Менин спикерим 16 бит 32 кГц аудио файлдарды колдонгон. Демек, эгер сиздин сүйлөөңүз кандайдыр бир ызы -чуу чыгарса, бирок файлдарыңызды ойнотпосо, анда жыштыгыңыз менен ойноп көрүңүз.
4 -кадам: Код
Эми биз кодду arduinoго жүктөйбүз. Мунун баарын көчүрүп, Arduino IDEге өткөрүп, аны Arduinoго жүктөңүз.
// SD картаны окуу үчүн китепкананы камтыйт.#include "Wtv020sd16p.h" // sonar сенсоруна керектүү китепкананы камтыйт. #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); // Sonar сенсор китепканасынын казыктарын коет. NewPing sonar (11, 10); // Башка кирүүлөрдү орнотот жана программанын бит ылдамдыгын орнотот. жараксыз орнотуу () {wtv020sd16p.reset (); pinMode (lightDetectedPin, INPUT); pinMode (soundDetectedPin, INPUT); Serial.begin (9600); } // Программанын негизги бөлүгү. void loop () {// InterDigers 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); } else if (lightDetectedVal> = 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (2); Serial.println ("2 --------"); кечигүү (5000); } else if (lightDetectedVal> = 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (3); Serial.println ("3 --------"); кечигүү (5000); } else if (lightDetectedVal> = 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (4); Serial.println ("4 --------"); кечигүү (5000); } else if (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 ("Жарык мааниси:"); if (lightDetectedVal> = 1000) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (7); Serial.println ("7 --------"); кечигүү (5000); } else if (lightDetectedVal> = 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (8); Serial.println ("8 --------"); кечигүү (8000); } else if (lightDetectedVal> = 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (9); Serial.println ("9 --------"); кечигүү (5000); } else if (lightDetectedVal> = 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (10); Serial.println ("10 -------"); кечигүү (8000); } else if (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); } else if (lightDetectedVal> = 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (14); Serial.println ("14 -------"); кечигүү (5000); } else if (lightDetectedVal> = 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (15); Serial.println ("15 -------"); кечигүү (5000); } else if (lightDetectedVal> = 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (16); Serial.println ("16 -------"); кечигүү (5000); } else if (lightDetectedVal> = 600) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (17); Serial.println ("17 -------"); кечигүү (5000); } if if (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); } else if (lightDetectedVal> = 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (20); Serial.println ("20 -------"); кечигүү (5000); } else if (lightDetectedVal> = 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (21); Serial.println ("21 -------"); кечигүү (5000); } else if (lightDetectedVal> = 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (22); Serial.println ("22 -------"); кечигүү (5000); } else if (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ди танктын алдына койгом, бирок эгер сизде боштук болсо, аларды каалаган убакта эффективдүү түрдө коё аласыз.
Ардуинону туташтыргыч кабели менен туташтыруу үчүн, моделдин денесиндеги тешикти тактаңыз.
Мен спикерди мунарага коюуну сунуштайт элем. анткени ал жерде көп орун калууга тийиш.
Жогорудагы сол сүрөттө мен ардуино менен Леопард 2 моделинин ичине кантип чапталгандыгымды көрсөтөм. Оң сүрөттө зымдардын көбү орнотулган.
Ардуинону кабелдик байланыштар менен камсыз кылуу үчүн моделдин түбүндө кичинекей тешиктерди бурсаңыз болот.
Бирок мен жаңылбасам, азыр жасашыңар керек.
Сунушталууда:
Arduino SN7300 Sinoning үчүн арзан акрил робот танк шасси: 6 кадам
Arduino SN7300 Sinoning үчүн арзан акрил робот танк шасси: Arduino SN7000 Sinoningbu үчүн арзан акрил танк шасси
Алыстан башкаруу танк Drive: 3 кадам
Алыстан башкаруу танк диск машинасы: Бул алыстан башкаруу танк машинасын кантип жасоо боюнча көрсөтмө. Мен бүгүн машинаны жасоо үчүн колдоно турган комплект - бул танк менен жүрүүчү машинанын комплект, жолду ээрчүү үчүн жарык сенсору. Сиздин машинаңызга жарык сенсорунун кереги жок, бирок автоцистерна керек
Танк үчүн DIY платформасы - Bluetooth Control + Line: 8 кадам
Танк үчүн DIY платформасы - Bluetooth Control + Line on Motion: Arduino үчүн DIY танк платформасы - Bluetooth Control (Android App Inventor 2деги мобилдик тиркеме) + Robofest мелдештеринин макеттери боюнча линия боюнча оффлайн режими
3d басылган RC көзөмөлдөгөн танк !!: 8 кадам (сүрөттөр менен)
3d басылган RC көзөмөлдөгөн танк !!: Сиз качандыр бир убакта алыстан башкарылуучу унаага ээ болууну кааладыңыз беле, сиз жолдон чыгып кете аласыз жана сиз биринчи камеранын камерасынан көрө аласыз, анда бул танк сиз үчүн эң сонун. Танктын тректери топурак сыяктуу жерлерди айдап баратканда чоң кармашууга мүмкүндүк берет
WALL-E металл робот танк шасси орнотуу көрсөтмөсү: 3 кадам
WALL-E металл робот танк шасси орнотуу боюнча көрсөтмө: бул металл робот танк шасси, робот танк жасоо үчүн жакшы. мындай Arduino robot.it алюминий эритмесинде жарык жана күчтүү жасалган. DIY оюнчугу үчүн дүкөндү SINONING тарабынан жасалган