Мазмұны:

SONIC жарықдиодты кері байланыс: 7 қадам (суреттермен)
SONIC жарықдиодты кері байланыс: 7 қадам (суреттермен)

Бейне: SONIC жарықдиодты кері байланыс: 7 қадам (суреттермен)

Бейне: SONIC жарықдиодты кері байланыс: 7 қадам (суреттермен)
Бейне: ПЛОВ. ЭТО ЛУЧШАЯ ЕДА ЧТО Я ЕЛ! СЕКРЕТ РАСКРЫТ УЗБЕКСКИЙ РЕЦЕПТ 2024, Қараша
Anonim
SONIC жарық диодты кері байланыс
SONIC жарық диодты кері байланыс
SONIC жарық диодты кері байланыс
SONIC жарық диодты кері байланыс
SONIC жарық диодты кері байланыс
SONIC жарық диодты кері байланыс

Тағы да сәлем, Сіздің робот барлық нәрсеге тап болғанын жек көресіз бе? Бұл бұл мәселені шешеді. 8 дыбыстық сенсормен бұл күрделі көрінеді … бірақ мен мұны өте оңай жасадым. Мен сізге Arduino туралы білуге және «қораптан тыс» тұжырымдамасын көрсетуге көмектесетін жобаларды жариялауға тырысамын. Бұл хабарлама 595 коммутациясын, бағдарламаланатын сенсор ретінде мини-бағдарламаларды және нақты уақыттағы кері байланысты тиімді пайдалануды түсінуге көмектеседі. Егер сізге Arduino-ны «көшіру және қою және қосу» ретінде ұнатсаңыз, оны өткізіп жіберуге болады.

Мини-миниді қолданғанды ұнатамын. Олар шамамен $ 2,50 құрайды, толық жұмыс істейді, ал тақырыптарды орнату оларды өте икемді етеді. Сенсорлық микро ретінде сіз сатып алынған сенсордың орнына «қалағаныңызды жасай аласыз». I2C көмегімен тек 2 сымды қолдана отырып, оларды бір желіге байлауға болады. Сонымен, MEGA -ға өтіңіз, менде 4 бөлек код бар, олардың әрқайсысы 10,00 доллар. Мұнда мен 595 арқылы дыбыстық сенсорларды шығарып, нақты уақыттағы қашықтықты көрсету үшін мини қолданамын. Содан кейін аналық платамен 8 бит деректерді бөлісіңіз. Бұл жүктемені аналық платадан алып тастайды және оның кодын өте қарапайым етеді.

Дыбыстық датчиктерде ақау бар … визуалды кері байланыс жоқ. Сенсордың өлі салмақ немесе жұмыс істейтінін ешқашан білмейсіз! Менің ойымша, 'BLINK' ойлап тапқан адам Эйнстиннен ақылды. Бір ғана жетекші және ақпарат әлемі жыпылықтайды. Сондықтан дыбыстық сенсорға нақты уақыттағы кері байланыс қажет. Мұнда мен әр сенсорды бақылау үшін бірнеше диодты қолдандым. Олар сізге қажет емес, сенсорларды светодиодсыз жасаңыз. ПХД -да жарықдиодты орнату пайдалы.

1 -қадам: ПХД жасаңыз

ПХД жасаңыз
ПХД жасаңыз
ПХД жасаңыз
ПХД жасаңыз
ПХД жасаңыз
ПХД жасаңыз
ПХД жасаңыз
ПХД жасаңыз

ПХД жасаңыз және толтырыңыз. НАЗАР АУДАРЫҢЫЗ … Мен дыбыстық сенсорларды қосу үшін 4 істікшелі қосылымда ПХД -де қате жібердім. ECHO мен TRIGGER Vcc және негіздер компьютерге қосылатын болды. Қосқыштар үшін орын жеткіліксіз, сондықтан мен ПХД-ны түйреуіштермен жасадым. Осылайша сіз сымды қосқышты ПХД -ге дәнекерлеп, нақты дыбыстық датчиктерге қосуға болады. Светодиодтарға келсек, мен ішкі жиегіне сары, ал қызыл жағын сыртқы жағына қоямын. бұл сенсорлар дұрыс өлшенетінін қашықтықтан көруге көмектеседі.

Бұл мен жасаған FEW 2side компьютерлерінің бірі. Мен екі жақтан бір жақ жасап, секіргішпен жүгіргенді жөн көрдім. Бірақ жарықдиодты дисплейді алу үшін сізге кем дегенде жоғарғы компьютер қажет. Мен жүктеуде орналасуды бөлдім.

ПХД A4-A5 шеткі колонканың ішінде про-мини үшін арналған. Қалай болғанда да, A4-A5-ті Master A4-A5-ке қосыңыз. Vcc пен Grounds туралы ұмытпаңыз.

2 -қадам: КӨП ҚАТЕЛІКТЕР

КӨП ҚАТЕЛІКТЕР
КӨП ҚАТЕЛІКТЕР

Енді менің қателіктерім үшін … Мен триггерлерді бірден шығаруға тырыстым (барлығы бір -біріне байланған) және бұл жақсы жұмыс істеді, бірақ кейбір өзара әрекеттесу орын алды. Енді барлық ECHOS микрофонға (8) өтеді, ал триггерлер 595 арқылы орнатылады. Тағы үш түйреуіш (3). Жарықдиодты болсақ, мультиплекстеу жұмыс істемейді. Сізге әрбір сым үшін толық қосылу уақыты қажет. Бұл 7 ледтің әр жолында өзіндік 595 болуы керек дегенді білдіреді. 595 жаңартылғаннан кейін жарық диодтары келесі жаңартуға дейін жанып тұрады. Мұнда мультиплекстеу тек он секундқа ғана жарық береді. Бұл менің оқырмандарымда жақсы жұмыс істейді және оған арнайы микро қажет. 8 дыбыстық сенсорды сканерлеуге және қашықтықты өлшеуге уақыт жоқ. Мен тырыстым және өте нашар нәтиже алдым. Жарықдиодты мультиплекстеу сонымен қатар жол + бағанының торын білдіреді, бұл ПХД -де шамамен 64+ беруді білдіреді.

Мен ПХД -дағы тәртіпсіздікке байланысты 595 -тен тек 7 шығыс қолдандым. Алыста сіз олардың қозғалысы 7 немесе 8 жарық диодты екенін ажырата алмайсыз. Сіз барлық светодиодтарды бір резисторға байлауды қалауыңыз мүмкін және бұл жұмыс істейді, бірақ жарық диодты шамдардың мөлшеріне байланысты массивтің жарықтығы өзгереді. Сондықтан бір сымға бір резистор жақсы. Мен тек 595-ті жақсы көремін, бірақ егер олар Vcc пен 0-шығатын түйреуіштерді жылжытса немесе сол жақта БАРЛЫҚ шығысы бар 18 істікшелі ic жасаса … барлық сегіз шығуды қосу оңай болар еді. Бірақ ол 30 центтен төмен сатылмайды.

3 -қадам: СЕНСОРЛАРДЫ ОРНАТУ

СЕНСОРЛАРДЫ ОРНАТУ
СЕНСОРЛАРДЫ ОРНАТУ
СЕНСОРЛАРДЫ ОРНАТУ
СЕНСОРЛАРДЫ ОРНАТУ
СЕНСОРЛАРДЫ ОРНАТУ
СЕНСОРЛАРДЫ ОРНАТУ
СЕНСОРЛАРДЫ ОРНАТУ
СЕНСОРЛАРДЫ ОРНАТУ

Кофе қақпағына дыбыстық сенсорларды жабыстырыңыз. еркек ұясы әр сенсорға ішке қарай бүгілуі керек. Егер сіз бір түйреуішті бір уақытта бүгсеңіз, бұл жақсы жұмыс істейді. Мен діріл аз болу үшін 2 бүйірлік көбік таспасын қолдандым. Менің сенсорлар тым жақын және олар ПХД -ге жақсы сәйкес келу үшін 1/4 дюймдік кеңістікті қажет етеді. Мен дыбыстық сенсорларды бұрын қолданғанмын, кейде дәл өлшеуге болмайды, сондықтан сіз мұны есте ұстауыңыз керек. Сондықтан олардың барлығын біржола жабыстырмаңыз.

Бұл сондай -ақ оларды қолданар алдында әрқайсысында жылдам қашықтықты тексеруге көмектеседі. Мен 20 партияда нашар оқитын бір сенсорды аламын. Мен төлеген баға үшін жаман емес.

4 -қадам: ҚАТТЫ Сым

ҚАТЫР СЫМ
ҚАТЫР СЫМ

Мен ДК -ден розеткалар мен штепсельдерге орын болады деп ойладым

дыбыстық түйреуіштер, бірақ мен бөлмеден шығып кеттім. Мен компьютердің ұшын қатты сыммен байланыстырдым және жаңғырық пен триггерлік сымдарды әйел ұяларымен жасадым (8ea). Мен сенсорлардың 8ea Vcc және 8ea негіздерін бір -бірімен байланыстырдым, осылайша олар ПХД -ге тек 2 қосылым жасады.

8 датчиктер мен 8 595s көмегімен біркелкі немесе мини-прокси оны қуаттандыра алмайды. Бұл жоба аясында 5В реттелетін көзі болуы керек. Менің роботымда батареялардан қарапайым 7805 @ 1amp бар. Бұл барлық құрылғылар үшін барлық 5 вольтты желілермен байланысады. 7805 вольт шамасында төмендейді, сондықтан оны беру үшін сізге кемінде 6,5 вольт қажет. Бұл 3,3В кернеудегі 2 литий батареясы. Менің роботымда ескі никадалар қолданылған бұрғылау пакеттерінен тұрады, ал 8 никадтар 20 долларлық танк түріндегі шассиде Қытайдың 12 ватттық моторымен жұмыс істейді.

5 -қадам: SONIC SKETCH ЖҮКТЕУ

SONIC SKETCH ЖҮКТЕУ
SONIC SKETCH ЖҮКТЕУ

Эскизді жүктеп, орнатыңыз. Сөйлесудің көптеген жолдары бар

басқа уно, бірақ маған I2c ұнайды. шатасу - бұл адресат және қожайын/ құл. Көптеген сенсорлардағыдай (2 -ші миниді сенсор деп есептеңіз) сіз сенсорға жүгінесіз және x байт мөлшерін сұрайсыз. мұнда бір нәрсе. 2 -ші мини -де сіз жібергіңіз келетін x байт мөлшерін бөлесіз. Жаңылтпаш - есімдер маңызды емес. Бұл есімдерді бөліссеңіз ғана есте сақтауға көмектеседі. Мен эскизде 8 дыбыстық қашықтықты см арқылы жіберемін sendR1, sendR2, sendR3, sendR4, sendL1, sendL2, sendL3, sendL4. Мастер 8 байт алады, егер деректер болса және сіз бұл байттарға қалаған нәрсені шақырсаңыз болады. Мен оларды gotR1, gotR2, got деп оқыдым …. Байттардың жіберілген тәртібі бірдей. A, B, C байттары…. атауды өзгерту сізге басқа деректер береді деп ойламаңыз. Ал басқа аулау, сіз тек жіберілетіні туралы мәліметтерді ала аласыз. Егер сіз басқа деректерді алғыңыз келсе, екеуін де мастер мен құлды өзгертуіңіз керек.

6 -қадам: Байланыс

БАЙЛАНЫС
БАЙЛАНЫС

Егер сіз 2 Uno -ны бір -бірімен сөйлесу үшін қалай орнатуды білсеңіз, мұны өткізіп жіберуге болады. Ақырында менде бірнеше ақпарат бар. Жеңілдету үшін мен M1 робот базасындағы бірлік пен дыбыстық сенсорды S2 деп атаймын. Vcc, жерге, A4, A5 бір -біріне қосыңыз.

S2 эскизінде #include деп басталады

Содан кейін жіберілетін 8 байтты жасаңыз. байт R1, байт R2, байт L1 т.б. Uno - бұл 8 биттік микро, сондықтан олар 1 байтты 'int' орнына 'байт' арқылы жібереді.

'Setup ()' бөліміне 'Wire.begin (мекен -жайы)' қосыңыз, бұл I2c -ге бұл қай құрылғы екенін көрсетеді. Мекенжай әдетте сізге ұнайтын кез келген нөмір - 4 - 200. бір байт өлшемі. Бұл жерде мен 10 нөмірін қолдандым. Сондықтан S2 сенсорымен сөйлесу үшін шебер Wire.requestFrom (10, 8) телефон шалуы керек. Бұл 10 адрес және 8 - қанша байт қажет. Сондай -ақ, 'setup ()' бөліміне Wire.onRequest (isr anyName) қосыңыз. M1 сұрауды шақырған кезде S2 сенсоры үзіліспен әрекет етеді. Бұл функцияны anyName деп атайды. Сондықтан бұл anyName функциясын жасау қажет. Эскизге қараңыз және 'sendThis ()' функциясын қараңыз, бұл жерде байттар M1 -ге жіберіледі. Байттар тек қана жіберіледі және атауларды жібермейді. Дәл осы жерден жіберілетін деректердің көлемі мен көлемі басталады. Бұл байт форматында жіберу мен алу сәйкес болуы керек. Мұнда 8 байт жіберілді және 8 байт алынды. Бұл жерде бір ескерту функцияны шақырады (). Delay (), millis (), Serial.print () сияқты. ISR (үзіліс қызметі) қолданылғанда, функция шақырылады (). Сондықтан Wire.onRequest (sendThis) емес, Wire.onRequest (sendThis ()).

Мендегі шатасу - бұл қожайын/құлдық нәрсе. Бастапқыда мен қожайын ӘРҚАШАН шебер деп ойладым. Бірақ эскизде сіз master/slave -ді басқа микродан сұрауға немесе басқа микроға жіберуге ауыстыра аласыз. Егер сіз жоғарыда көрсетілген негізгі форматты ұстанатын болсаңыз. Есіңізде болсын … сіз тек берілген деректерді бөлісесіз.

Қабырғаға жабысқан екеу. ISR үзілуі тек эскиз сызықтары арасында үзіледі. Егер сіз 'while немесе for' циклінде құлыпталсаңыз, цикл шыққанға дейін ештеңе болмайды. Ешқандай маңызды емес, себебі бұл бірнеше микросекунд болуы мүмкін және деректер ескі.

Басқа мәселе - микро ішінде «100% қатесіз есептеу». Кез келген «сыртқы» (сымдар) байланыс қателіктерге ұшырайды. Жеткізілген деректердің қатесіз және көзге сәйкес келетінін тексерудің көптеген әдістері бар. Ең оңай жолы - бақылау сомасы. Жіберуші байттардың жиынтығын (нақты мәндер) қосыңыз және қорытындыларды жіберіңіз, ал қабылдау соңында қорытындыларды қосыңыз және олардың сәйкес келетінін қараңыз. Егер олар сәйкес келсе немесе деректер жиынтығын лақтырмаса. Әрине, бұл байт емес, бүтін санды жіберуді қамтиды. Осылайша сіз бүтін санды HI байтқа және LO байтқа бөліп, бөлек байт ретінде жібересіз. Содан кейін ресиверге қосыңыз.

ОҢАЙ:

int x = 5696; (кез келген жарамды int мәні, максимум 65к немесе 32к теріс)

байт hi = x >> 8; (22)

байт lo = x; (64)

байт жіберіңіз және басқа жағынан біріктіріңіз ….

байт сәлем = Wire.read ();

байт lo = Wire.read ();

int newx = (сәлем << 8) + ло; (5696)

7 -қадам: ЖАБУ

ЖАБУ
ЖАБУ
ЖАБУ
ЖАБУ
ЖАБУ
ЖАБУ
ЖАБУ
ЖАБУ

Жабу үшін бұл дыбыстық сенсор аналық платаға нақты уақыт режимінде бастапқы қашықтық туралы деректерді береді. Бұл микроды босатады және эскизді әлдеқайда күрделі етеді. Микро енді кездейсоқ болжамдардың орнына жақсы мәліметтерге сүйене отырып, баяулау, бұру, тоқтату немесе кері айналдыру туралы жақсы шешім қабылдай алады. Эскизді сымсыз жүктеу үшін және сіздің эскизіңізді тез өзгерту үшін роботты үнемі қосуға болатын bluetooth IDE туралы басқа жазбаны қараңыз. Осыны көргеніңіз үшін рахмет. Oldmaninsc.

Ұсынылған: