Mundarija:

Arduino 101: Texnik yigitdan kurs: 4 qadam
Arduino 101: Texnik yigitdan kurs: 4 qadam

Video: Arduino 101: Texnik yigitdan kurs: 4 qadam

Video: Arduino 101: Texnik yigitdan kurs: 4 qadam
Video: Котика ударило током, 10 т. Вольт 2024, Iyul
Anonim
Arduino 101: Texnik yigitdan kurs
Arduino 101: Texnik yigitdan kurs

Umid qilamanki, Arduino dunyosiga sho'ng'ishni xohlaydigan ko'p odamlar, ayniqsa yangi boshlanuvchilar, bu va boshqa maqolalarim/ko'rsatmalarni (men muntazam joylashtiradigan) foydali deb bilishadi.

Bu oddiy nusxa ko'chirish va joylashtirish darslariga o'xshamaydi. Bundan ham ko'proq bo'lardi.

Salom! Men Romanman va men PHP -ning o'rta darajadagi ishlab chiqaruvchisiman.

Bu biroz oldingi tarixga ega bo'ladi, shuning uchun agar siz keyingi bosqichga o'tmoqchi bo'lsangiz - pastga o'ting, talablar.

Men 10 yoshimda dasturlashni boshlaganman. va bu menga katta ta'sir ko'rsatdi. Chunki bu juda qiziq edi - men ishonmadim. Bundan tashqari, mening yoshimdagi yigitlarning ko'pchiligi maktabda bunday ko'nikmalarni namoyon qila olishmagan. Bu biz kursda informatika, fan sifatida va dasturlashni o'rganishni boshlashimizdan oldin edi.

Shunday qilib, men odamlarga yordam berishni xohlardim. Ularning hayotini osonlashtirish va ba'zi vositalarni taqdim etish, bu ularga odatdagi tartibni buzishga va qandaydir muammolarni hal qilishga yordam beradi. Va 2 yil oldin men qo'shimcha sifatida Arduino bilan kelishdim.

Keyin men qandaydir kursni tanlashga qaror qildim va shunga o'xshash narsalarni yaratishga qaror qildim. Keyinchalik, men Youtube -da videolarni joylashtiraman, u erda siz ko'rishingiz mumkin, qanday qilib mukammal mos kelish uchun narsalarni sozlashingiz va qilishingiz kerak.

Ammo bu erda siz mendan asosiy kod haqida ko'proq ma'lumotga ega bo'lasiz. Kodni to'g'ri tuzish, dasturlash tamoyillari nima va ular nima uchun muhim. Biz qilayotgan barcha ishlar - bu muhandislik. Va xato qilish uchun joy yo'q. Shunday qilib, aniq o'qing va agar sizda ba'zi savollar paydo bo'lsa - uni sharhlarga yozib qo'ying.

1 -qadam: Kerakli dasturiy ta'minotni o'rnating/kerakli uskunani oling

Rivojlanish jarayonini boshlash uchun sizga kerak bo'ladi:

Dasturiy ta'minot

- Visual Studio kodi

- Platform. IO

Uskuna

- Arduino taxtalaridan biri (Mega 2560, Nano, Leonardo va boshqalar)

- Non paneli

-Dupont simlari (Erkak-erkak)

- Har xil nominalli rezistorlar

- RGB Ledlar

- Ko'rgazmalar va boshqalar

2 -qadam: dasturlash tamoyillari

Agar siz samarali va tushunarli kod yozmoqchi bo'lsangiz, dasturlash tamoyillari haqida ko'proq bilishingiz kerak. Loyiha misollarida biz quyidagi printsiplarga amal qilamiz:

- Qattiq

- QURUQ (O'zingizni takrorlamang)

- KISS (juda sodda tuting)

- YAGNI (sizga kerak emas)

SOLID nima?

SOLIDni quyidagicha yozish mumkin:

- [S] Yagona javobgarlik (Har bir sinf bir turdagi uchun javobgardir)

- [O] Ochiq yopiq tamoyil (Sinflar ham, ob'ektlar ham uzaytirilishi mumkin emas, lekin o'zgartirilishi mumkin)

- [L] Liskov almashtirish (Sinflar yoki ob'ektlar zarar ko'rmagan holda ularning kichik turlariga almashtirilishi mumkin edi)

- [I] Interfeyslarni ajratish (bitta universalga ega bo'lish o'rniga, ko'proq maxsus interfeyslarga ega bo'lish yaxshiroq)

- [D] qaramlik inversiyasi (sinflar mavhumlikka asoslangan bo'lishi kerak)

DRY nima?

QURUQ - o'zingizni takrorlamang degan ma'noni anglatadi. Shunday qilib, siz qandaydir echim topsangiz va bir xil usullar borligini ko'rsangiz - iloji boricha sodda bo'lishi uchun yordamchi sinfni shu usullar bilan (hatto statik qo'ng'iroq qilish mumkin) yarating. Ammo bu boshqa hikoya.

KISS nima?

KISS "Buni juda sodda tut" degan so'zni himoya qiladi. Bu shuni anglatadiki, sizning barcha echimlaringiz iloji boricha kamroq kod qatoriga ega bo'lishi kerak, lekin butun sinfni murakkablashtirmasligi kerak.

YAGNI nima?

YAGNI sizga kerak emas degan so'zni qo'llab -quvvatlaydi. Bu shuni anglatadiki, siz sinflar va funktsiyalarni shunday qurishingiz kerakki, ularning hammasi yoki asosan ishlatiladi. Chunki agar bunday bo'lmasa - xavfsiz tarzda olib tashlanadi, chunki sizga kerak emas. Oddiy.

Kodni iloji boricha toza saqlashga harakat qiling.

3 -qadam: Loyihalar

Bu qadam o'z ichiga oladi va davom ettiriladi, chunki misollar va kutubxonalarga ega bo'lgan loyihalar tufayli siz ajratib, ishlata olasiz.

Bundan tashqari, men sizning loyihangizga kerakli liblarni yuklab olish imkoniyatiga ega bo'lish uchun VS kodining kengaytmasini yaratishga harakat qilaman.

Shuni yodda tutingki, havolasiz loyihalar hali amalga oshmagan va yaqin kelajakda amalga oshiriladi. Men iloji boricha ma'lumotli ko'rsatma berishga harakat qilaman. Va keyinroq - men video suratga olaman va ularni sizga ko'rsatma sifatida qo'shaman.

  • Oddiy LED lampalarini boshqarish
  • LED + potentsiometr (potentsiometr qiymatlarini LEDlar soniga dinamik xaritalash)
  • Oddiy ob -havo stantsiyasi (v1; Namlik + Harorat)
  • Kengaytirilgan ob -havo stantsiyasi/ LCD 1602 (v2)
  • Murakkab ob -havo stantsiyasi v2 + Sozlamalar (v3)
  • Kengaytirilgan ob -havo stantsiyasi v3 + IR (infraqizil masofadan boshqarish) displeyni boshqarish (v4)
  • Kengaytirilgan ob -havo stantsiyasi v4 + LEDni (v5) ko'rsatish
  • Oddiy RFID o'quvchi (v1)
  • Kengaytirilgan RFID Reader v1 w/ LCD 1602 va 0,91 'OLED -displeyda ma'lumotlarni ko'rsatish (I2C) (v2)
  • Kengaytirilgan RFID o'quvchi v2/ o'rni boshqaruvi (v3)
  • Oddiy bitta SIM-kartali stantsiya (v1)
  • Kengaytirilgan bitta SIM-kartali stantsiya, 0,91 dyuymli OLED-displey (v2)
  • 0,91 dyuymli OLED-displeyli ikkita SIM-kartali rivojlangan stantsiya (v1)
  • Kengaytirilgan ikkita SIM-kartali v1-SMS yuborish
  • Avtomat
  • Oddiy RGB Strip WS8212b nazorati (v1)
  • Kengaytirilgan RGB Strip WS8212b Control v1 w/ Ranglar + Yorqinlikni boshqarish (Potensiometr + Tugmalar) (v2)
  • IRVending mashinasi bilan rivojlangan RGB Strip WS8212b Control v1

Barcha loyihalar va kutubxonalar GitHub -da mavjud bo'ladi.

4 -qadam: Kelgusi loyihalar nashr etiladi

7-8 mart '20- oddiy LED lampochkalarni boshqarish- LED + potentsiometr (potentsiometr qiymatlarini LEDlar soniga dinamik xaritalash)

Tavsiya: