- Компоненте потребне:
- Кружни дијаграм:
- 8051 Микроконтролер:
- ХЦ-05 Блуетоотх модул:
- Л293Д ИЦ управљачки програм мотора:
- Рад робота којим управља Андроид телефон:
- Објашњење кода:
У овом пројекту ћемо направити робота којим управља Андроид телефон помоћу 8051 микроконтролера и Блуетоотх модула. Робот је дизајниран помоћу једносмерних мотора, а правац једносмерних мотора контролисаће се командама примљеним из андроид апликације. Статус робота се враћа натраг у Андроид апликацију. Овај пројекат ће такође помоћи у повезивању ХЦ-05 Блуетоотх модула са 8051 микроконтролером. Већ смо користили Блуетоотх модул за контролу кућних апарата са 8051.
Компоненте потребне:
- 8051 микроконтролер (АТ89С52)
- ХЦ-05 Блуетоотх модул
- Л293Д Мотор Дривер
- Робот шасија
- Једносмерни мотори (2)
- Точкови (2)
- Точак Точак
- Жице краткоспојника
- Андроид терминал за Блуетоотх терминал
Кружни дијаграм:
8051 Микроконтролер:
8051 микроконтролер је 8-битни микроконтролер који има 128 бајта чиповске РАМ-а, 4К бајта чипског РОМ-а, два тајмера, један серијски порт и четири 8-битна порта. 8052 микроконтролер је проширење 8051 микроконтролера. У овом пројекту користимо микроконтролер АТ89С52. Табела испод приказује поређење 8051 члана породице.
одлика |
8051 |
8052 |
РОМ (у бајтовима) |
4К |
8К |
РАМ (бајтови) |
128 |
256 |
Тајмери |
2 |
3 |
И / О пинови |
32 |
32 |
Серијски порт |
1 |
1 |
Извори прекида |
6 |
8 |
ХЦ-05 Блуетоотх модул:
ХЦ-05 је серијски Блуетоотх модул. Може се конфигурисати помоћу АТ команди. Може радити у три различите конфигурације (Мастер, Славе, Лооп бацк). У нашем пројекту ћемо га користити као роба. Карактеристике ХЦ-05 модула укључују,
- Типична осетљивост од -80дБм.
- Подразумевана брзина преноса: 9600 бпс, 8 битова података, 1 зауставни бит, без паритета.
- Аутоматско упаривање пин кода: подразумевани пин код „1234“
- Има 6 пинова.
- Вцц и Гнд пинови се користе за напајање ХЦ-05.
- Тк и Рк пинови се користе за комуникацију са микроконтролером.
- Омогућите пин за активирање ХЦ-05 модула. када је низак, модул је онемогућен
- Државни пин делује индикатор статуса. Када није упарен / повезан са било којим другим Блуетоотх уређајем, ЛЕД непрекидно трепће. Када је повезан / упарен са било којим другим Блуетоотх уређајем, ЛЕД трепће са константним кашњењем од 2 секунде.
Л293Д ИЦ управљачки програм мотора:
Л293Д је двострука Х-покретачка склопка мотора. Ово делује као појачало струје, излаз Л293Д покреће једносмерне моторе. Садржи два уграђена круга Х-моста. У уобичајеном режиму рада, може истовремено да покреће два мотора једносмерне струје у оба смера. Доња табела приказује пин опис Л293Д ИЦ. Ево неколико пројеката који користе Л293Д Мотор Дривер.
Пин Десцриптион
Пин Но. |
Име |
Функција |
1 |
Омогући 1,2 |
Омогућите иглу за мотор 1 |
2 |
Улаз 1 |
Улаз 1 за мотор 1 |
3 |
Резултат 1 |
Излаз 1 за мотор 1 |
4 |
Гнд |
Уземљење (0В) |
5 |
Гнд |
Уземљење (0В) |
6 |
Резултат 2 |
Излаз 2 за мотор 1 |
7 |
Улаз 2 |
Улаз 2 за мотор 1 |
8 |
Вцц 2 |
Напон напајања за моторе (5В) |
9 |
Омогућите 3,4 |
Омогућите иглу за мотор 1 |
10 |
Улаз 3 |
Улаз 1 за мотор 2 |
11 |
Резултат 4 |
Излаз 1 за мотор 2 |
12 |
Гнд |
Уземљење (0В) |
13 |
Гнд |
Уземљење (0В) |
14 |
Резултат 4 |
Излаз 2 за мотор 2 |
15 |
Улаз 4 |
Улаз 2 за мотор 2 |
16 |
Вцц 1 |
Напон напајања (5В) |
Рад робота којим управља Андроид телефон:
У овом роботу којим управља паметни телефон, корисник андроид апликације шаље податке микроконтролеру 8051 путем модула ХЦ-05. Примљени подаци се упоређују у микроконтролеру 8051 и одлука се доноси у складу с тим. Доња табела приказује смер мотора и статус робота за различите примљене знакове.
Примљени лик |
Мотор 1 |
Мотор 2 |
Статус робота |
ф |
Напред |
Напред |
Креће се напред |
б |
Уназад |
Уназад |
Помера се уназад |
р |
Напред |
Уназад |
Помиче се удесно |
л |
Уназад |
Напред |
Покреће се лево |
с |
Ван |
Ван |
Заустављено |
Апликација Блуетоотх терминал омогућава нам да опонашамо Блуетоотх терминал. Ова апликација подржава двосмерну комуникацију и она је компатибилна са већином уређаја.
Следећи кораци показују како да инсталирате и користите ову апликацију.
1. Преузмите и инсталирајте апликацију Блуетоотх терминала на свој андроид телефон. Апликацију можете преузети са доње везе.
хттпс://плаи.гоогле.цом/сторе/аппс/детаилс?ид=птах.аппс.блуетоотхтерминал
2. Након инсталирања апликације, отворите је и укључите Блуетоотх.
3. Изаберите уређај и кликните на опцију за повезивање. Након успешне конекције можемо започети слање података на ХЦ-05 модул.
Проверите објашњење кода у наставку да бисте видели како микроконтролер 8051 шаље и прима знак за ротирање потребних мотора.
Објашњење кода:
Комплетни Ц програм и демонстрацијски видео за овај пројекат дат је на крају овог пројекта. Код је подељен на мале смислене делове и објашњен у наставку.
За Л293Д повезивање са 8051 микроконтролером, морамо дефинисати пинове на којима је Л293Д повезан са 8051 микроконтролером. Ин1 пин мотора 1 повезан је са П2.0, Ин2 пин мотора 1 повезан је са П2.1, Ин1 пин мотора 2 повезан је са П2.2, Ин2 пин мотора 2 повезан је са П2.3
сбит м1ф = П2 ^ 0; // ин1 пин мотора1 сбит м1б = П2 ^ 1; // ин2 пин мотора1 сбит м2ф = П2 ^ 2; // ин1 пин мотора2 сбит м2б = П2 ^ 3; // ин2 пин мотора2
Даље морамо дефинисати неке функције које се користе у програму. Функција одлагања користи се за стварање одређеног временског кашњења. Ткдата функција се користи за пренос података кроз серијски порт. Ркдата функција се користи за пријем података са серијског порта.
воид делаи (непотписан инт); // функција за стварање кашњења цхар ркдата (воид); // функција за пријем карактера кроз серијски порт од 8051 воид ткдата (непотписани знак); // функција за слање карактера преко серијског порта 8051
У овом делу кода конфигурисаћемо микроконтролер 8051 за серијску комуникацију. ТМОД регистар је учитан са 0к20 за тајмер 1, режим 2 (аутоматско поновно учитавање). Регистар СЦОН је учитан са 0к50 за 8 битова података, 1 зауставни бит и омогућен пријем. ТХ1 регистар је оптерећен 0кфд за брзину пријеноса од 9600 бита у секунди. ТР1 = 1 користи се за покретање тајмера.
ТМОД = 0к20; СЦОН = 0к50; ТХ1 = 0кфд; ТР1 = 1; У овом делу кода, враћени знак функције ркдата чува се у променљивој 'с' за даљу употребу.
с = ркдата (); // примамо серијске податке са блуетоотх модула хц-05
У овом делу кода морамо да упоредимо примљени знак са унапред додељеним знаковима за различите смерове. Ако је примљени знак „ф“, тада се робот мора кретати у правцу напред. То се постиже прављењем м1ф, м2ф пинова високим и м1б, м2б пинова ниским. Једном када се то уради, следећи пут морамо послати статус робота у андроид апликацију. То се ради уз помоћ функције ткдата . Исти поступак се понавља за различите примљене ликове и одлука се доноси у складу с тим. Табела 1 приказује различите вредности м1ф, м1б, м2ф, м2б за различите смерове кретања робота.
иф (с == 'ф') // померите оба мотора у смеру напред {м1ф = 1; кашњење (1); м1б = 0; кашњење (1); м2ф = 1; кашњење (1); м2б = 0; кашњење (1); фор (и = 0; мсг1! = '\ 0'; и ++) // пошаљи статус робота у андроид апликацију преко блуетоотх-а {ткдата (мсг1); }}
м1ф |
м1б |
м2ф |
м2б |
Ротација мотора 1 |
Ротација мотора 2 |
Статус робота |
1 |
0 |
1 |
0 |
напред |
напред |
Напредовати |
0 |
1 |
0 |
1 |
обрнуто |
обрнуто |
Кретање уназад |
1 |
0 |
0 |
1 |
напред |
обрнуто |
Крећући се десно |
0 |
1 |
1 |
0 |
обрнуто |
напред |
Померајући се лево |
0 |
0 |
0 |
0 |
зауставили |
зауставили |
зауставили |
Ово је што можете ротирати аутомобил Робот у било ком смеру управљајући помоћу четири мотора помоћу микроконтролера 8051. Овим роботом се такође може управљати помоћу ДТМФ-а са 8051, ако немате андроид телефон.
Овде погледајте и све пројекте роботике.