Arduino uchun dasturlash muhitini bloklash. Arduino uchun grafik dasturlash tili. Kodning tuzilishini ingl. grafik muhitlar

Men FLProg loyihasining foni haqida gapirdim. Endi men sizga loyiha va uning bugungi holati haqida ko'proq ma'lumot bermoqchiman.
Loyihaning asosiy maqsadi Arduino platasi foydalanuvchilari orasida dasturlashdan bexabar odamlarni jalb qilishdir. Bu sanoat nazoratchilarini ishlab chiqaruvchilar tomonidan yillar davomida to'plangan sanoat dasturlash tajribasi tufayli mumkin.
Loyiha ikki qismdan iborat. Birinchi qism FLProg ish stoli ilovasi bo'lib, u Arduino platalari uchun grafik dasturlash muhiti hisoblanadi. Ikkinchidan, bu FLProg.ru sayti bo'lib, u orqali dastur foydalanuvchilari hamjamiyatining a'zolari bir-biri bilan muloqot qilishlari, loyihaning so'nggi yangiliklarini bilishlari, dasturning so'nggi versiyasini yuklab olishlari va ilova bilan ishlash bo'yicha kerakli ma'lumotlarni topishlari mumkin.

Keling, tartibda boshlaylik.
FLProg dasturi sanoat boshqaruvchi dasturlash sohasida standart bo'lgan FBD va LAD grafik tillaridan foydalangan holda Arduino platalari uchun proshivka yaratish imkonini beradi.

FBD tilining tavsifi

FBD (Funktsiya blok diagrammasi) IEC 61131-3 standartining grafik dasturlash tilidir. Dastur yuqoridan pastgacha ketma-ket bajariladigan sxemalar ro'yxatidan tuzilgan. Dasturlashda kutubxona bloklari to'plamidan foydalaniladi. Blok (element) - bu pastki dastur, funksiya yoki funksional blok (VA, YOKI, EMAS, triggerlar, taymerlar, hisoblagichlar, analog signallarni qayta ishlash bloklari, matematik amallar va boshqalar). Har bir alohida zanjir alohida elementlardan grafik tarzda tuzilgan ifodadir. Keyingi blok blokning chiqishiga ulanadi, zanjir hosil qiladi. Zanjirning ichida bloklar qat'iy ravishda ulanish tartibida bajariladi. O'chirishni hisoblash natijasi ichki o'zgaruvchiga yoziladi yoki boshqaruvchi chiqishiga beriladi.


LAD tilining tavsifi

Narvon diagrammasi (LD, LAD, RKS) - o'rni (narvon) mantiqiy tili. Tilning sintaksisi rele texnologiyasida tuzilgan mantiqiy sxemalarni almashtirish uchun qulaydir. Til sanoat korxonalarida ishlaydigan avtomatlashtirish muhandislariga mo'ljallangan. Tekshirgich mantig'ining aniq interfeysini ta'minlaydi, bu nafaqat haqiqiy dasturlash va ishga tushirish vazifalarini, balki boshqaruvchiga ulangan uskunadagi nosozliklarni tezda bartaraf etishni ham osonlashtiradi. Narvon mantiqiy dasturi elektr muhandislari uchun vizual va intuitiv grafik interfeysga ega bo'lib, mantiqiy operatsiyalarni yopiq va ochiq kontaktli elektr davri sifatida ifodalaydi. Ushbu sxemada oqimning oqimi yoki yo'qligi mantiqiy operatsiya natijasiga mos keladi (to'g'ri - agar oqim o'tsa; noto'g'ri - agar oqim o'tmasa). Tilning asosiy elementlari kontaktlar bo'lib, ularni majoziy ma'noda o'rni yoki tugma kontaktlari juftligiga o'xshatish mumkin. Bir juft kontakt mantiqiy o'zgaruvchi bilan aniqlanadi va bu juftlikning holati o'zgaruvchining qiymati bilan aniqlanadi. Odatda yopiq va odatda ochiq kontakt elementlari o'rtasida farqlanadi, bu elektr zanjirlarida odatda yopiq va odatda ochiq tugmalar bilan taqqoslanishi mumkin.


Men tashqi qurilmalar bilan ishlash uchun mas'ul bo'lgan funktsional bloklarni qo'shish orqali ushbu tillarning klassik funksionalligini biroz kengaytirdim. Ular ular bilan ishlash uchun mo'ljallangan kutubxonalar uchun o'ramlardir.
FLProg-dagi loyiha - bu har birida to'liq umumiy elektron modul yig'ilgan platalar to'plami. Qulaylik uchun har bir taxtada nom va izohlar mavjud. Bundan tashqari, har bir taxta o'ralgan bo'lishi mumkin (ish tugagandan so'ng ish joyida joy tejash uchun) va joylashtirilishi mumkin. Kengash nomidagi qizil ko'rsatkich taxta tartibida xatolar mavjudligini ko'rsatadi.

FBD til rejimida dastur oynasining ko'rinishi

LAD tili rejimida dastur oynasining ko'rinishi

Har bir plataning sxemasi kontroller mantig'iga muvofiq funktsional bloklardan yig'iladi. Funktsional bloklarning ko'pchiligi sozlanishi mumkin bo'lgan xususiyatga ega bo'lib, ularning ishlashini ma'lum bir ilova ehtiyojlariga muvofiq sozlash uchun ishlatilishi mumkin.

Bundan tashqari, har bir funktsional blok uchun istalgan vaqtda mavjud bo'lgan va uning ishlashi va sozlamalarini tushunishga yordam beradigan batafsil tavsif mavjud.

Dastur bilan ishlashda foydalanuvchiga kod yozish, kirish va chiqishlardan foydalanishni nazorat qilish, nomlarning o'ziga xosligini va ma'lumotlar turlarining izchilligini tekshirish kerak emas. Bularning barchasi dastur tomonidan nazorat qilinadi. Shuningdek, u butun loyihaning to'g'riligini tekshiradi va xatolar mavjudligini ko'rsatadi.
Tashqi qurilmalar bilan ishlash uchun bir qancha yordamchi vositalar yaratilgan. Bu real vaqt rejimida soatni ishga tushirish va sozlash vositasi, OneWire va I2C avtobuslarida qurilma manzillarini o'qish uchun vositalar, shuningdek, IR masofadan boshqarish pultida tugma kodlarini o'qish va saqlash uchun vositadir. Barcha belgilangan ma'lumotlar fayl sifatida saqlanishi va keyinchalik dasturda ishlatilishi mumkin.

Hozirda FBD tilida mavjud funktsiya bloklari ro'yxati

Asosiy elementlar



Maxsus bloklar

tetiklar



Taymerlar


Hisoblagichlar


Matematika



Algebra






Taqqoslash

Com - Port

yuborish
SendVariable
Receivevariable

Oʻzgartirish


Motorlar

Servomotor
o'gay motor

Haqiqiy vaqt soati


Displeylar

HD44780 chipida displey
HD44780 I2C chipida orqa yorug'likni ko'rsatish

Strings

String qo'shish

Sensorlar



SD karta

SD kartaga o'zgaruvchini yozing
SD kartadan fayl yuklanmoqda

Konvertatsiya turi

String konvertatsiyasi
Floatni butun songa aylantiring

Kengaytma IC

Terminal kengaytirgich 74HC595

Bit operatsiyalari

Kodlovchi
Dekoder
Bir oz o'qish
Beatni yozib olish

Turli xil

Matritsali klaviatura

LAD tilida hozirda mavjud funktsiya bloklari ro'yxati

Asosiy bloklar

Aloqa
Bobin
Chaqirishdan himoya qilish
Etakchi qirralarni aniqlash

Maxsus o'rni

Bistable rele
Vaqt releyi
Generator
Taqqoslash relesi

Algebra

GUNOH
COS
TAN
ABS
MAX
MIN
SQ
SQRT
asir
Tasodifiy

Analog bloklar

Masshtablash
Matematika
Hisoblagich
analog kalit
Ko'pdan bittaga o'tish
Birdan ko'pga o'tish
Controller analog kirish
Tekshirish moslamasining analog chiqishi
Analog ulagichga kirish
Analog konnektor chiqishi
tezlik hisoblagichi

Com Port

ComPort-ga o'tkazing
ComPort orqali o'zgaruvchini uzatish
ComPort orqali o'zgaruvchini qabul qilish

Motorlar

Servo motor
step motor

Haqiqiy vaqt soati

Ma'lumot olish uchun
Signal
Vaqtni sozlash

Displeylar

HD44780 chipida displey
HD4480 I2C chipiga asoslangan orqa yorug'likni boshqarish blokini ko'rsatish
Etti segmentli indikatorni dekodlash birligi

Strings

String qo'shish

Sensorlar

Ultrasonik masofa o'lchagich HC-SR04
Harorat va namlik sensori DHT11 (DHT21, DHT22)
Harorat sensori DS18x2x
IR reaktiv
BMP-085

Salom! Men Alikin Aleksandr Sergeevich, qo'shimcha ta'lim o'qituvchisi, Labinsk markaziy bolalar va o'smirlar teatrida "Robotexnika" va "Radiotexnika" to'garaklariga rahbarlik qilaman. Men ArduBlosk dasturi yordamida Arduino-ni dasturlashning soddalashtirilgan usuli haqida bir oz gaplashmoqchiman.

Men ushbu dasturni o'quv jarayoniga kiritdim va natijadan mamnunman, u bolalar orasida, ayniqsa oddiy dasturlarni yozishda yoki murakkab dasturlarning dastlabki bosqichini yaratishda alohida talabga ega. ArduBlosk - bu grafik dasturlash muhiti, ya'ni barcha harakatlar rus tilida imzolangan harakatlar bilan chizilgan rasmlar bilan amalga oshiriladi, bu Arduino platformasini o'rganishni sezilarli darajada osonlashtiradi. 2-sinfdagi bolalar ushbu dastur tufayli Arduino bilan ishlashni osonlikcha o'zlashtirishlari mumkin.

Ha, ba'zilar Scratch hali ham mavjud va Arduino dasturlash uchun juda oddiy grafik muhit deb aytishlari mumkin. Ammo Scratch Arduino-ni miltillamaydi, balki uni faqat USB kabeli yordamida boshqaradi. Arduino kompyuterga bog'liq va avtonom ishlay olmaydi. O'z loyihalaringizni yaratishda Arduino uchun avtonomiya, ayniqsa robot qurilmalarini yaratishda asosiy narsa.

Hatto NXT yoki EV3 kabi taniqli LEGO robotlari ham Arduino dasturlashda ArduBlosk dasturining paydo bo'lishi bilan talabalarimiz uchun unchalik qiziq emas. Bundan tashqari, Arduino har qanday LEGO dizaynerlariga qaraganda ancha arzon va ko'plab komponentlarni oddiygina eski maishiy elektronikadan olish mumkin. ArduBlosk dasturi nafaqat yangi boshlanuvchilarga, balki Arduino platformasining faol foydalanuvchilariga ham o'z ishlarida yordam beradi.

Xo'sh, ArduBlock nima? Aytganimdek, bu grafik dasturlash muhiti. Deyarli butunlay rus tiliga tarjima qilingan. Ammo ArduBlosk-da diqqatga sazovor narsa nafaqat bu, balki biz tomonidan yozilgan ArduBlosk dasturi Arduino IDE kodiga aylantirilganligidir. Ushbu dastur Arduino IDE dasturlash muhitiga o'rnatilgan, ya'ni bu plagin.

Quyida Arduino IDE-da miltillovchi LED va o'zgartirilgan dasturga misol keltirilgan. Dastur bilan barcha ishlar juda oddiy va har qanday talaba buni tushunishi mumkin.

Dastur ustida ishlash natijasida siz nafaqat Arduino-ni dasturlashingiz, balki bizga tushunarsiz bo'lgan buyruqlarni Arduino IDE-ning matn formatida o'rganishingiz mumkin, ammo agar siz standart buyruqlarni yozishga dangasa bo'lsangiz, tezda eskiz qilishingiz kerak. tez sichqonchani manipulyatsiyasi bilan ArduBlok-da oddiy dasturni yarating va uni Arduino IDE-da disk raskadrovka qiling.

ArduBlok-ni o'rnatish uchun avval Arduino IDE-ni rasmiy Arduino veb-saytidan yuklab olishingiz va o'rnatishingiz va Arduino UNO platasi bilan ishlashda sozlamalarni tushunishingiz kerak. Buni qanday qilish xuddi shu saytda yoki Amperkda tasvirlangan yoki YouTube-ga qarang. Xo'sh, bularning barchasini tushunganingizda, ArduBlok-ni rasmiy veb-saytdan yuklab olishingiz kerak, bu erda. Men so'nggi versiyalarni yuklab olishni tavsiya etmayman, ular yangi boshlanuvchilar uchun juda qiyin, lekin 2013-07-12 versiyasi eng muhimi, bu fayl u erda eng mashhurdir.

Keyin, yuklab olingan fayl nomini ardublock-all va "hujjatlar" papkasida o'zgartiramiz. Quyidagi papkalarni yarating: Arduino > asboblar > ArduBlockTool > asbob va ikkinchisida biz yuklab olingan va qayta nomlangan faylni tashlaymiz. ArduBlok barcha operatsion tizimlarda ishlaydi, hatto Linuxda ham, men uni XP, Win7, Win8 da shaxsan sinab ko'rdim, barcha misollar Win7 uchun. Dasturni o'rnatish barcha tizimlar uchun bir xil.

Xo'sh, agar osonroq bo'lsa, men Mail-disk 7z-da ​​arxiv tayyorladim, uni ochishda siz 2 ta papkani topasiz. Birida Arduino IDE dasturi allaqachon ishlamoqda, ikkinchisida esa tarkib hujjatlar papkasiga yuborilishi kerak.

ArduBlok-da ishlash uchun siz Arduino IDE-ni ishga tushirishingiz kerak. Keyin biz Asboblar yorlig'iga o'tamiz va u erda biz ArduBlok elementini topamiz, ustiga bosing - va bu bizning maqsadimiz.

Endi dasturning interfeysi bilan shug'ullanamiz. Siz allaqachon tushunganingizdek, unda sozlamalar yo'q, lekin dasturlash uchun juda ko'p piktogramma mavjud va ularning har biri Arduino IDE matn formatida buyruqni bajaradi. Yangi versiyalarda yanada ko'proq piktogramma mavjud, shuning uchun ArduBlokning so'nggi versiyasi bilan shug'ullanish qiyin va ba'zi piktogrammalar rus tiliga tarjima qilinmagan.

"Menejment" bo'limida biz turli xil tsikllarni topamiz.

"Portlar" bo'limida biz portlarning qiymatlarini, shuningdek ularga ulangan ovoz chiqaruvchi, servo yoki ultratovushli yaqinlik sensorlarini boshqarishimiz mumkin.

"Raqamlar / konstantalar" bo'limida biz raqamli qiymatlarni tanlashimiz yoki o'zgaruvchini yaratishimiz mumkin, ammo siz quyidagi qiymatdan foydalana olmaysiz.

"Operatorlar" bo'limida biz barcha kerakli taqqoslash va hisoblash operatorlarini topamiz.

Utilitalar bo'limi asosan vaqt o'tishi bilan piktogrammalardan foydalanadi.

"TinkerKit Bloks" - sotib olingan TinkerKit sensorlari uchun bo'lim. Albatta, bizda bunday to'plam yo'q, lekin bu boshqa to'plamlar uchun piktogramma ishlamaydi degani emas, aksincha, yigitlar uchun LED yoki tugmani yoqish kabi piktogrammalardan foydalanish juda qulay. . Bu belgilar deyarli barcha dasturlarda qo'llaniladi. Ammo ularning o'ziga xos xususiyati bor - ular tanlanganda portlarni ko'rsatadigan noto'g'ri belgilar mavjud, shuning uchun ularni olib tashlash va "raqamlar / doimiylar" bo'limidagi belgini ro'yxatning yuqori qismiga almashtirish kerak.

"DF Robot" - bu bo'limda ko'rsatilgan sensorlar mavjud bo'lsa ishlatiladi, ular ba'zan topiladi. Va bizning bugungi misolimiz bundan mustasno emas, bizda "Sozlanishi mumkin bo'lgan IR kaliti" va "Line Sensor" mavjud. "Chiziq sensori" Amperkadan bo'lgani kabi rasmdagidan farq qiladi. Ularning harakatlari bir xil, ammo Amperka sensori ancha yaxshi, chunki u sezgirlik regulyatoriga ega.

Seeedstudio Grove - Men hech qachon ushbu bo'limning sensorlaridan foydalanmaganman, garchi faqat joystiklar mavjud. Ushbu bo'lim yangi versiyalarda kengaytirildi.

Va oxirgi bo'lim "Linker Kit". Unda taqdim etilgan sensorlar menga to'g'ri kelmadi.

Men chiziq bo'ylab harakatlanadigan robotning dasturiga misol ko'rsatmoqchiman. Robot yig'ishda ham, sotib olishda ham juda oddiy, lekin birinchi navbatda. Keling, uni sotib olish va yig'ishdan boshlaylik.

Mana qismlar to'plamining o'zi, hamma narsa Amperka veb-saytida sotib olingan.

  1. AMP-B001 Dvigatel qalqoni (2 kanal, 2 A) 1 890 rubl
  2. AMP-B017 Troyka qalqoni 1690 rubl
  3. AMP-X053 Batareya bo'limi 3×2 AA 1 60 RUB
  4. AMP-B018 Chiziq sensori raqamli 2 580 RUB
  5. ROB0049 Ikki g'ildirakli platforma miniQ 1 1890 RUB
  6. SEN0019 Infraqizil to'siq sensori 1 390 RUB
  7. FIT0032 Infraqizil to'siq sensori uchun o'rnatish 1 90 RUB
  8. A000066 Arduino Uno 1 1150 rub

Boshlash uchun biz g'ildirakli platformani yig'amiz va simlarni dvigatellarga lehimlaymiz.

Keyin eski anakartdan yoki boshqa shunga o'xshash moslamalardan olingan Arduino UNO platasini o'rnatish uchun tokchalarni o'rnatamiz.

Keyin biz Arduino UNO platasini ushbu tokchalarga biriktiramiz, lekin biz bitta murvatni mahkamlay olmaymiz - ulagichlar yo'lda qoladi. Siz, albatta, ularni lehimlashingiz mumkin, lekin bu sizga bog'liq.

Keyinchalik, biz infraqizil to'siq sensorini uning maxsus o'rnatgichiga biriktiramiz. E'tibor bering, sezgirlikni boshqarish yuqorida, bu sozlash qulayligi uchun.

Endi biz raqamli chiziqli datchiklarni o'rnatamiz, bu erda biz ular uchun bir nechta murvat va 4 gaykani izlashimiz kerak.Biz platformaning o'zi va chiziq sensori orasiga ikkita gaykani o'rnatamiz va qolganlari bilan datchiklarni mahkamlaymiz.

Keyingi o'rnatish Motor Shield yoki boshqa yo'l bilan siz motor drayverini chaqirishingiz mumkin. Bizning holatda, jumperga e'tibor bering. Biz motorlar uchun alohida quvvat manbaidan foydalanmaymiz, shuning uchun u bu holatda o'rnatiladi. Arduino UNO USB ulagichidan tasodifiy qisqa tutashuvlar bo'lmasligi uchun pastki qismi elektr lenta bilan yopishtirilgan.

Motor qalqoni ustiga Troyka qalqoni o'rnating. Bu sensorlarni ulash qulayligi uchun zarur. Biz foydalanadigan barcha sensorlar raqamli, shuning uchun chiziqli sensorlar 8 va 9-portlarga ulangan, chunki ular pin deb ham ataladi va infraqizil to'siqlar sensori 12-portga ulangan. 4, 5, 6, 7 portlaridan foydalana olmasligingizga ishonch hosil qiling, chunki ular Motor qalqoni tomonidan motorlarni boshqarish uchun ishlatiladi. Talabalar buni tushunishlari uchun men hatto bu portlarni qizil marker bilan bo'yab qo'ydim.

Agar siz allaqachon payqagan bo'lsangiz, biz o'rnatgan batareya bo'linmasi uchib ketmasligi uchun men qora yeng qo'shdim. Va nihoyat, biz butun tuzilmani oddiy kauchuk tarmoqli bilan tuzatamiz.

Batareya bo'limining ulanishlari 2 xil bo'lishi mumkin. Troyka qalqoniga birinchi simli ulanish. Shuningdek, elektr vilkasini lehimlash va uni Arduino UNO platasining o'ziga ulash mumkin.

Mana bizning robotimiz tayyor. Dasturlashni boshlashdan oldin, hamma narsa qanday ishlashini bilib olishingiz kerak, xususan:
- Dvigatellar:
Port 4 va 5 bitta dvigatelni, 6 va 7 ikkinchisini boshqarish uchun ishlatiladi;
5 va 6 portlarda PWM bilan motorlarning aylanish tezligini sozlaymiz;
4 va 7 signal portlari orqali oldinga yoki orqaga.
- Sensorlar:
Biz hammamiz raqamlimiz, shuning uchun ular 1 yoki 0 ko'rinishida mantiqiy signallarni beradi;
Va ularni sozlash uchun ular maxsus regulyatorlarga ega va mos tornavida yordamida ularni kalibrlash mumkin.

Tafsilotlarni Amperkada topishingiz mumkin. Nega bu yerda? Chunki Arduino bilan ishlash bo'yicha juda ko'p ma'lumotlar mavjud.

Xo'sh, biz, ehtimol, hamma narsaga yuzaki qaradik, o'rgandik va, albatta, robotni yig'dik. Endi uni dasturlash kerak, mana bu - uzoq kutilgan dastur!

Va dastur Arduino IDE-ga aylantirildi:

Void setup() ( pinMode(8 , INPUT); pinMode(12 , INPUT); pinMode(9 , INPUT); pinMode(4 , OUTPUT); pinMode(7 , OUTPUT); pinMode(5, OUTPUT); pinMode(6) , OUTPUT); ) void loop() ( if (digitalRead(12)) ( if (digitalRead(8)) ( if (digitalRead(9)) ( digitalWrite(4 , HIGH); analogWrite(5, 255); analogWrite( 6, 255); digitalWrite(7 , HIGH); ) boshqa (digitalWrite(4 , HIGH); analogWrite(5, 255); analogWrite(6, 50); digitalWrite(7, LOW); ) ) boshqacha ( if (digitalRead) (9)) ( digitalWrite(4 , LOW); analogWrite(5, 50); analogWrite(6, 255); digitalWrite(7 , HIGH); ) boshqa ( digitalWrite(4 , HIGH); analogWrite(5, 255); analogWrite(6, 255); digitalWrite(7 , HIGH); ) ) ) boshqa ( digitalWrite(4 , HIGH); analogWrite(5, 0); analogWrite(6, 0); digitalWrite(7 , HIGH); ) )

Xulosa qilib shuni aytmoqchimanki, bu dastur ta'lim uchun, hatto o'z-o'zini o'rganish uchun ham, Arduino IDE buyruqlarini o'rganishga yordam beradi. Eng muhimi, 50 dan ortiq o'rnatish piktogrammalari bilan u "muvaffaqiyatsiz" bo'lishni boshlaydi. Ha, haqiqatan ham, bu diqqatga sazovordir, chunki faqat ArduBlok-da doimiy dasturlash sizga Arduino IDE-da qanday dasturlashni o'rgatmaydi. "Nosozlik" deb ataladigan narsa dasturlarni aniq tuzatish uchun buyruqlarni o'ylash va eslab qolishga harakat qilish imkonini beradi.

Omad tilayman.

So'nggi yillarda dasturlash va robototexnika to'garaklari juda mashhur bo'lib, hatto boshlang'ich maktab o'quvchilari uchun ham mavjud. Bu, ta'kidlash kerakki, yirik kompaniyalar tomonidan faol foydalaniladigan grafik dasturlash muhitlaridan foydalanish tufayli mumkin bo'ldi. Grafik dasturlash muhitlari haqida gapirish uchun biz ulardan eng mashhur uchtasini tanladik.

Visuino - bu Arduino-mos keladigan Controllino sanoat kontrollerlarida (PLC) ishlaydigan bepul grafik muhit. Bu murakkab avtomatlashtirish tizimlari va IoT (Internet of Things, Internet of Things) yechimlarini yaratish imkonini beradi va buni oddiygina vizual bloklarni siljitish va ulash orqali amalga oshirish mumkin. Dasturiy ta'minot muhiti avtomatik ravishda sanoat kontrollerlari uchun kod ishlab chiqaradi.

Xo'sh, nima qilish kerak. Komponentlar panelidan komponentlarni (modullarni) tanlang va ularni dizayn maydoniga o'tkazing. Keyin ular ulanishi va xususiyatlarni o'rnatishi kerak. Bu ob'ekt inspektori yordamida amalga oshiriladi.

Visuino-ning afzalliklari matematik va mantiqiy funktsiyalar, servolar, displeylar, Internet va boshqalar uchun komponentlarning katta to'plamini o'z ichiga oladi.

PLC dasturlashtirilganda, grafik muhit boshqaruvchiga ulanishning mavjud usulini taklif qiladi. Bu ketma-ket port, Ethernet, Wi-Fi yoki GSM bo'lishi mumkin.

Nihoyat, sizning loyihangiz tayyor: barcha kontrollerlar ro'yxatga olingan, hamma narsa ishlaydi. Endi, yuqori panelda joylashgan Arduino logotipini bosish orqali siz Visuino-ni Arduino uchun kodlar yaratishga va uning ishlab chiqish muhitini (Arduino IDE) ochishga majbur qilasiz, bu orqali siz allaqachon kodni kompilyatsiya qilishingiz va uni PLC-ga yuklab olishingiz mumkin.

Maslahat. Agar o'rnatilgan plata sizning Arduino-ga mos kelmasa, uni "Select Board" buyrug'i yordamida o'zgartirishingiz mumkin.

Ushbu grafik dasturlash muhiti 2003 yilda MIT Media Laboratoriyasining bir guruh xodimlari mutlaqo hamma uchun ochiq bo'lgan dasturlash tilini ishlab chiqishga qaror qilganda yaratilgan. Natijada, bir muncha vaqt o'tgach, Scratch ommaga tanishtirildi.

Eng muhimi, u Legoga o'xshaydi. Hech bo'lmaganda printsip bir xil: bu ob'ektga yo'naltirilgan muhit bo'lib, unda dasturlar tafsilotlardan yig'iladi, rang-barang va yorqin. Ushbu tafsilotlarni turli yo'llar bilan ko'chirish, o'zgartirish, o'zaro ta'sir qilish uchun qilish mumkin. Scratch datchiklar, o'zgaruvchilar, harakat, tovush, operatorlar, tashqi ko'rinish, qalam, boshqaruv kabi buyruqlar bloklariga asoslanadi. O'rnatilgan grafik muharriri har qanday ob'ektni chizish imkonini beradi. Scratch yaratilganidan besh yildan kamroq vaqt o'tgach, Arduino PLC-ni dasturlash imkonini beruvchi Scratch for Arduino loyihasi (qisqacha S4A) tug'ildi.

Tizimning afzalliklari uning ruslashtirilganligi va to'liq mahalliylashtirilganligini o'z ichiga oladi - u haqida juda ko'p ma'lumotlarni topmoqchi bo'lgan har bir kishi. Bundan tashqari, ushbu grafik muhitda ishlash hatto o'qishga hali juda ishonmaydigan boshlang'ich maktab o'quvchilari uchun ham mavjud.

Maslahat. Scratchni yangi boshlaganlar uchun maxsus resurs mavjud: https://scratch-ru.info.

Agar biror kishi allaqachon Scratch-ni to'liq o'zlashtirgan bo'lsa, lekin Arduino-mos platalar dasturlashtirilgan Wiring-ga hali voyaga etmagan bo'lsa, unga Java-da yozilgan ArduBlosk vositasini maslahat berish vaqti keldi. Bu, ayniqsa, robototexnikani yaxshi ko'radiganlar uchun yaxshi.

Farqi nimada? Gap shundaki, Scratch Arduino-ni qanday miltillashni bilmaydi, u faqat PLC-ni USB orqali boshqaradi. Shunday qilib, Arduino o'z-o'zidan ishlay olmaydi, chunki u kompyuterga bog'liq.

Darhaqiqat, ArduBlosk bolalar uchun Scratch va juda professional, ammo arzon Visuino o'rtasidagi oraliq bosqichdir, chunki u ikkinchisi kabi Arduino-mos keluvchi kontrollerlarni o'chirish qobiliyatiga ega.

Maslahat. Kompyuteringizga Java-ni o'rnatishni unutmang. Bu ko'p vaqt talab qilmaydi.

Shunday qilib, ko'proq grafik muhitlar - yaxshi va boshqacha. Arduino siz bilan bo'lsin.

Foto: ishlab chiqarish kompaniyalari, pixabay.com Dasturlash bilan shug‘ullanasizmi? Ha, men dasturchiman Ha, bu juda qiziq narsa, men qaram emasman, lekin farzandim Ha Yo'q, meni qiziqtirmaydi Natijalarni ko'rish Yuklanmoqda ... Shuningdek o'qing: Arduino: LCD monitorni qanday aylantirish mumkin termometrga

Mini-PC Raspberry Pi 3 Model B + "aqlli" uyning markaziga aylanishi mumkin

Ehtimol, operatsion tizimlarni ishlab chiquvchilar to'g'ri, foydalanuvchini eng yomon dushman va eng xavfli virus deb hisoblashadi. Va, ehtimol, ular noto'g'ri, ular o'z ijodlarini o'zlari uchun emas, balki foydalanuvchilar uchun yaratadilar. Bir so'z bilan aytganda, men bilmayman. Lekin men aniq bilganim shundaki, men S4A dasturini nafaqat Windows, balki Linuxda va nafaqat Debian tarqatishda ishlashini ko'rmoqchiman.

Men ushbu jarayonni Debian versiyasini ishlab chiquvchi saytidan yuklab olish orqali boshlayman: http://seaside.citilab.eu/scratch/arduino. Yuklab olingan barcha fayllar yuklab olish tugallangandan so'ng "Yuklab olish" yoki "Yuklashlar" papkasida joylashgan. Linux uchun mo'ljallangan arxivlangan fayllar arxiv menejeri tomonidan ochiladi. OpenSUSE-dan yuklab olgan faylda deb kengaytmasi bor, lekin Ark, xuddi shu arxiv menejeri yordamida uni ochish mumkin. OpenSUSE-da KDE 4 grafik menejeri bilan faylni sichqonchaning o'ng tugmasi bilan bosish va "Ichki papkaga chiqarish" ochiladigan menyu bandini tanlash kifoya. Natijada, S4A nomli papka paydo bo'ladi.

Keling, buni ko'rib chiqaylik.

Guruch. 5.1. Yuklab olingan S4A jildining mazmuni

tar.gz kengaytmali ikkita fayl keyinchalik arxivdan chiqariladi.

Guruch. 5.2. Arxivlangan fayllar bilan ishlash uchun ochiladigan menyu

Natijada, arxivlar yonida bir qator fayllar va "usr" nomli papka paydo bo'ladi. Linux bilan ishlash tajribamdan shuni bilamanki, ushbu papkada o'rnatilganda ildiz fayl tizimidagi /usr manzilida joylashgan fayllar bo'lishi mumkin. Agar siz ushbu jildni ochsangiz, unda

5-bob. Arduino, vizual dasturlash

Haqiqatan ham, unda siz yana uchta papkani ko'rishingiz mumkin.

Ushbu uchta papka fayl menejeridagi /usr katalogida "Ildiz papka" bo'limini ochsangiz ko'rish mumkin bo'lgan bo'limlarga mos keladi.

Guruch. 5.4. Fayl tizimining usr katalogining bo'limlari

Oldindan yuklab olingan bin, lib va ​​almashish papkalarining mazmuni, menimcha, yuqorida qayd etilgan papkalarga joylashtirilishi kerak. Lekin, albatta, hech kim oddiy foydalanuvchiga fayl tizimidagi biror narsani o'zgartirishga ruxsat bermaydi. Shuning uchun, asosiy menyuning "Tizim" bo'limida biz "Fayl menejeri" bandini topamiz, u yangi pastki menyuni ochadi, bu erda "Fayl menejeri (administrator huquqlari bilan)" mavjud. Ushbu menejer barcha kerakli fayllarni operatsion tizimga o'tkazish imkonini beradi. Hech narsa ixtiro qilmasdan, ikkita tadqiqotchida parallel ravishda papkalarni oching, fayllar paydo bo'lguncha kerakli (ularning barchasi nomlanadi) papkalarni ketma-ket oching va fayllardan nusxa oling.

5-bob. Arduino, vizual dasturlash

Guruch. 5.5. OpenSUSE-ga dastur fayllarini ko'chirish

Ulanish papkasiga alohida e'tibor berilishi kerak, chunki u ko'plab pastki papkalarga ega va tegishli papkalarni fayl tizimida izlash kerak.

Nusxalashdan so'ng, dasturni asosiy menyuda topishga harakat qilishingiz mumkin. Va, albatta, "Taraqqiyot" bo'limidagi "Ilovalar" yorlig'ida (menda "Boshqa dasturlar" deb nomlangan boshqa bo'lim bor), S4A dasturi paydo bo'ladi. Va hatto uni ishga tushirishingiz mumkin. Ammo sichqonchaning bir necha harakatlaridan keyin u osilib keta boshlaydi ...

IN terminal va openSUSE ildiz terminaliga ega; superuser nomidan Arduino modulini oldindan ulab, biz dasturni ishga tushiramiz. Va u ishlaydi. Endi u odatiy tarzda ishga tushirilishi mumkin.

IN Linuxning boshqa tarqatishlari, operatsiya yuqorida tavsiflanganlarga o'xshaydi, farqlar unchalik muhim emas. Fedora 14-da men oddiygina root sifatida tizimga kirish orqali foydalanuvchini o'zgartirgan bo'lsam ham, bu, albatta, siz qilmasligingiz kerak, bu hamma narsani kerakli joylarga joylashtirishni osonlashtirdi.

Dasturni Linux-ga o'rnatgandan so'ng, keling, nima uchun uni o'rnatdik?

Birinchidan, dastur modul bilan ishlaydi, modulning analog va raqamli kirishlarida nima sodir bo'lishini ko'rsatadi. Bu allaqachon yaxshi. Lekin bu asosiy narsa emas. Asosiysi, ikkinchidan, dastur Arduino tilida kodlash emas, balki dasturni yig'ish imkonini beradi.

Dastur ishlay boshlaganda, chap oynada sichqonchani ko'tarib o'rta oynaga - ishchi "yig'ish" maydoniga ko'chirish mumkin bo'lgan bir qator elementlar mavjud. Start deb nomlangan elementni harakatlantiramiz.

5-bob. Arduino, vizual dasturlash

Guruch. 5.6. Kerakli dastur elementlarini uzatish

Endi yuqoridagi katakchadagi "nazorat" deb nomlangan tugmachani bosish orqali biz bir qator yangi elementlarga ega bo'lamiz.

Guruch. 5.7. "Boshqaruv" guruhidagi elementlar ro'yxati

Ushbu elementlar orasida biz "har doim" elementni tanlaymiz, uni mavjud elementga o'tkazamiz va ustki qism tokchaga kirishi uchun uni qo'shamiz.

5-bob. Arduino, vizual dasturlash

Guruch. 5.8. Dasturga elementlar qo'shish

Keling, "ko'chirish" tugmachasini bosib boshlagan elementlar to'plamiga qaytaylik va "raqamli 13 yoqilgan" elementini tanlaymiz, biz uni siljitamiz va oldingisiga joylashtiramiz.

Guruch. 5.9. Raqamli chiqishni yoqish buyrug'i

"Boshqarish" elementlari to'plamidan biz "1 soniya kuting" elementini olamiz, uni "raqamli 13 yoqilgan" elementi ostidagi "har doim" elementiga kiritamiz. Ushbu jarayonni tezlashtirish uchun kutish elementini yana joylashtiring, harakat elementlariga qayting va ikkita kutish elementi orasiga "raqamli 13 o'chirish" elementini qo'shing.

Guruch. 5.10. Blink dasturi grafik shaklda

Ushbu dizayn sizga biror narsani eslatadimi? Birinchi dasturni oddiy tilda tasvirlashni boshlaganimizda, biz uni shunday yozdik.

Sichqonchaning chap tugmasi bilan "boshlash" elementini ikki marta bosing va Arduino moduliga qarang

Hozirgacha jim bo'lgan 13-pindagi LED muntazam ravishda soniyada bir marta miltillaydi.

Biz dasturni tuzdik, uni ishga tushirdik va modulni shu dastur bo'yicha ishladik. Va biz bir qator kod yozmadik. Shuning uchun men dasturlash va kod yozishni farqlashni afzal ko'raman.

5-bob. Arduino, vizual dasturlash

Ammo, ehtimol, biz yig'gan dastur emas, balki avval yuklab olingan dastur ishlaydi?

"Boshlash" elementini yana ikki marta bosish orqali dasturni to'xtating. Keling, "1 soniya kuting" elementining birligiga sichqonchaning chap tugmachasini bosing.

Guruch. 5.11. Dastur elementi sozlamalarini o'zgartirish

Keling, 5 raqamini kiritamiz (pastki elementda bo'lgani kabi). Keling, dasturni ishga tushiramiz... va biz hech narsani chalkashtirmaganimizga ishonch hosil qiling, LED har 5 soniyada miltillaydi!

Biz raqamli kirishning ishlashini "jonli" shaklda sinab ko'rmadik. Buni qilish vaqti kelmadimi?

Keling, dasturni S4A da quramiz. Birinchi "g'ishtlar" oldingi dasturda bo'lgani kabi. Keyingi ... shartni bajarishimiz kerak: agar tugma bosilsa, LEDni yoqing, aks holda uni o'chiring. Bunday element mavjud - bu "agar ... yoki ...". Uning yuqori qismida "raqamli kiritish ..." shartini kiritishingiz mumkin bo'lgan "uya" mavjud.

Guruch. 5.12. Dastur bo'limining if elementiga shart qo'shish

Kerakli dastur turini olish uchun harakatlarni qo'shish qoladi.

Guruch. 5.13. Dasturning yakuniy shakllanishi

Agar biz uni Arduino tilida yozilgan dastur bilan solishtiradigan bo'lsak, unda biz faqat ongli ravishda qilingan farqlar ekanligini aytishimiz mumkin: tugma bo'shatilganda, LED yonmaydi, bosilganda, LED yonadi. .

5-bob. Arduino, vizual dasturlash

Tekshirishga o'tish vaqti keldi. Lekin birinchi navbatda, bir oz ogohlantirish.

Misollarda ko'rsatilgan diagrammada tugma +5 V piniga ulangan.Men uni biroz boshqacha yoqishni maslahat beraman.

Ayniqsa, agar siz hamma narsani "vazn bo'yicha" tekshirsangiz. Tasodifiy xato bo'lsa, u men qilgandek bo'lishi mumkin, moduldan tutun chiqadi, bu esa kayfiyatni juda buzadi. Va eng to'g'ri yo'l - adapterli non taxtasidan foydalanish (Arduino Nano uchun, menimcha, mikrosxema uchun mos keladigan rozetka mavjud).

Non panelidagi to'g'ri ulanishlarni tekshirgandan so'ng, Arduino modulini unga ulab, uni kompyuterning USB ulagichiga ulashingiz va S4A dasturini ishga tushirishingiz mumkin. Raqamli kirish va tuproq o'rtasida 10 kŌ rezistorni ulaganingizda, o'qishlar (dasturning o'ng oynasida) "noto'g'ri, noto'g'ri" va "to'g'ri, rost" o'rtasida tasodifiy o'zgarishni to'xtatganini unutmang. Biz "boshlash" elementini ikki marta bosish orqali dasturimizni ishga tushiramiz, asosiy menyuning "Tahrirlash" bo'limiga o'tish orqali qo'shamiz, bosqichma-bosqich bajarish.

Guruch. 5.14. Nosozliklarni tuzatish protsedurasiga qadam qo'shing

Shuningdek, siz "bir qadam o'rnatish ..." bandida bajarish tezligini tanlashingiz mumkin. Va endi, tugma bosilmasa, biz LED o'chirilganligini ko'ramiz va dastur faqat o'rnatilgan qismda bajariladi.

5-bob. Arduino, vizual dasturlash

Guruch. 5.15. Dasturni disk raskadrovka rejimida ishga tushirish

Yuqori o'ng oynada siz Digital1 kiritish holatini ko'rishingiz mumkin - noto'g'ri. Kirish yerda, kirish past mantiqiy daraja va bu, dastur nuqtai nazaridan, "noto'g'ri" holat. Keling, tugmani bosamiz.

Guruch. 5.16. Tugma bosilganda dasturning ishlashi

"To'g'ri" kiritish holati o'zgardi, LED yondi va dastur shart bajarilgan qismga kiradi.

Agar siz "nazorat" bo'limidagi to'q sariq elementlarga e'tibor qaratsangiz, ularning ko'pligini ko'rishingiz mumkin

5-bob. Arduino, vizual dasturlash

ularda shartlarni kiritish uchun "uyalari" bor.

Shartlar farq qilishi mumkin. Yuqorida biz shart sifatida raqamli kirish holatini o'zgartirishdan foydalandik. Ammo boshqa shartlar ham bo'lishi mumkin.

Guruch. 5.17. Boshqaruvdagi shartlarni qo'shish uchun uyalar

Va yana bir narsa - ko'plab elementlarning yonida "pastga" qora o'qlarga e'tibor bering.

Sichqoncha bilan ushbu o'qni bosing...

Guruch. 5.18. Mumkin bo'lgan sensorlar ro'yxatini ochadigan o'q

Va biz o'zgartirish imkoniyatiga ega bo'lamiz, masalan, bu holda ishlatilgan kirish kabi. Boshqa hollarda, masalan, chiqish pin yoki analog kirish o'zgaradi. Bizda Arduino moduli bilan tajriba o'tkazish uchun keng imkoniyatlar mavjud. Biroq, nima uchun modul bilan? Biz bir nechta modullardan foydalanishimiz mumkin. Etarli, bu yagona yo'l deb aytmaslik uchun, "kostyumlar" yorlig'iga o'ting, mavjud "kostyum" ustiga o'ng tugmasini bosing va "yangi ob'ektga o'tish" bo'limini tanlang.

Boshqa Arduino moduli paydo bo'ladi. Agar sizda bo'lsa, uni USB portiga ulagan bo'lsangiz, menimcha, u bilan ham ishlashingiz mumkin.

5-bob. Arduino, vizual dasturlash

Guruch. 5.19. Ikkinchi Arduino modulini qo'shish

Va oxirgi izoh. Biz S4A dasturida qiladigan hamma narsani Scratch dasturlash tilidan foydalanamiz. Bu sizga qanday yoqadi?

Ardublock


Arduino uchun grafik dasturlash tili

Ardublock Kit Ver 1.0 foydalanuvchi qo'llanmasi

Ardublock nima

Ardublock - bu dasturchi bo'lmaganlar uchun mo'ljallangan va ulardan foydalanish oson Arduino uchun grafik dasturlash tili.

(esda tutingki, Arduino IDE-dagi dastur eskiz deb ataladi)

O'rnatish
Ardublock-all.jar arxivini yuklab oling
"Arduino IDE / Menyu / Arduino / Preferences" ni oching, u erda "Sketchbook joylashuvi" qatorini topasiz.

3. Qatordagi “Arduino” papkasida “tools/ArduBlockTool/tool” papkasini yarating.
"Sketch joylashuvi" va "ardublock-all.jar" arxivini "asbob" jildiga nusxalash.

Agar foydalanuvchi nomi "abu" bo'lsa,

Mac-da, /Users/abu/Documents/Arduino/tools/ArduBlockTool/tool/ardublock-all.jar

Linuxda /home/abu/sketchbook/tools/ArduBlockTool/tool/ardublock-all.jar

Windows-da C:\Users\abu\Documents\Arduino

4 Arduino IDE-ni qayta ishga tushiring va siz "Asboblar" menyusida "ArduBlock" bandiga ega bo'lishingiz kerak.

Jild nomlarining katta va kichik harflar bilan yozilishiga e'tibor bering.


Foydalanish

ArduBlock bloklari bir nechta toifalarga bo'lingan.

boshqaruv
"Boshqarish" toifasidagi bloklar boshqaruv bloklaridir.

Raqamlar, doimiylar va o'zgaruvchilar

Operatorlar

Utilitalar

Ushbu bloklar odatda eskizlarda ishlatiladigan funktsiyalardir.

g'ishtlar

Ushbu turkumdagi har bir blok sizning eskizingizga to'g'ridan-to'g'ri ulanishingiz mumkin bo'lgan haqiqiy qurilma turini tasvirlaydi.

Pin

Ushbu bloklar Arduino platasida virtual pin sifatida ishlaydi.

Qanday qilib dasturlash

1. Kompilyatsiya muvaffaqiyatli yakunlanishi kerak. Agar Arduino muhitida ko'rsatilgan port yoki plataning o'zi topilmasa, xato oynasi paydo bo'ladi.

2. Bir xil shakldagi konnektorli grafik birliklar bir-biriga ulanishi mumkin.

Ulanish oddiygina o'rnatiladi, buning uchun siz bitta blokni ulanmoqchi bo'lgan blokga sudrab olishingiz kerak.

3. “Yuklab olish” tugmasi bosilishi bilan ArduBlock avtomatik ravishda Arduino kodini ishlab chiqaradi, keyin u Arduino platasiga yuklanadi (bu holda eskiz oynasida kompilyatsiya paytida olingan dastur matni paydo bo'ladi. Arduino ishlab chiqish muhiti).

Dasturni qanday ishga tushirish kerak

oddiy hosila

1-misol 1 - Salom dunyo (Salom dunyo!)

1.1 Uskuna ulanishi

Arduino 13-pinga ulangan.

1.2 Operatsion

LED sekundiga 1 marta yonadi.

1.3 Eskiz

1.4 Yuklab oling

Eslatma
Siz abp faylini to'g'ridan-to'g'ri yuklab olishingiz mumkin - bu erda tasvirlangan barcha misollarni Ardublock muhit tavsifi fayli (ingliz tilida) bilan birga abp grafik eskiz fayllari sifatida yuklab olish mumkin.

Abp fayli "yuklash" tugmasini bosish orqali yuklanishi mumkin.


Keyin yuklab olingan faylni ko'rsatishingiz va "ochish" tugmasini bosishingiz kerak.

2 2-misol - Signal

2.1 Uskuna ulanishi


Raqamli ko'k LED yorug'lik moduli 12-pinga ulanadi.

2.2 Operatsion

Qizil LED va ko'k LED politsiya sirenasi kabi navbat bilan yonadi. Agar siz ularni shaffof qopqoq yoki mato bilan yopsangiz, ta'sir yanada yaxshi bo'ladi.

2.3 Eskiz

2.4 Yuklab oling

Oddiy kiritish

3 Tugma bosilganda LEDni yoqadi

3.1 Uskuna ulanishi

Raqamli oq LED yorug'lik moduli 13-pinga ulangan.

3.2 Operatsion

Agar tugma bosilsa, LED yonadi.

3.3 Eskiz


3.4 Yuklab oling

4 Morze kodi

4.1 Uskuna ulanishi

Raqamli RED LED yorug'lik moduli pin 13 ga ulangan.
Raqamli signal moduli 12-pinga ulangan.
Raqamli bosish tugmasi 8-pinga ulangan.

4.2 Operatsion

Tugma bosilganda qizil LED yonadi va ovoz eshitiladi. Ovoz davri Morze kodiga o'xshaydi.

4.3 Eskiz

4.4 Yuklab oling

Analog kirish va chiqish

5 Aylanish sensori

5.1 Uskuna sozlamalari

Analog aylanish sensori V1 A0 piniga ulangan.

5.2 Operatsion

Ushbu dasturda siz burilish burchagi qiymatini bilib olishingiz mumkin.
Dasturni yuklab olganingizda, siz arduino IDE-ga o'tishingiz mumkin, monitor belgisini bosing. Ketma-ket monitor oynalari sizga 0 dan 1023 gacha bo'lgan qiymatlarda aylanish burchagini ko'rsatadi.

5.3 Eskiz

5.4 Yuklab oling

6 So‘nayotgan yorug‘lik

6.1 Uskuna sozlamalari

Raqamli oq LED yorug'lik moduli 11-pinga ulangan.

6.2 Operatsion

Ushbu dastur sizga yorug'lik qanday sekin yonib o'chayotganini ko'rsatadi.

6.3 Eskiz

6.4 Yuklab oling

7 Shovqinni o'lchash 1

7.1 Uskuna sozlamalari

Raqamli oq LED yorug'lik moduli 11-pinga ulangan.

7.2 Operatsion

Ushbu detektor atrofdagi shovqin darajasini o'lchashi mumkin, agar ovoz balandroq bo'lsa, LED kuchliroq yonadi.

7.3 Eskiz


7.4 Yuklab oling

8 Shovqinni o'lchash 2

8.1 Uskuna sozlamalari

Raqamli oq LED yorug'lik moduli 11-pinga ulangan.
Analog tovush sensori A0 piniga ulangan.

8.2 Operatsion

Ushbu detektor atrofdagi shovqin darajasini o'lchashi mumkin, agar ovoz balandroq bo'lsa, LED tezroq yonadi.

8.3 Eskiz


8.4 Yuklab oling

Maqola yoqdimi? Do'stlaringizga ulashing: