Quyida Arduino Uno va Mega platalarining ko'rinishi




Download 3.5 Mb.
Sana16.03.2024
Hajmi3.5 Mb.
#173829
Bog'liq
qulf qo\'yish
Ширин шаҳар Фарход махалласи1, Sebimli kitobim, Курилишни ташкил этиш ва режалаштириш фанидан мисол, HTML tili, 2019г, 3D face creation via 2D images within blender virt, MB tittle, WS Sultan, qurilish xulosa fayli, yangi, mustaqil-ish(2), Информатика укитиш методикаси лаборатория машгулотлари Илясова Зухра, Информатика ўқитиш методикаси Закирова Ф, OPERATSION TIZIM

KIRISH
Arduino - bu kichik hajmdagi proyektlarni yaratish, turli robototexnika qismlarini yoki kichik o'lchamdagi robototexnikada foydalanish uchun mo'ljallangan plata hisoblanadi. Bunda siz professional bo'lmagan proyektlarni yaratishingiz mumkin. Masalan, siz RFID tizimi orqali yoki oddiy raqamli parol qurilmasini yasash orqali eshigingizga qulf qo'yishingiz yoki xonangizga kimdir kirganligini aniqlashda ishlatiluvchi qurilmalarni va yana oddiy haroratni o'lchovchi kabi qurilmalarni yasashingiz mumkin. Aslida Arduino sotuv markasi bo'lib, uning tarkibiga Arduino Uno, Arduino Mega, Arduino Leonardo, Arduino Ethernet, Arduino RS232, Arduino Diecimila, Arduino Pro, Arduino Nano, Arduino LilyPad, Arduino Robot, Arduino Esplora, Arduino Yun, Arduino Due kabi turlari kiradi. Bularning bir-biridan farqi, qo'llash mumkin bo'lgan imkoniyatlaridadir. Masalan, Arduino Uno kichik proyektlar, ko'p bo'lmagan modullarni boshqarish mumkin. Arduino Mega da esa Arduino Uno ga nisbatan ancha ko'p modullarni boshqara olish imkoniyatiga ega sababi unda Uno ga nisbatan portlari ancha ko'proq. Quyida Arduino Uno va Mega platalarining ko'rinishi:
ARDUINO MEGA

ARDUINO UNO



Endi qaysi platadan foydalanamiz degan savolga kelsak, biz Arduino Uno platasidan foydalanamiz. Sababi u juda ixcham, qulay va ko'plab funksialarni bajara oladi (biz darslar davomida o'rgatib boradigan). Arduino Uno imkoniyatlariga kelsak: Arduino Uno da Atmega328 mikrokontrolleri o'rnatilgan, unda 14ta raqamli (0-13) va 6ta analog (A0-A5) portlari mavjud, 3ta GND (ya'ni zemlya), 1ta 5V, 3.3V, AREF (ya'ni Analog portlardagi kuchlanishni boshqarish uchun), Vin (ya'ni tashqi kuchlanish manbai orqali arduinoga kuchlanish berish imkoniyatini beruvchi), IOREF (ya'ni kerakli kuchlanishga sozlab beruvchi), Reset (ya'ni Arduinoni qayta yuklash uchun), portlari mavjud. Yana bitta fizik tugma bo'lib, u Arduinoni qayta yuklash uchun ishlatiladi. Unga 2ta elektr tok manbaini ulash uchun port mavjud bo'lib, 1tasi USB orqali 5V li tok manbaidan elektr energiyasini olsa, ikkinchisi 220V (bu o'rtacha olganda) li o'zgaruvchan tok manbaidan elektr energiyasini oladi. Arduino ishlash kuchlanishi 5V bo'lib, unga kiruvchi kuchlanish 6-20V gachadir (tavsiya etilgan 7-12V gacha).


Arduino Uno bilan interfeysli klaviatura yordamida qulflanadigan va qulfni ochadigan shkaf tizimini yaratamiz. LCD displey qulflash haqidagi ma'lumotlarni ko'rsatadi va parol asosida qulfni ochadi.
Kirish
Shkafning xavfsizlik tizimi - bu shkafning ochilishini boshqarish uchun elektron va mexanik qismlarga ega ombor. Shkafning ochilishini boshqaradigan elektron komponentlar xavfsizlik va foydalanuvchi autentifikatsiyasini ta'minlaydi, bu faqat ma'lum parolga ega bo'lgan odamlarga kirish imkonini beradi.
Parol bilan himoyalangan oddiy DIY shkafi uchun siz quyidagilarni ishlatishingiz mumkin:
servo vosita (qulflash va qulfni ochish mexanizmini boshqarish),
Arduino taxtasi,
va klaviatura.
Bizning Arduino platamiz klaviaturadan foydalanuvchi kiritishini tahlil qiladi va servo vosita holatini boshqaradi. Foydalanuvchi to'g'ri parolni kiritganda, servo vosita qulflash mexanizmini ochadigan joyga o'tadi.
Shkaf tizimining ishlash printsipi
Shkaf klaviaturadan kiritilgan parolning mos kelishi va mos kelmasligi asosida ishlaydi. Parol dastlab kodda o'rnatiladi, uni mikrokontroller xotirasida saqlaydi.
Kiritilgan parol belgilangan parolga mos kelganda, Arduino qulfni ochish jarayonini boshlash uchun servo motorga signal yuboradi. Shkafni qulfdan chiqarishni taqlid qilish uchun servo vosita aylanadi yoki belgilangan burchak yoki pozitsiyaga o'tadi.
Kiritilgan parol belgilangan parolga mos kelmasa, Arduino qulflash jarayonini boshlaydi. Shkafni qulflash uchun servo vosita boshqa yo'nalishda yoki boshqa burchakda harakat qiladi.
Bizga nima kerak
Arduino Uno R3 platasi
Odatdagidek, men hozirdanoq o'zingizning sevimli elektron tijorat savatingizga barcha kerakli jihozlarni qo'shishni taklif qilaman, natijada siz umumiy xarajatlarni baholay olasiz va loyihani davom ettirish yoki ularni savatdan olib tashlash haqida qaror qabul qilishingiz mumkin. Shunday qilib, apparat faqat quyidagilar bo'ladi:
Arduino Uno kengashi
Dupont simlari
SG90 servo motor
LCD
4×4 matritsali klaviatura
non taxtasi

Bosqichma-bosqich protsedura
Arduino va LCD bilan shkafning ulanish sxemasi
Rasmda Arduino Uno bilan klaviatura, servo va LCD ning ulanish sxemasi ko'rsatilgan. Servo PWM pinida ishlaydi, shuning uchun ~ belgisi bo'lgan har qanday pin bilan ulaning (bu erda men PIN 9-dan foydalandim).




Quyidagi rasmda Arduino loyihasi bilan shkafimizning simi diagrammasi ham ko'rsatilgan


Arduino bilan Locker System kodini oling Kompyuteringizni Arduino-ga ulang va Arduino IDE-ni oching. Birinchi qadamlar uchun Windows kompyuterini Arduino bilan ulash bo'limiga murojaat qilishingiz mumkin. Siz .ino kodini quyidagi havola orqali yuklab olish joyimdan olishingiz mumkin: locker.ino Kod tushuntirish 1-bo'lim: Kutubxonalar Bu kutubxonalarni qo'shish uchun o'rnatishdan oldingi bo'lim. Klaviatura kutubxonasi kiritish uchun klaviaturadan foydalanish imkonini beradi. LiquidCrystal kutubxonasi suyuq kristall displey (LCD) bilan aloqa qilish imkonini beradi. Servo kutubxonasi servo motorni boshqarish imkonini beradi. Bu erda foydalanilgan barcha kutubxonalar allaqachon Arduino dasturiga kiritilgan, shuning uchun biz ularni kodimizdan chaqirishimiz kerak:
#include
#include
#include
2-bo'lim: O'rnatishdan oldin o'zgaruvchilar bo'limi
Ushbu bo'limda biz parolimizning maksimal uzunligini aniqlashni boshlaymiz:
#define Password_Length 5
Shuningdek, biz A0, A1, A2, A3, A4 va A5 pinlari yordamida LiquidCrystal ("lcd") uchun servo ob'ekt va ob'ekt yaratamiz.
Servo myservo; LiquidCrystal lcd(A0, A1, A2, A3, A4, A5); Shuningdek, u "pos" nomli butun son o'zgaruvchini 0 ga ishga tushiradi, bu pozitsiyani belgilaydi. int pos = 0;
Keyin kod "Parol_uzunligi" bilan belgilangan o'lchamga ega bo'lgan 2 ta belgi massivini e'lon qiladi: "Ma'lumotlar" va "Master". Oxirgisi, shuningdek, "1234" ga o'rnatilgan standart qiymatni oladi.
Nihoyat, “data_count” va “master_count” nomli ikki baytli o‘zgaruvchilar e’lon qilinadi va 0 ga ishga tushiriladi:
char Data[Password_Length];
char Master[Password_Length] = "1234";
byte data_count = 0, master_count = 0;
3-bo'lim: O'rnatishdan oldin bo'lim
Ushbu kod eshikni ochish va yopish uchun ikkita mantiqiy o'zgaruvchidan foydalanadi. Pass_is_good rost bo'lganda, shkaf tizimi ochiladi.
bool Pass_is_good;
bool door = false;
4X4 elementlarning klaviatura matritsasi har bir satr va ustun uchun uning alifbolari bilan belgilanadi.
char customKey;
const byte ROWS = 4;
\ const byte COLS = 4;
char keys[ROWS][COLS] = {
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};
Klaviaturaning pin raqamlari rowPins va colPins massivlari bilan o'rnatiladi. Ob'ekt klaviatura xususiyatlariga kirish uchun klaviatura uchun yaratilgan:
byte rowPins[ROWS] = {0, 1, 2, 3};
byte colPins[COLS] = {4, 5, 6, 7};
Keypad customKeypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS);
4-bo'lim: O'rnatish bo'limi
Impuls kengligi diapazoni 2000 va 2400 mikrosekundlar orasida o'rnatiladi va servo vosita 9-pinga ulanadi.
void setup()
{
myservo.attach(9, 2000, 2400);
Servo dastlab ServoClose() funksiyasini chaqirish orqali yopiladi.
ServoClose();
LCD displey 2 qator va 16 ustundan boshlanadi. LCD displeyda "Protected Locker" so'zi yozilgan. Xabarni ko'rsatish uchun kutish paytida nuqtalarni ko'rsatadigan loading() usuli qo'llaniladi.
lcd.begin(16, 2);
lcd.print("Protected Locker");
loading("Loading");
lcd.begin(16, 2);
lcd.print("Protected Locker");
loading("Loading");
LCD displey toza.
lcd.clear();
}
5-bo'lim: Loop bo'limi
Agar "eshik" o'zgaruvchisining qiymati to'g'ri bo'lsa, bu eshik ayni paytda ochiq ekanligini anglatadi. Eshik ochiq bo'lsa, maxsus klaviatura klaviaturada tugma bosilishini tekshiradi:
void loop()
{
if (door == true)
{
customKey = customKeypad.getKey(); "customKey" o'zgaruvchisi getKey() funktsiyasining chiqishini saqlaydi. 3000 millisekundlik kechikish qo'shiladi, LCD displey o'chiriladi, ServoClose() funksiyasi yordamida servo yopiladi, LCD displeyda "locker Closed" chop etiladi va "eshik" o'zgaruvchisi "false" ga o'rnatiladi, bu esa eshik Agar tugmachani bosish "#" bo'lsa, endi yopiq. Eshik hali ochilmagan bo'lsa, u Open() funksiyasini chaqiradi.
if (customKey == '#')
{
lcd.clear();
ServoClose();
lcd.print("locker Closed");
delay(3000); door = false;
}
}
else Open();
}
6-bo'lim: LCD displeyni yuklash va LCD ma'lumotlarini tozalash funksiyalari
Kod "yuklash" funksiyasini belgilaydi, u belgilar qatorini (string) parametr sifatida qabul qiladi. lcd.setCursor(0, 1) dan foydalanib, "yuklash" funksiyasi LCD kursorni ikkinchi qatorning birinchi ustuniga o'tkazadi. lcd.print(msg) yordamida u taqdim etilgan xabarni (msg[]) LCD displeyda chop etadi. Shundan so'ng, u 9 takroriy tsiklni boshlaydi.

Loop har bir iteratsiya uchun 1000 millisekundlik kechikishni qo'llash uchun delay(1000) funksiyasidan foydalanadi. U nuqta “”ni chop etish uchun lcd.print(“”) dan foydalanadi. yuklash animatsiyasi effektini yaratish uchun LCD displeyda.


void loading (char msg[])
{
lcd.setCursor(0, 1);
lcd.print(msg);
for (int i = 0; i < 9; i++)
{
delay(1000);
lcd.print(".");
}
}
void clearData()
{
while (data_count != 0)
{
Data[data_count--] = 0;
}
return;
}
7-bo'lim: Servoni ochish va yopish
Ushbu bo'limda servo 10 daraja o'zgarish bilan yopiladi, xuddi shunday, boshqa funktsiya servoni 10 daraja o'sish bilan ochadi.
Bu shuni anglatadiki, yopilish paytida servo 0 gradusgacha harakat qiladi, ochish uchun esa 90 gradusgacha harakat qiladi.
void ServoClose()
{for (pos = 90; pos >= 0; pos -= 10)
{
myservo.write(pos);
}
}
void ServoOpen()
{
for (pos = 0; pos <= 90; pos += 10)
{
myservo.write(pos);
}
}
8-bo'lim: parolni tekshiring . Parolni kiritish va tekshirish jarayoni kodda belgilangan "ochiq" deb nomlangan funktsiya tomonidan amalga oshiriladi. Bu LCD panelda "Parolni kiriting" xabarini ko'rsatadi.
void Open()
{
lcd.setCursor(0, 0);
lcd.print("Enter Password");
U LCD displeyni yangilaydi, klaviaturadan tugmachani bosadi, uni "ma'lumotlar" qatoriga qo'shadi va "data_count" o'zgaruvchisini oshiradi.
customKey = customKeypad.getKey();
if (customKey)
{
Data[data_count] = customKey; lcd.setCursor(data_count, 1); lcd.print(Data[data_count]); data_count++; } Strcmp () funksiyasi kiritilgan parolni (ma'lumotlarni) asosiy parol (Master) bilan solishtirish uchun parol uzunligi mo'ljallangan uzunlikdan oshib ketishini tekshirish uchun ishlatiladi (Parol_length – 1). Agar parollar mos kelsa, u ServoOpen() usulini chaqiradi, LCD displeyda "ochiq shkaf" ni ko'rsatadi, "eshik" o'zgaruvchisini rostga o'rnatadi va 5 soniya kutadi. if (data_count == Password_Length - 1)
{
if (!strcmp(Data, Master))
{
lcd.clear();
ServoOpen();
lcd.print(" Open locker ");
door = true;
delay(5000);
loading("Wait");
lcd.clear();
lcd.print(" Time out! ");
delay(1000);
ServoClose();
door = false;
}
Agar parollar boshqacha bo'lsa, u hech narsa qilmaydi. LCD displeyda "noto'g'ri parol!"va agar parollar mos kelmasa, "eshik" o'zgaruvchisi false ga o'rnatiladi.
else { lcd.clear();
lcd.print("Wrong Password! ");
door = false;
}
delay(1000);
lcd.clear();
clearData();
}
}
Natijalar Dastlab, LCD displey foydalanuvchini parolni kiritishga taklif qiladi. Ushbu xabardan so'ng biz kodni kiritishimiz mumkin. Kod to'g'ri bo'lganda, servo harakati 90 daraja aylanadi. Parol noto'g'ri bo'lsa, u harakatsiz qoladi. Biroz vaqt o'tgach, u 0 darajaga qaytadi. Agar parol noto'g'ri bo'lsa, servo harakat qilmaydi va LCD noto'g'ri parolni ko'rsatadi.

Arduino Uno simulyatsiyasi 1 bilan parol bilan himoyalangan shkaf

Arduino Uno simulyatsiyasi 2 bilan parol bilan himoyalangan shkaf



Arduino Uno simulyatsiyasi 3 bilan parol bilan himoyalangan shkaf

Arduino Uno simulyatsiyasi 4 bilan parol bilan himoyalangan shkaf
Download 3.5 Mb.




Download 3.5 Mb.

Bosh sahifa
Aloqalar

    Bosh sahifa



Quyida Arduino Uno va Mega platalarining ko'rinishi

Download 3.5 Mb.