Мазмұны:

Magicbit -тен ақылды қоқыс жәшігі: 5 қадам
Magicbit -тен ақылды қоқыс жәшігі: 5 қадам

Бейне: Magicbit -тен ақылды қоқыс жәшігі: 5 қадам

Бейне: Magicbit -тен ақылды қоқыс жәшігі: 5 қадам
Бейне: Қоқысты қайта өңдеу жайлы қызықты деректер 2024, Қараша
Anonim
Image
Image

Бұл оқулықта біз Magicbit dev көмегімен ақылды қоқыс жәшігін жасауды үйренеміз. Arduino IDE бар тақта. Бастайық.

Жабдықтар

  • Magicbit
  • USB-A-Micro-USB кабелі
  • Ультрадыбыстық сенсор - HC -SR04 (жалпы)
  • SG90 микросерво қозғалтқышы

1 -қадам: Әңгіме

Жабдықты орнату
Жабдықты орнату

Жобаға көшпес бұрын Smart қоқыс жәшігі деген не екенін қарастырайық. Әр үйде бір немесе бірнеше қоқыс жәшігі бар. Көп жағдайда сіз оны жауып тастадыңыз. Өйткені бұл сіздің үйіңізден иіс шығарады. Сондықтан қоқыс жәшігіне қоқыс тастағыңыз келсе, оны ашу керек. Бірақ егер сіз қоқыс жәшігіне жақын жерде қоқыс тастайтын болсаңыз және оның қақпағы автоматты түрде ашылса, онда ол қалай көрінеді. Ақымақ ааа …. бұл ақылды қоқыс жәшігі.

2 -қадам: Теория мен әдістеме

Теория өте қарапайым. Сіз қоқыс жәшігіне жақындасаңыз, ол сізді анықтайды. Егер сіз мен қоқыс жәшігі арасындағы қашықтық белгілі бір қашықтықтан аз болса, онда қоқыс жәшігінің қақпағы автоматты түрде ашылады. Бұл екі объектіні де аяқтау үшін біз HC-SRO4 ультрадыбыстық сенсоры мен кіші серво қозғалтқыштарын қолданамыз. Сіз кез келген сандық сервоқозғалтқышты ала аласыз.

3 -қадам: Жабдықты орнату

Жабдықты орнату
Жабдықты орнату
Жабдықты орнату
Жабдықты орнату

Бұл жоба үшін біз негізінен үш аппараттық компонентті қолдандық. Олар Magicbit, серво қозғалтқышы және ультрадыбыстық сенсор. Барлық осы бөліктер арасындағы байланыс жоғарыдағы суретте көрсетілген.

Ультрадыбыстық сенсор 3.3 вольтты қосу үшін қолданылады. Біз ультрадыбыстық датчикті Magicbit -ке қосу үшін Magicbit тақтасының төменгі оң жақ портын қолдандық. Серво қозғалтқышы 5В дұрыс жұмыс жасау үшін пайдаланылады, сондықтан біз сервистік қозғалтқышты Magicbit -ке қосу үшін сол жақ төменгі портты қолдандық. Бұл жағдайда біз Magic bit servo қосқыш модулін қолданамыз. Бірақ егер сізде бұл модуль болмаса, сіз 5 В -тан 5 В -қа, Gnd -тен Gnd -ге және Magbitbit -тегі 26 істікшеге сигнал пинін қосуға үш секіргіш сымды қолдана аласыз.

Енді біздің жобаның механикалық жағын қарастырайық. Қақпақты ашу үшін біз тетіктің қарапайым механизмін қолданамыз. Біз бір жақ серво қол қысқышын сервоға қостық. Содан кейін біз қысқыштағы бұрыштық тесік пен қоқыс жәшігінің қақпағын берік металл сыммен байланыстырдық. Металл сым серво қысқыш пен қоқыс жәшігінің қақпағына қатысты айналуы мүмкін. Ең жақсы сурет пен бейнені зерттей отырып, сіз мұны оңай жасай аласыз.

4 -қадам: Бағдарламалық қамтамасыз етуді орнату

Бағдарламалық қамтамасыз етуді орнату
Бағдарламалық қамтамасыз етуді орнату

Бағдарламалық жасақтама бөлімі Arduino IDE кодын және бұл кодтың қалай жұмыс істейтінін қарастырады.

Серво жүргізу үшін біз ESP32 серво кітапханасын қолданамыз. Бұл кітапхана Arduino IDE -де сиқырлы биттік тақта менеджеріне кіреді. Ультрадыбыстық сенсормен жұмыс істеу үшін біз newPing кітапханасын қолданамыз. Мұны келесі сілтемеден жүктеуге болады.

bitbucket.org/teckel12/arduino-new-ping/d…

ZIP файлын жүктеп алып, құралдарға өтіңіз> кітапхананы қосу> Arduino -да Zip кітапханасын қосыңыз. енді жүктелген жаңа PIN кітапханасының ZIP файлын таңдаңыз. кодта біз алдымен серво және ультрадыбыстық сенсор кітапханаларын жариялаймыз. Цикл функциясында біз әрқашан қоқыс жәшігінен жақын маңдағы объектіге дейінгі қашықтықты тексереміз. Егер бұл 200 -ден үлкен болса, онда кітапхананың қашықтығы 0 -ге тең болады. Егер қашықтық 60 см -ден төмен болса, онда ол қақпақты айналдыру жолымен ашу үшін циклды орындайды. Егер қашықтық 60 см -ден асса, онда қақпақ жабылады. Логикалық айнымалыны қолдану арқылы біз әрқашан мұқабаның күйін тексереміз. Егер қақпақ төмен болса, онда ол тек ашылады. Сонымен қатар керісінше. Енді дұрыс COM порты мен тақтаны magcibit ретінде таңдаңыз, содан кейін кодты жүктеңіз. Енді сіздің ақылды қоқыс жәшігі пайдалануға дайын.

5 -қадам: Arduino коды

#қосу

#TRIGGER_PIN 21 анықтау #ECHO_PIN 22 анықтау #MAX_DISTANCE 200 анықтау NewPing sonar (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); #include // servo library int қашықтықты қосады; Servo RadarServo; void setup () {Serial.begin (115200); RadarServo.attach (26); // Серво қозғалтқышы бекітілген кідіріс қай істікшеде екенін анықтайды (3000); } void loop () {// servo қозғалтқышты 15 -тен 165 градусқа бұрады (int i = 0; i <= 180; i ++) {RadarServo.write (i); кешіктіру (50); қашықтық = sonar.ping_cm (); // Ультрадыбыстық сенсормен өлшенетін қашықтықты есептеу үшін функцияны шақырады (int j = 0; j0) {break; } Serial.print (i); // Ағымдағы дәрежені Serial.print сериялық портына жібереді («,»); // Қосу таңбасын Serial.print (j) индекстеуге арналған Processing IDE -де қажет болатын алдыңғы мәннің жанына жібереді; // Ағымдағы дәрежені Serial.print сериялық портына жібереді («*»); Serial.print (1); // Қашықтық мәнін Serial.print порталына жібереді («/»); // Қосымша таңбаны Serial.print (қашықтық) индекстеу үшін Processing IDE кейін қажет болатын алдыңғы мәннің жанына жібереді; // Қашықтық мәнін Serial.print порталына жібереді («.»); // Индекстеу үшін өңдеу IDE-де кейінірек қажет мәннің жанына қосымша таңбаны жібереді}} // Алдыңғы жолдарды 165-тен 15 градусқа дейін қайталайды (int i = 180; i> = 0; i-) {RadarServo.write (i); кешіктіру (50); қашықтық = sonar.ping_cm (); for (int j = 75; j> = 0; j- = 25) {if (i == 180 && (j == 75 || j == 50 || j == 25)) {жалғастыру; } Serial.print (i); // Ағымдағы дәрежені Serial.print сериялық портына жібереді («,»); // Қосу таңбасын Serial.print (j) индекстеуге арналған Processing IDE -де қажет болатын алдыңғы мәннің жанына жібереді; // Ағымдағы дәрежені Serial.print сериялық портына жібереді («*»); Serial.print (-1); // Қашықтық мәнін Serial.print порталына жібереді («/»); // Қосымша таңбаны Serial.print (қашықтық) индекстеу үшін Processing IDE кейін қажет болатын алдыңғы мәннің жанына жібереді; // Қашықтық мәнін Serial.print порталына жібереді («.»); // Қосымша таңбаны индекстеу үшін Processing IDE -де қажет болатын алдыңғы мәннің жанына жібереді}}}

Ұсынылған: