- Изисквания:
- Изтегляне и инсталиране на софтуер:
- Хардуерна част на Arduino и електрическа схема:
- Част от софтуера Arduino:
- Мобилно приложение за Android за ултразвуков радар:
- Работно обяснение:
Това е интересен проект, в който изследваме силата на Arduino и Android, за да създадем устройство за наблюдение, което използва Arduino и Ultra Sonic Sensor за предаване на информацията към мобилно приложение (Android) чрез Bluetooth.
Безопасността и сигурността са нашата основна грижа от векове. Инсталирането на камера за сигурност, която има нощен режим с опция накланяне и панорамиране, ще изгори голяма дупка в джобовете ни. Затова нека направим икономично устройство, което прави почти същото, но без никакви видео функции.
Това устройство разпознава обекти с помощта на ултразвуков сензор и следователно може да работи дори през нощта. Също така монтираме американския (Ultra Sonic) сензор върху серво мотор, този серво мотор може да бъде настроен да се върти автоматично, за да сканира областта или да се върти ръчно с помощта на нашето мобилно приложение, за да можем да фокусираме ултразвуковия сензор нужната ни посока и усещаме предметите, присъстващи там. Цялата информация, усетена от американския сензор, ще бъде излъчена към нашия смартфон чрез Bluetooth модул (HC-05). Така че ще работи като сонар или радар.
Интересно нали ??…. Нека видим какво бихме искали да направим този проект.
Изисквания:
Хардуер:
- A + 5V захранване (използвам моята Arduino (друга) платка за захранване)
- Arduino Mega (можете да използвате всичко от pro mini до Yun)
- Серво мотор (всеки рейтинг)
- Bluetooth модул (HC-05)
- Ултразвуков сензор (HC-SR04)
- Макет (не е задължителен)
- Свързващи проводници
- Android мобилен
- Компютър за програмиране
Софтуер:
- Софтуер Arduino
- Android SDK
- Обработка на Android (за създаване на мобилно приложение)
След като сме готови с нашите материали, нека започнем да изграждаме хардуера. Разделих този урок на Arduino Part и Processing Part за лесно разбиране. Хората, които са нови в обработката, не трябва да се страхуват много, защото пълният код е даден в края на урока, който може да се използва като такъв.
Изтегляне и инсталиране на софтуер:
В Ардуино може да бъде инсталиран от тук. Изтеглете софтуера според вашата операционна система и го инсталирайте. IDE на Arduino ще изисква драйвер за комуникация с вашия хардуер на Arduino. Този драйвер трябва да се инсталира автоматично, след като свържете дъската с компютъра. Опитайте да качите програма за мигане от примери, за да сте сигурни, че Arduino работи и работи.
В Обработка IDE може да се инсталира от тук. Обработката е отлично приложение с отворен код, което може да се използва за много неща, има различни режими. В „Режим Java“ можем да създаваме компютърни приложения за Windows (.EXE файлове), а в „Android режим“ можем да създаваме мобилни приложения за Android (.APK файлове), а също така има и други режими като „Режим на Python“, където можете да пишете на Python програми. Този урок няма да обхваща основите на обработката, следователно, ако искате да научите Java програмиране или обработка директно към този страхотен канал в YouTube тук.
Хардуерна част на Arduino и електрическа схема:
Този проект включва много компоненти като серво мотор, Bluetooth модул, ултразвуков сензор и т.н. Следователно, ако сте абсолютно начинаещ, би било препоръчително да започнете с някакъв основен урок, който включва тези компоненти, и след това да се върнете тук. Разгледайте нашите различни проекти за серво мотор, Bluetooth модул и ултразвуков сензор тук.
Всички компоненти не се захранват от самия Arduino, тъй като сервомоторът, Bluetooth модулът и американският сензор извличат много ток, който Arduino няма да може да произведе. Следователно е строго препоръчително да се използва външно захранване + 5V. Ако нямате външно захранване + 5V на ваше разположение, можете да споделите компонентите между две платки Arduino, както направих аз. Свързах захранващите релси Servos към друга платка на Arduino (червен цвят) и свързах Bluetooth модула HC-05 и ултразвуков сензор HC-SR04 към Arduino mega. ВНИМАНИЕ: Захранването на всички тези модули с помощта на една платка Arduino ще изпържи регулатора на напрежението Arduino.
Схема на свързване за този Arduino базиран сонарен проект е дадена по-долу:
След като се свържат, монтирайте американския сензор върху вашия серво мотор, както е показано по-долу:
Използвах малко пластмасово парче, което беше в боклука ми, и двойна странична лента за монтиране на сензора. Можете да излезете със собствена идея да направите същото. На пазара има и серво държачи, които могат да се използват за същата цел.
След като Servo е монтиран и връзките са дадени, той трябва да изглежда нещо подобно.
Следвайте схемите отгоре, ако объркате някакви връзки. Сега нека започнем да програмираме Arduino Mega с помощта на Arduino IDE.
Част от софтуера Arduino:
Трябва да напишем кода си, за да можем да изчислим разстоянието между обект и Ultra Sonic сензор и да го изпратим на нашето мобилно приложение. Ние също трябва да напишем код за нашия серво мотор за почистване и също така да се контролираме от данните, получени от Bluetooth модула. Но не се притеснявайте, че програмата е много по-проста, отколкото можете да си представите, благодарение на Arduino и нейните библиотеки. Пълният код е даден по-долу в раздела за кода.
Функцията по-долу се използва за автоматично превключване на серво мотора отляво надясно (170 до 10) и отново отдясно наляво (10 до 170). Двете за цикли се използват за постигане на същото. Функцията us () се нарича вътре в двете функции, за да изчисли разстоянието между сензора и обекта и да го излъчи на Bluetooth. Дадено е закъснение от 50 ms, за да накара сервото да се върти бавно. Колкото по-бавно се върти двигателят, толкова по-точни стават вашите показания.
// ** Функция за почистване на серво ** // void servofun () {Serial.println ("Sweeping"); // за отстраняване на грешки за (posc = 10; posc <= 170; posc ++) // Използването на 10 до 170 градуса е безопасно от 0 до 180, тъй като някои серво може да не работят при екстремни ангели {servo.write (posc); // задаване на позицията на закъснение на серво мотора (50); нас(); // измерваме разстоянието на обектите, които пеят американския сензор} за (posc = 170; posc> = 10; posc--) {servo.write (posc); забавяне (50); нас(); // измерване на разстоянието на обектите, изпяване на американския сензор} Serial.println ("Сканиране завършено"); // за флаг за отстраняване на грешки = 0; } // ** Край на функцията за почистване на серво **
Както беше казано по-рано, сервомоторът може да се управлява и ръчно от смарт телефона. Просто плъзнете надясно, за да накарате двигателя да се движи надясно, и плъзнете наляво, за да накарате двигателя да се движи наляво. Горната функция се използва за постигане на същото. Ангелът на серво мотора ще бъде директно получен от Bluetooth модула и съхранен в променливата BluetoothData , след което серво е разположено в този конкретен ангел, като се използва линията servo.write (BluetoothData).
// ** Функция за ръчно управление на серво ** // void manualservo () {us (); // Вземете стойност от потребителя и контролирайте серво, ако (Blueboy.available ()) {BluetoothData = Blueboy.read (); Serial.println (BluetoothData); servo.write (BluetoothData); Serial.println ("Написано"); ако (BluetoothData == 'p') {флаг = 0; }}} // __ Край на функцията за ръчно управление __ //
В настоящето разстояние преди обекта се изчислява от долу функция. Той работи с прости формули, които Скорост = Разстояние / време. Тъй като знаем скоростта на американската вълна и времето, взето, разстоянието може да се изчисли, като се използват горните формули.
// ** Функция за измерване на разстоянието ** // void us () {int duration, distance; digitalWrite (trigPin, HIGH); delayMicroseconds (1000); digitalWrite (trigPin, LOW); продължителност = pulseIn (echoPin, HIGH); разстояние = (продължителност / 2) / 29,1; // Изчислява разстоянието от сензора if (разстояние <200 && разстояние> 0) Blueboy.write (разстояние); } // __ Функция за измерване на край на разстояние __ //
Ако имате някакви съмнения в програмата, не се колебайте да използвате раздела за коментари за вашите желания. Така че, след като сме готови с нашия код, можем веднага да изхвърлим кода в нашия хардуер. Но устройството за наблюдение няма да започне да работи, докато не бъде свързано с Android приложението. Също така проверете видеото в края за пълна работа.
Мобилно приложение за Android за ултразвуков радар:
Ако не искате да създавате собствено приложение и вместо това просто искате да инсталирате същото приложение, използвано в този урок, можете да следвате стъпките по-долу.
1. Можете директно да изтеглите APK файла от връзката по-долу. Този APK файл е създаден за Android версия 4.4.2 и по-нова (Kitkat горе). Извлечете APK файла от zip файла.
Приложение за Android за ултразвуков радар
2. Прехвърлете.Apk файла от вашия компютър на вашия мобилен телефон.
3. Активирайте инсталирането на приложение от неизвестни източници в настройките на android.
4. Инсталирайте приложението.
Ако бъде инсталирано успешно, ще намерите приложението с име „Zelobt“, инсталирано на вашия телефон, както е показано по-долу:
Ако сте инсталирали този APK, можете да пропуснете долната част и да преминете към следващия раздел.
Програмиране на вашето собствено приложение с помощта на обработка:
Или можете да използвате.APK файла, даден по-горе, или можете да създадете свое собствено приложение, като използвате Обработка, както е обяснено тук. С малко познания по програмиране също е много лесно да напишете свой собствен код за вашето приложение за Android. Ако обаче тепърва започвате, не е препоръчително да започнете с този код, тъй като той е малко по-висок от нивото за начинаещи.
Тази програма използва две библиотеки, а именно „библиотеката Ketai“ и „библиотеката ControlP5“ . Ketai библиотеката се използва за управление на целия хардуер, присъстващ в нашия мобилен телефон. Нещата като вас телефони нивото на батерията, стойностите на сензора за близост, стойностите на сензора за акселерометър, опциите за управление на Bluetooth и т.н. могат лесно да бъдат достъпни от тази библиотека. В тази програма ние използваме тази библиотека за установяване на комуникация между телефоните Bluetooth и Arduino Bluetooth (HC-05). В "ControlP5 библиотека" се използва за сюжетни графики за нашия радар система.
Най- пълен андроид програмата е прикрепен, можете да го изтеглите от тук.
ВНИМАНИЕ: Не забравяйте да инсталирате гореспоменатите библиотеки и не копирайте, поставете кодовата част самостоятелно, тъй като кодът импортира изображения от папката с данни, които като цяло са дадени в горния прикачен файл. Следователно изтеглете и използвайте само това.
След като приключите с кодиращата част и сте я компилирали успешно, можете директно да свържете мобилния си телефон към компютъра чрез кабел за данни и да кликнете върху бутона за възпроизвеждане, за да заглушите приложението на мобилния си телефон. Проверете и другите ни проекти за обработка: Игра на пинг понг с помощта на Arduino и FM радио, контролирано от FM телефон, с помощта на обработка.
Работно обяснение:
Сега сме готови с нашата хардуерна и софтуерна част. Включете хардуера и сдвоете мобилния си телефон с Bluetooth модула. След сдвояване отворете приложението „Zelobt“, което току-що инсталирахме, и сега изчакайте секунда и трябва да забележите, че вашият Bluetooth модул (HC-05) автоматично се свързва с вашия смартфон. След като се установи връзката, ще получите следния екран:
Можете да забележите, че там се казва свързано с: Име на устройството (хардуерен адрес) в горната част на екрана. Той също така показва текущия ангел на серво мотора и разстоянието между американския сензор. На червения фон също се нанася синя графика въз основа на измереното разстояние. Колкото по-близо се приближава обектът, толкова по-висока става синята област. Графиката, измерена, когато някои обекти са поставени в близост, също е показана на втората фигура по-горе.
Както казахме по-рано, можете също да управлявате вашия серво мотор от мобилното си приложение. За да направите това, просто щракнете върху бутона за спиране. Това ще спре автоматично да почиства вашия серво. Можете също така да намерите кръгло колело в долната част на екрана, което при плъзгане ще се завърти в посока на часовника или против часовниковата стрелка. Чрез плъзгане на това колело можете също да накарате вашия серво мотор да се завърти в тази посока. Колелото и графиката, актуализирани при плъзгане, са показани на снимката по-долу.
Кодът на Arduino е даден по-долу и APK файлът за Android приложение е тук. Работата на пълния проект е показана във видеото по-долу. Надявам се, че сте разбрали проекта. Ако имате някакви желания, моля, използвайте раздела за коментари по-долу.