Arduino qrafik proqramlaşdırma proqramını yükləyin. FLProg - Arduino Alternativ Proqramlaşdırma Mühiti

Arduino qrafik proqramlaşdırma proqramını yükləyin. FLProg - Arduino Alternativ Proqramlaşdırma Mühiti

Sergey Qluşenko

Hazırda dünyada müxtəlif ev istehsalı məhsullarda və startaplarda mikrokontrollerlərin istifadəsində bum başlayıb. Həqiqətən, mikrokontrollerlərin qiymətləri aşağı düşdü və onların imkanları daim artır. Bizim dostlarımız olan çinlilər isə onlar üçün periferik qurğular hazırlamağı öyrəniblər və onlar da gülünc qiymətə satırlar. Ancaq mikro nəzarətçilərin proqramlaşdırılması ilə hər şey o qədər də çəhrayı deyil ...

Hamısı necə başladı və necə inkişaf etdi

Mikroprosessorların meydana çıxdığı andan onlarla işləmə prinsiplərinin inkişafı abstraksiyanın inkişaf yolu ilə gedir. Birinci mərhələ birbaşa maşın kodlarında proqramlaşdırma idi. Proqramlaşdırma çətin, uzun və çox xüsusi düşüncə tərzi tələb edirdi. Ona görə də proqramçılar çox az idi.

Amma insan tənbəl məxluqdur və tənbəllik, bildiyiniz kimi, tərəqqinin mühərrikidir. Onlar abstraksiyanın birinci səviyyəsini - assembler ilə gəldilər. Proqramların yazılması daha asan və daha əyləncəli oldu. Proqramçıların sayı artıb. Ancaq yenə də assembler maşın kodlarından çox da fərqlənmirdi.

Beləliklə, mücərrədliyin növbəti səviyyəsi meydana çıxdı. Dillər yüksək səviyyə... Bu dillərin əsas məqsədi maşına ondan nə istədiklərini insana mümkün qədər yaxın bir dildə izah etmək bacarığı idi. Bu, daha az spesifik düşüncə tərzinə malik insanlara proqramlaşdırma ilə məşğul olmağa imkan verdi. Buna görə də, yüksək səviyyəli dillərin inkişafı ilə proqramçıların sayı və müvafiq olaraq, sayı artdı. faydalı proqramlar yaratdıqları.

İndi işlər necədir?

Əlbəttə ki, birbaşa nəzarətçi ilə işə başlamaq müəyyən hazırlıq tələb edir. Yəni sizə proqramçı, kompüterdə proqramlaşdırma üçün fərdiləşdirilmiş mühit və təbii ki, proqramlaşdırma dilini bilmək lazımdır. Bundan əlavə, lehimləmə dəmiri ilə işləmək, çap dövrə lövhələrinin dizaynı, elektrotexnika və elektronika sahəsində biliklər tələb olunur. Beləliklə, mikrokontrolörlərdə öz cihazlarınızı yaratmaq sahəsinə daxil olmaq üçün həddi yüksək olaraq qalır.

Həm də nadir hallarda bir yerdə tapılan bacarıqların birləşməsini tələb edir. Proqramçılar nadir hallarda lehimləmə dəmiri ilə dost olurlar və elektronika mühəndisləri çox vaxt proqramçı deyillər. Proqramçılar üçün problem alətlərdən istifadə etmədən cihazları yığmağa imkan verən Arduino lövhəsi yaratmaqla həll edildi.

Elektronika və elektrikçilər üçün işlər getdikcə pisləşir. Son vaxtlara qədər mikrokontrollerdən istifadə edərək öz cihazlarını yaratmaq üçün onların iki yolu var idi. Ya C proqramlaşdırma dilini özünüz öyrənin, ya da proqramçıdan kömək istəyin. Hər iki yol ən yaxşısı deyil. Proqramçı olmaq üçün müəyyən bir təfəkkürə ehtiyacınız var ki, bu da həmişə oxu təcrübəsi ilə uyğun gəlmir. elektrik dövrələri... Və tanış bir proqramçı əlində olmaya bilər.

Eyni zamanda, çoxdan adi bir mühəndis - elektronika mühəndisi, quyu və ya sadəcə elektrikçi üçün uyğunlaşdırılmış proqramlaşdırma mühitləri var. Mən sənaye nəzarətçiləri üçün proqramlaşdırma mühitini nəzərdə tuturam. PLC. Onlar yaratmağa imkan verir proqram təminatı dillərdə nəzarətçilər üçün FBDLAD... Əslində, onlar elə dillər deyillər. Əksinə, onlar sxematik və ya məntiqi diaqramların çəkilməsi üçün qrafik mühitlərdir.

FBD (Funksiya Blok Diaqramı)

- IEC 61131-3 standartının qrafik proqramlaşdırma dili. Proqram yuxarıdan aşağıya ardıcıl olaraq yerinə yetirilən sxemlərin siyahısından formalaşır. Proqramlaşdırma zamanı kitabxana bloklarının dəstlərindən istifadə olunur. Blok (element) alt proqram, funksiya və ya funksiya blokudur (AND, OR, NOT, triggers, timers, counters, analoq siqnal emal blokları, riyazi əməliyyatlar və s.). Hər bir fərdi zəncir qrafik olaraq fərdi elementlərdən ibarət bir ifadədir. Növbəti blok blokun çıxışına qoşularaq zəncir təşkil edir. Zəncir daxilində bloklar ciddi şəkildə bağlanma qaydasında yerinə yetirilir. Dövrənin hesablanmasının nəticəsi daxili dəyişənə yazılır və ya nəzarətçi çıxışına verilir.

Nərdivan Diaqramı (LD, LAD, RKS)


- rele (nərdivan) məntiqinin dili. Dilin sintaksisi rele texnologiyasında hazırlanmış məntiq sxemlərini əvəz etmək üçün əlverişlidir. Bu dil sənaye müəssisələrində işləyən avtomatlaşdırma mühəndisləri üçün nəzərdə tutulub. Nəzarətçinin məntiqi üçün vizual interfeys təqdim edir, təkcə faktiki proqramlaşdırma və istismara vermə vəzifələrini deyil, həm də cəld axtarış nəzarətçiyə qoşulmuş avadanlıqda nasazlıqlar. Relay məntiqi proqramı elektrik mühəndisləri üçün intuitiv və intuitiv olan, açıq və qapalı kontaktları olan elektrik dövrəsi kimi məntiq əməliyyatlarını əks etdirən qrafik interfeysə malikdir. Bu dövrədə cərəyanın axını və ya olmaması məntiqi əməliyyatın nəticəsi ilə uyğun gəlir (doğru - cərəyan gedirsə; yanlış - cərəyan yoxdursa). Dilin əsas elementləri məcazi mənada bir cüt relay kontaktına və ya düyməyə bənzədilə bilən kontaktlardır. Bir cüt kontakt boolean dəyişəni ilə müəyyən edilir və bu cütün vəziyyəti dəyişənin dəyəri ilə müəyyən edilir. Elektrik dövrələrində normal qapalı və normal açıq düymələrlə müqayisə oluna bilən normal qapalı və normal açıq kontakt elementləri arasında fərq qoyulur.

Bu yanaşma elektrik mühəndisləri və elektronika mühəndisləri üçün ACS sistemlərinin inkişafına asanlıqla daxil olmaq üçün çox əlverişli oldu. Quraşdırma layihələrini inkişaf etdirərək, bu qurğuların işini nəzarətçinin alqoritmləri ilə asanlıqla əlaqələndirə bilərdilər. Mövcud texniki xidmət personalı ACS sisteminin işini asanlıqla yoxlaya və problemi tapa bildikdə, bu qurğuların yerində texniki xidmət göstərilməsi daha yaxşıdır. Eyni zamanda, hər xırda şey üçün “Mərkəz”dən proqramçı çağırmağa ehtiyac yoxdur. Və bu yanaşma öz bəhrəsini verdi. Bu gün demək olar ki, bütün sənaye avtomatlaşdırma sistemləri bu cür inkişaf alətlərindən istifadə etməklə yaradılmışdır.

Siemens, ABB, Schneider Electric belə bir inkişaf mühitinə malikdir ... və demək olar ki, bütün PLC istehsalçıları. Evdə sevənlər üçün ideal bir həll kimi görünür. Ancaq həmişə olduğu kimi, bir "amma" var. Bütün bu proqramlaşdırma mühitləri müəyyən bir istehsalçının sənaye nəzarətçiləri ilə bağlıdır. Və bu nəzarətçilərin qiymətləri ruhlandırıcı deyil. Çox nadir hallarda, hansı ailə büdcəsi bir neçə on minlərlə rubl qiymətinə bir nəzarətçi almağa imkan verəcəkdir.

Ancaq Arduino lövhələri ölkəmizin hər zaman zəngin olduğu, zəngin olduğu və olacağı DIYerlər və kulibinlər üçün idealdır. Ancaq yenə də "amma". Bu lövhələr C dilində proqramlaşdırılmışdır. Çox düz qolları yerindən böyüyən bu ən ağıllı insanların əksəriyyəti üçün C. Çin əlifbasıdır. Onlar ən mürəkkəb sxemləri tərtib edə, çəkə, yığa, sazlaya və işlədə bilər, lakin If, For, Case, Void və s. - onlar üçün deyil. Əlbəttə ki, İnternetdəki təlimatları oxuya, bir müddət oynaya, bir nümunə istifadə edərək LED-i yanıb-sönə bilərsiniz. Ancaq daha ciddi tətbiq üçün dilin ətraflı öyrənilməsi lazımdır. Niyə belə etsinlər?

Onlar peşəkar proqramçı olmayacaqlar. Onların başqa yolu var. Nəsə fikirləşdilər. Bəli, mikrokontrollerdən istifadə edərək yığmaq daha asan və gözəldir, lakin bunun üçün proqramçı olur, dil öyrənməyə aylar sərf edirsiniz? Əlbəttə yox. Köhnə üslubda, daha sadə, əlbəttə ki, toplayın, lakin öz sahəsində.

Bütün bu hesablamalar əsasında FLProg layihəsi yaradılmışdır. Layihənin əsas ideyası sənaye proqramlaşdırma prinsiplərini Arduino-nun ucuzluğu və rahatlığı ilə birləşdirməkdir. Layihə kifayət qədər cəsarətli ifadə ilə yeni bir abstraksiya səviyyəsini təklif edir -

Mikrokontrollerləri proqramlaşdırmaq üçün proqramlaşdırma dillərini bilməyə ehtiyac yoxdur!

Nəticə elektrik mühəndisliyi və elektronika ilə tanış olan hər kəsə Arduino-da öz layihələrini yaratmağa və bu lövhələrdən istifadə edərək öz məhsullarını yaratmağa imkan verən alətdir.

Layihə iki hissədən ibarətdir.

Birinci hissə masaüstü proqramdır FLProg, Arduino lövhələri üçün qrafik proqramlaşdırma mühitidir.

Yeni layihə yaratarkən sizdən layihəni yaradacağınız proqramlaşdırma dilini və bu layihənin həyata keçiriləcəyi nəzarətçini seçmək təklif olunacaq.

Bu günə qədər proqram tərəfindən dəstəklənən Arduino lövhələrinin siyahısı:

Arduino Diecimila
Arduino Duemilanove
Arduino Leonardo
Arduino Lilypad
Arduino Mega 2560
Arduino Micro
Arduino Mini
Arduino Nano (ATmega168)
Arduino Nano (ATmega328)
Arduino Pro Mini
Arduino Pro (ATmega168)
Arduino Pro (ATmega328)
Arduino Uno

Tezliklə dəstəklənən lövhələr ailəsinin doldurulması gözlənilir. Arduino Due yoldadır və Intel Galileo lövhəsi (gen.2) Sankt-Peterburq Dövlət Telekommunikasiya Universitetinin Əşyaların İnterneti laboratoriyasının rəhbəri tərəfindən təmin ediləcəyinə söz verildi. prof. M.A. Bonç-Brueviç. Zamanla, satın alındıqdan sonra, STM nəzarətçiləri əsasında lövhələri dəstəkləmək planlaşdırılır.

FLProg-da bir layihə, hər birində ümumi sxemin tam modulunun yığıldığı lövhələr dəstidir. Rahatlıq üçün hər bir lövhənin adı və şərhləri var. Həmçinin, hər bir lövhə yıxıla bilər (üzerində iş başa çatdıqda iş sahəsində yer saxlamaq üçün) və genişləndirilə bilər. Lövhənin adındakı qırmızı LED lövhənin sxemində səhvlər olduğunu göstərir.

İş sahəsinin sağ tərəfində elementlər kitabxanası var. Elementlər diaqrama sadə sürükləyib buraxmaqla köçürülür. Elementə iki dəfə kliklədiyiniz zaman onun haqqında məlumat görünəcək.

Budur hazırda mövcud olan blokların siyahısı.

Əsas elementlər



Xüsusi bloklar

Tetikler



Taymerlər


Sayğaclar


Riyaziyyat



Cəbr




Müqayisə

Com port

Göndər
SendVariable
ReceiveVariable

Keçid


Motorlar

ServoMotor
StepMotor

Real vaxt saatı


Göstərir

НD44780 çipində ekran
ND44780 I2C çipində arxa işığı göstərin

Simlər

Sətirlərin birləşdirilməsi

Sensorlar



SD kart

SD karta dəyişənin yazılması
Faylı SD kartdan yükləyin

Dönüşüm növü

Sətirlərin çevrilməsi

Genişləndirici çiplər

Çıxışların genişləndiricisi 74HC595

Bit əməliyyatları

Scrambler
Dekoder
Bir az oxumaq
Bit qeydi

müxtəlif

Matris klaviatura
Piezo dinamik

EEPROM-a yazmaq
EEPROM-dan oxumaq

Rabitə

SendVariableFromCommunication
RessiveVariableFromCommunication
Veb Server Səhifəsi
WebClient

Əsas bloklar

Əlaqə
Bobin
Dəyişmə mühafizəsi
Qabaqcıl kənarın vurğulanması

Xüsusi relelər

Bistable rele
Zaman rölesi
Generator
Müqayisə rölesi

Cəbr

GÜNAH
COS
TAN
ABS
MAX
MIN
SQ
SQRT
Əsir
Təsadüfi

Analoq bloklar

Ölçəkləmə
Riyaziyyat
Sayğac
Analoq keçid
Çoxunu birinə dəyişdirin
Birdən çoxa keçid
Analoq nəzarətçi girişi
Analoq nəzarətçi çıxışı
Analoq konnektor girişi
Analoq konnektor çıxışı
Yüksək sürətli sayğac

CommPort

ComPort-a köçürün
Comm portu vasitəsilə dəyişənin ötürülməsi
Comm portu vasitəsilə dəyişənin qəbulu

Motorlar

Servo motor
Step motor

Real vaxt saatı

Məlumat əldə etmək üçün
Siqnal
Vaxt təyini

Göstərir

HD44780 çipində ekran
HD4480 I2C çipinə əsaslanan arxa işığın idarəetmə bloku
Yeddi seqmentli displey deşifrə qurğusu

Simlər

Sətirlərin birləşdirilməsi

Sensorlar

Ultrasəs məsafəölçən HC-SR04
DHT11 temperatur və rütubət sensoru (DHT21, DHT22)
Temperatur sensoru DS18x2x
IR reaktiv
BMP-085

SD kart

SD karta dəyişənin yazılması
Faylı SD kartdan yükləyin

Dönüşüm növü

Sətirlərin çevrilməsi
Floatın tam ədədə çevrilməsi

Genişləndirici çiplər

Çıxışların genişləndiricisi 74HC595

Bit əməliyyatları

Scrambler
Dekoder
Bir az oxumaq
Bit qeydi

müxtəlif

Matris klaviatura
Piezo dinamik

EEPROM-a yazmaq
EEPROM-dan oxumaq

Rabitə

Rabitə vasitəsilə dəyişəni göndərmək üçün blok
Rabitə vasitəsilə dəyişənin qəbulu
Veb server səhifəsi
Veb müştəri

Hazırda üç oxlu giroskop, luksometr və digər sensor və sensorlarla işləmək üçün funksional blokların hazırlanması davam etdirilir. Həmçinin bluetooth, radiokanal, RS-485 interfeysi vasitəsilə məlumat mübadiləsinin təşkili istiqamətində işlər aparılır. Gələcək planlarda. üçün FLProg proqramında hazırlanmış sistemlərin interfeysinin təşkili üçün SCADA sisteminin işlənib hazırlanması Şəxsi kompüter və ya qrafik ekranlar.

Proqram tərəfindən dəstəklənən periferik avadanlığın siyahısı layihənin internet saytında linkdə mövcuddur:

Saytın bölməsindəki bəzi avadanlıqlar üçün proqramda onun tətbiqini başa düşməyi asanlaşdıran baxış məqalələri var.

İş sahəsinin yuxarı hissəsində etiketlərin (dəyişənlər və girişlər / çıxışlar) (FBD) və ya quraşdırılmış avadanlıqların (LAD) siyahısı var. Teqlər və ya avadanlıqlar diaqrama sürüklənə və salına bilər.

Layihə üzərində işlər başa çatdıqdan sonra tərtib edilir. Tərtib edildikdən sonra "Arduino 1.5.7" proqramı avtomatik olaraq layihənizin yüklənmiş eskizi ilə açılacaqdır. "Arduino IDE 1.5.7" proqramında siz nəzarətçinizin qoşulduğu COM portunun nömrəsini göstərməli, onun növünü seçməli və eskizi nəzarətçiyə doldurmalısınız. Arduino.ru saytında "Arduino IDE 1.5.7" proqramı haqqında ətraflı oxuya bilərsiniz.

FLProg'u harada yükləmək olar?

Layihə çərçivəsində http://flprog.ru internet saytı fəaliyyət göstərir. Saytın əsas vəzifəsi istifadəçilərə proqramın ən son versiyasını yükləmək, yeniliklər və dəyişikliklərlə tanış olmaq imkanı yaratmaqdır.

Proqramı saytda qeydiyyatdan keçmədən yükləyə bilərsiniz, lakin qeydiyyatdan keçmiş istifadəçilər üçün saytın funksionallığı nəzərəçarpacaq dərəcədə genişlənir. Qeydiyyat çox sadədir və yalnız təsdiq tələb edir E-poçt... Başqa məlumat daxil etməyinizə ehtiyac yoxdur.

Proqramın yükləmə səhifəsində həmişə iki versiya mövcuddur: quraşdırıcı və quraşdırma tələb etməyən portativ versiya. Mümkünsə, əvvəlki versiyadan yeniləməyə imkan verən əhəmiyyətli dərəcədə kiçik yeniləmə faylını da yükləyirəm.

Həmçinin yükləmə səhifəsində siz bu versiya üçün yeniliklərin və səhvlərin aradan qaldırılmasının siyahısını görə və əvvəlki versiyaların arxivinə keçə bilərsiniz.

Salam! Mən Alikin Aleksandr Sergeeviç, müəlliməm əlavə təhsil, Labinskdə Mərkəzi Uşaq Musiqi Məktəbində “Robotexnika” və “Radiotexnika” dərnəklərini aparıram. Mən sizə bir az “ArduBloсk” proqramından istifadə edərək Arduino-nun proqramlaşdırılmasının sadələşdirilmiş üsulu haqqında danışmaq istərdim.

Mən bu proqramı tədris prosesinə təqdim etdim və nəticədən məmnunam, uşaqlar arasında böyük tələbat var, xüsusən də ən sadə proqramlar yazarkən və ya bəzi proqramlar yaratmaq üçün ilkin mərhələ kompleks proqramlar. ArduBloсk qrafik proqramlaşdırma mühitidir, yəni bütün hərəkətlər rus dilində imzalanmış hərəkətlərlə çəkilmiş şəkillərlə yerinə yetirilir ki, bu da Arduino platformasının öyrənilməsini xeyli asanlaşdırır. 2-ci sinifdən olan uşaqlar bu proqram sayəsində asanlıqla Arduino ilə işləməyi öyrənə bilərlər.

Bəli, kimsə deyə bilər ki, Scratch hələ də mövcuddur və o, həm də Arduino proqramlaşdırması üçün çox sadə qrafik mühitdir. Lakin Scratch Arduino-nu yandırmır, sadəcə USB kabel vasitəsilə idarə edir. Arduino kompüterdən asılıdır və tək dayana bilməz. Öz layihələrinizi yaratarkən, Arduino üçün muxtariyyət, xüsusən də robot cihazları yaratarkən əsas şeydir.

Hətta tanınmış LEGO robotları NXT və ya EV3 kimi tələbələrimiz Arduino proqramlaşdırmasında ArduBloсk proqramının görünüşü ilə artıq o qədər də maraqlı deyil. Arduino həm də istənilən LEGO konstruktorlarından xeyli ucuzdur və bir çox komponentləri sadəcə olaraq köhnə məişət elektron avadanlıqlarından götürmək olar. ArduBloсk proqramı təkcə yeni başlayanlara deyil, həm də Arduino platformasının aktiv istifadəçilərinə işdə kömək edəcək.

Beləliklə, ArduBlock nədir? Dediyim kimi, qrafik proqramlaşdırma mühitidir. Demək olar ki, tamamilə rus dilinə tərcümə edilmişdir. Lakin ArduBloсk-da diqqət çəkən məqam təkcə bu deyil, həm də bizim yazdığımız ArduBloсk proqramının Arduino IDE koduna çevrilməsidir. Bu proqram Arduino IDE proqramlaşdırma mühitində qurulmuşdur, yəni bir plagindir.

Aşağıda Arduino IDE-də yanıb-sönən LED və çevrilmiş proqram nümunəsidir. Proqramla bütün işlər çox sadədir və hər bir tələbə bunu başa düşə bilər.

Proqram üzərində işləmək nəticəsində siz nəinki Arduino-nu proqramlaşdıra, həm də Arduino IDE-nin mətn formatında başa düşmədiyimiz əmrləri öyrənə bilərsiniz, lakin standart əmrləri yazmağa “çox tənbəl”sinizsə, siçan ilə ArduBlok-da sadə bir proqramı tez bir zamanda eskiz etməli və Arduino IDE-də onu debug etməlidir ...

ArduBlok-u quraşdırmaq üçün əvvəlcə Arduino IDE-ni rəsmi Arduino saytından endirib quraşdırmalı və Arduino UNO lövhəsi ilə işləyərkən parametrləri müəyyənləşdirməlisiniz. Bunu necə etmək olar, eyni saytda və ya Amperka-da təsvir olunur və ya YouTube-da baxın. Yaxşı, bütün bunları anladıqda, ArduBlok-u rəsmi saytdan yükləməlisiniz, burada. Ən son versiyaları yükləməyi məsləhət görmürəm, yeni başlayanlar üçün onlar çox çətindir, lakin 2013-07-12 versiyası çox şeydir, bu fayl orada ən populyardır.

Sonra, yüklənmiş faylın adını ardublock-all və "sənədlər" qovluğuna dəyişdirin. Aşağıdakı qovluqları yaradırıq: Arduino> alətlər> ArduBlockTool> aləti və son olaraq yüklənmiş və adı dəyişdirilmiş faylı atırıq. ArduBlok bütün əməliyyat sistemlərində işləyir, hətta Linux da, mən şəxsən onu XP, Win7, Win8, Win7 üçün bütün nümunələrdə sınaqdan keçirmişəm. Proqramın quraşdırılması bütün sistemlər üçün eynidir.

Yaxşı, daha sadədirsə, Mail-disk 7z-də bir arxiv hazırladım, onu açanda 2 qovluq tapacaqsınız. Birində Arduino IDE artıq işləyir, digər qovluqda isə məzmun sənədlər qovluğuna göndərilməlidir.

ArduBlok ilə işləmək üçün Arduino IDE-ni işə salmalısınız. Sonra Alətlər sekmesine gedirik və orada ArduBlok elementini tapırıq, üzərinə klikləyirik - və budur, məqsədimizdir.

İndi proqramın interfeysinə nəzər salaq. Artıq başa düşdüyünüz kimi, orada heç bir parametr yoxdur, lakin proqramlaşdırma üçün çoxlu nişanlar var və onların hər biri Arduino IDE mətn formatında bir əmr daşıyır. Yeni versiyalarda daha çox nişanlar var, ona görə də ArduBlok ilə məşğul olun son versiyaçətin və bəzi nişanlar rus dilinə tərcümə edilməyib.

"Nəzarət" bölməsində biz müxtəlif dövrləri tapacağıq.

"Portlar" bölməsində biz sizinlə portların, eləcə də onlara qoşulmuş səs emitterinin, servo və ya ultrasəs yaxınlıq sensorunun dəyərlərini idarə edə bilərik.

"Nömrələr / Sabitlər" bölməsində rəqəmsal dəyərləri seçə bilərik və ya sizinlə dəyişən yarada bilərik, lakin aşağıda çətin ki, istifadə edəcəksiniz.

"Operatorlar" bölməsində biz sizinlə bütün lazımi müqayisə və hesablama operatorlarını tapacağıq.

Utilities bölməsi zamanla əsasən nişanlardan istifadə edir.

TinkerKit Bloks satın alınmış TinkerKit sensorlar üçün bölmədir. Bizdə, əlbəttə ki, belə bir dəst yoxdur, lakin bu o demək deyil ki, digər dəstlər üçün nişanlar işləməyəcək, əksinə - uşaqlar üçün LED və ya düyməni yandırmaq kimi nişanlardan istifadə etmək çox rahatdır. Bu simvollar demək olar ki, bütün proqramlarda istifadə olunur. Ancaq onların bir özəlliyi var - onlar seçildikdə, portları bildirən səhv nişanlar var, buna görə də onlar çıxarılmalı və siyahıda ən yuxarı olan "rəqəmlər / sabitlər" bölməsindəki simvol əvəz edilməlidir.

"DF Robot" - bu bölmədə göstərilən sensorlar olduqda istifadə olunur, bəzən onlara rast gəlinir. Bugünkü nümunəmiz də istisna deyil, bizdə “Tənzimlənən IR keçid” və “Xətt sensoru” var. "Xətt sensoru" Amperkadan olduğu üçün şəkildəkidən fərqlidir. Onların hərəkətləri eynidir, lakin Amperka-dan olan sensor daha yaxşıdır, çünki həssaslıq tənzimləyicisi var.

"Seeedstudio Grove" - ​​Mən bu bölmədəki sensorlardan heç vaxt istifadə etməmişəm, baxmayaraq ki, yalnız joystiklər var. Bu bölmə yeni versiyalarda genişləndirilib.

Və son bölmə Linker Kitidir. Orada təqdim olunan sensorlar mənə rast gəlmədi.

Mən zolaqda hərəkət edən robot üzərində proqram nümunəsi göstərmək istərdim. Robot həm montajda, həm də satın almada çox sadədir, lakin ilk növbədə. Onun alınması və yığılması ilə başlayaq.

Budur hissələrin özü, hər şey Amperka saytında alınıb.

  1. AMP-B001 Motor Qalxanı (2 kanal, 2 A) 1 890 rubl
  2. AMP-B017 Troyka Qalxanı 1 690 rub
  3. AMP-X053 Batareya bölməsi 3 × 2 AA 1 60 rubl
  4. AMP-B018 Xətt sensoru rəqəmsal 2 580 rubl
  5. ROB0049 İki təkərli platforma miniQ 1 1890 rub
  6. SEN0019 İnfraqırmızı maneə sensoru 1 390 rubl
  7. FIT0032 infraqırmızı maneə sensoru üçün montaj 1 90 rubl
  8. A000066 Arduino Uno 1 1150 rub

Əvvəlcə təkərli platformanı yığaq və telləri mühərriklərə lehimləyək.

Sonra köhnədən götürülmüş Arduino UNO lövhəsini bağlamaq üçün stendləri quraşdıracağıq ana plata quyu və ya digər oxşar qurğular.

Sonra Arduino UNO lövhəsini bu rəflərə bağlayırıq, lakin bir bolt vidalaya bilmirik - bağlayıcılar müdaxilə edir. Əlbəttə ki, onları lehimləyə bilərsiniz, amma bu sizin ixtiyarınızdadır.

Sonra, infraqırmızı maneə sensorunu onun xüsusi montajına bağlayırıq. Nəzərə alın ki, həssaslıq nəzarəti yuxarıda yerləşir, bu tənzimləmə asanlığı üçündür.

İndi rəqəmsal xətt sensorlarını quraşdırırıq, burada onlar üçün bir neçə bolt və 4 qoz axtarmalı olacağıq.Biz platformanın özü ilə xətt sensoru arasında iki qoz quraşdırırıq və qalan sensorları düzəldirik.

Sonra, Motor Qalxanını quraşdırın və ya başqa bir şəkildə motor sürücüsünə zəng edə bilərsiniz. Bizim vəziyyətimizdə tullanana diqqət yetirin. Biz mühərriklər üçün ayrıca enerji təchizatı istifadə etməyəcəyik, ona görə də o, bu vəziyyətdə quraşdırılıb. Arduino UNO-nun USB konnektorundan təsadüfi qısaqapanmaların olmaması üçün aşağı hissə elektrik lenti ilə bağlanmışdır.

Troyka Qalxanını Motor Qalxanının üstünə qoyun. Sensorların birləşdirilməsinin rahatlığı üçün lazımdır. İstifadə etdiyimiz bütün sensorlar rəqəmsaldır, ona görə də xətt sensorları 8 və 9-cu portlara qoşulur, çünki onlara sancaqlar da deyilir, infraqırmızı maneə sensoru isə 12-ci porta qoşulur. Nəzərə alın ki, 4, 5, 6, 7 portları Motor Shield tərəfindən mühərrikləri idarə etmək üçün istifadə edildiyi üçün istifadə edilə bilməz. Mən hətta bu limanları xüsusi olaraq qırmızı markerlə boyadım ki, tələbələr bunu başa düşə bilsinlər.

Əgər siz artıq fikir vermisinizsə, hər ehtimala qarşı qara kol əlavə etdim ki, quraşdırdığımız batareya bölməsi uçmasın. Və nəhayət, bütün quruluşu adi bir elastik bantla düzəldirik.

Batareya bölməsinin 2 növü var. Troyka Qalxanına ilk tel bağlantısı. Elektrik fişini lehimləmək və onu Arduino UNO lövhəsinin özünə qoşmaq da mümkündür.

İndi robotumuz hazırdır. Proqramlaşdırmaya başlamazdan əvvəl hər şeyin necə işlədiyini öyrənməlisiniz, yəni:
- Mühərriklər:
Port 4 və 5 bir mühərriki idarə etmək üçün, digəri üçün isə 6 və 7 istifadə olunur;
Mühərriklərin fırlanma sürətini 5 və 6-cı portlarda PWM ilə tənzimləyirik;
4 və 7 siqnal portları ilə irəli və ya geri.
- Sensorlar:
Hamımız rəqəmsalıq, buna görə də onlar 1 və ya 0 şəklində məntiqi siqnallar verirlər;
Və onları tənzimləmək üçün onların içərisində xüsusi tənzimləyicilər verilir və uyğun bir tornavida köməyi ilə kalibrlənə bilər.

Təfərrüatları Amperka-da tapa bilərsiniz. Niyə buradadır? Çünki Arduino ilə işləmək haqqında çoxlu məlumatlar var.

Yaxşı, biz, bəlkə də, hər şeyə səthi baxdıq, öyrəndik və əlbəttə ki, robotu yığdıq. İndi onu proqramlaşdırmaq lazımdır, budur - çoxdan gözlənilən proqram!

Və proqram Arduino IDE-yə çevrildi:

Etibarsız quraşdırma () (pinMode (8, INPUT); pinMode (12, INPUT); pinMode (9, INPUT); pinMode (4, OUTPUT); pinMode (7, OUTPUT); pinMode (5, OUTPUT); pinMode (6) , OUTPUT);) boş döngə () (if (digitalRead (12)) (əgər (digitalRead (8)) (əgər (digitalRead (9)) (digitalWrite (4, HIGH); analogWrite (5, 255); analogWrite ( 6, 255); digitalWrite (7, HIGH);) başqa (digitalWrite (4, HIGH); analogWrite (5, 255); analogWrite (6, 50); digitalWrite (7, LOW);)) başqa (əgər (digitalRead) (9)) (digitalWrite (4, LOW); analogWrite (5, 50); analogWrite (6, 255); digitalWrite (7, HIGH);) başqa (digitalWrite (4, HIGH); analogWrite (5, 255); analogWrite (6, 255); digitalWrite (7, HIGH);))) başqa (digitalWrite (4, HIGH); analogWrite (5, 0); analogWrite (6, 0); digitalWrite (7, HIGH);))

Sonda demək istəyirəm ki, bu proqram sadəcə təhsil üçün bir lütfdür, hətta öz-özünə təhsil üçün də Arduino IDE-nin əmrlərini öyrənməyə kömək edəcəkdir. Ən vacib məqam odur ki, 50-dən çox quraşdırma nişanı var, o, "çatışmaya" başlayır. Bəli, həqiqətən də, bu diqqət çəkən məqamdır, çünki yalnız ArduBlok-da daimi proqramlaşdırma sizə Arduino IDE-də proqramlaşdırmağı öyrətməyəcək. Sözdə "çatışmazlıq" proqramların dəqiq sazlanması üçün əmrləri düşünməyə və yadda saxlamağa imkan verir.

Sizə uğurlar arzulayıram.

Bəlkə də əməliyyat sistemlərinin tərtibatçıları istifadəçini ən pis düşmən və ən təhlükəli virus hesab etdikdə haqlıdırlar. Yaxud da səhv edirlər, öz yaradıcılığını özləri üçün deyil, istifadəçilər üçün yaradırlar. Bir sözlə, bilmirəm. Amma dəqiq bildiyim odur ki, mən S4A proqramını təkcə Windows-da deyil, Linux-da və təkcə Debian distributorluğunda deyil, işlədiyini görmək istəyirəm.

Debian versiyasını tərtibatçı saytından endirməklə bu prosesə başlayıram: http://seaside.citilab.eu/scratch/arduino... Bütün endirmələr endirmə tamamlandıqda Yükləmələr və ya Yükləmələr qovluğunda yerləşir. Linux üçün nəzərdə tutulmuş arxivləşdirilmiş fayllar arxiv meneceri tərəfindən paketdən çıxarılır. OpenSUSE-dən endirdiyim faylın deb uzantısı var, lakin eyni arxiv meneceri olan Ark istifadə edərək, onu çıxarmaq olar. KDE 4 qrafik meneceri ilə openSUSE-də sizə lazım olan tək şey faylın üzərinə sağ klikləmək və "Alt qovluğa paketdən çıxarmaq" açılan menyu elementini seçməkdir. Nəticədə S4A adlı bir qovluq görünür.

Gəlin buna nəzər salaq.

düyü. 5.1. Yüklənmiş S4A qovluğunun məzmunu

tar.gz uzantılı iki fayl daha da sıxılmış vəziyyətdə olmalıdır.

düyü. 5.2. Arxivlənmiş fayllarla işləmək üçün açılan menyu

Nəticədə arxivlərin yanında bir sıra fayl və "usr" adlı qovluq görünür. Linux ilə təcrübəmdən bilirəm ki, bu qovluqda quraşdırma zamanı kök fayl sistemində / usr ünvanında yerləşən fayllar ola bilər. Bu qovluğu açsanız,

Fəsil 5. Arduino, Vizual Proqramlaşdırma

həqiqətən, onda daha üç qovluq görə bilərsiniz.

Bu üç qovluq fayl menecerində / usr qovluğunda "Kök Qovluq" bölməsini açsanız görə biləcəyiniz bölmələrə uyğundur.

düyü. 5.4. Fayl sistemi usr kataloq bölmələri

Əvvəllər yüklənmiş məzmun, bin, lib və paylaşım qovluqları, məncə, yuxarıda qeyd olunan qovluqlara yerləşdirilməlidir. Ancaq təbii ki, sadə bir istifadəçi üçün nəyisə dəyişmək fayl sistemi heç kim icazə verməz. Buna görə də, əsas menyunun "Sistem" bölməsində "" maddəsini tapırıq. Fayl idarəedici", Yeni alt menyunu açır, burada" Fayl meneceri (inzibatçı hüquqları ilə) ". Bu menecer sizə bütün lazımi faylları köçürməyə imkan verəcək əməliyyat sistemi... Heç bir şey icad etmədən, iki dirijorda paralel olaraq qovluqları açın, sadəcə olaraq, fayllar görünənə qədər lazımi (hamısı adlanır) qovluqları açın və faylları kopyalayın.

Fəsil 5. Arduino, Vizual Proqramlaşdırma

düyü. 5.5. Proqram fayllarının openSUSE-ə ötürülməsi

Paylaşım qovluğu ilə xüsusilə diqqətli olmalısınız, çünki onun çoxlu alt qovluqları var və müvafiq qovluqlar fayl sistemində axtarılmalıdır.

Kopyalamanı bitirdikdən sonra proqramı əsas menyuda tapmağa cəhd edə bilərsiniz. Və həqiqətən də, S4A proqramı "İnkişaf" bölməsindəki "Proqramlar" sekmesinde görünür (mənim başqa "Digər proqramlar" bölməm var). Və hətta onu idarə edə bilərsiniz. Amma siçanla bir neçə hərəkət etdikdən sonra asılmağa başlayır...

V terminal və openSUSE super istifadəçi hüquqlarına malik terminala malikdir; super istifadəçi adından Arduino modulunu birləşdirdikdən sonra proqramı işə salın. Və işləyir. İndi adi şəkildə başlamaq olar.

V digər Linux paylamalarında əməliyyatlar yuxarıda təsvir edilənlərə bənzəyir, fərqlər o qədər də əhəmiyyətli deyil. Fedora 14-də mən sadəcə istifadəçini dəyişdirdim, kök kimi daxil oldum, bu, əlbəttə ki, edilməməlidir, amma hər şeyi lazımi yerə qoymaq daha asan idi.

Proqramı Linux-da quraşdırdıqdan sonra görək onu niyə quraşdırdıq?

Birincisi, proqram modulla işləyir, modulun analoq və rəqəmsal girişlərində nə baş verdiyini göstərir. Hansı ki, artıq yaxşıdır. Ancaq bu, əsas məsələ deyil. Əsas odur ki, ikincisi, proqram Arduino dilində kod deyil, proqram qurmağa imkan verir.

Proqram işləməyə başlayanda, sol pəncərədə siçan ilə götürülə və orta pəncərəyə - işləyən "quraşdırma" sahəsinə köçürülə bilən bir sıra elementlər var. Start adlı elementi köçürək.

Fəsil 5. Arduino, Vizual Proqramlaşdırma

düyü. 5.6. Tələb olunan proqram elementlərinin köçürülməsi

İndi yuxarıdakı pəncərədə "nəzarət" etiketli düyməni basmaqla bir sıra yeni elementlər əldə edəcəyik.

düyü. 5.7. "Nəzarət" qrupundakı elementlərin siyahısı

Bu elementlər arasında mövcud elementə köçürəcəyimiz "həmişə" elementini seçin və yuxarı kəsik çıxıntıya uyğun olması üçün əlavə edin.

Fəsil 5. Arduino, Vizual Proqramlaşdırma

düyü. 5.8. Proqrama elementlərin əlavə edilməsi

“Move” düyməsini sıxaraq başladığımız elementlər toplusuna qayıdaq və “rəqəmsal 13 on” elementini seçək, onu köçürüb əvvəlkinin içərisinə yerləşdirəcəyik.

düyü. 5.9. Rəqəmsal çıxışı aktivləşdirmə əmri

"İdarəetmə" elementlər dəstindən "rəqəmsal 13 açıq" elementinin altına "həmişə" elementinin içərisinə daxil edəcəyimiz "1 saniyə gözləyin" elementini götürürük. Bu prosesi sürətləndirmək üçün gözləmə elementini yenidən daxil edək, hərəkət elementlərinə qayıdaq və iki gözləmə elementi arasına rəqəmsal 13 off elementi əlavə edək.

düyü. 5.10. Qrafik olaraq Blink proqramı

Bu dizayn sizə nəyisə xatırladırmı? İlk proqramı adi dildə təsvir etməyə başlayanda onu belə yazdıq.

Sol siçan düyməsi ilə "start" elementinə iki dəfə vurun və Arduino moduluna baxın

İndiyə qədər səssiz olan pin 13-dəki LED müntəzəm olaraq saniyədə bir dəfə yanıb-sönür.

Proqramı tərtib etdik, işə saldıq və modulu bu proqrama uyğun işlətdik. Biz isə heç bir kod sətirini yazmamışıq. Məhz bu səbəbdən proqramlaşdırma ilə proqram kodunu yazmağı bir-birindən ayırmağa üstünlük verirəm.

Fəsil 5. Arduino, Vizual Proqramlaşdırma

Ancaq bəlkə bu, bizim yığdığımız proqram deyil, əvvəllər yüklənmiş proqramdır?

"Başlat" elementinə yenidən iki dəfə klikləməklə proqramı dayandırın. "1 saniyə gözləyin" elementinə sol klikləyin.

düyü. 5.11. Proqram elementlərinin parametrlərinin dəyişdirilməsi

Gəlin 5 rəqəmini daxil edək (aşağı elementdə olduğu kimi). Proqramı işə salaq... və heç nəyi qarışdırmadığımıza əmin olun, LED hər 5 saniyədən bir yanıb-sönür!

Rəqəmsal girişin işini "canlı" formada sınaqdan keçirməmişik. Bunu etməyin vaxtı deyilmi?

Proqramı S4A-da quraq. İlk "kərpiclər" əvvəlki kimidir əvvəlki proqram... Sonra ... şərti yerinə yetirməliyik: düyməyə basılırsa, LED-i yandırın, əks halda söndürün. Belə bir element var - bu "əgər ... və ya ..." dir. Onun yuxarı hissəsində bizə lazım olan "rəqəmsal giriş ..." şərtini daxil edə biləcəyiniz bir "rozetka" var.

düyü. 5.12. Proqram qolunun if elementinə şərtin əlavə edilməsi

Almaq üçün tədbirlər əlavə etmək qalır arzu olunan görünüş proqramlar.

düyü. 5.13. Proqramın yekun formalaşdırılması

Əgər onu Arduino dilində yazılmış proqramla müqayisə etsək, onda deyə bilərik ki, fərqlər yalnız qəsdən edilənlərdir: düyməni buraxanda LED yanmır, basılanda LED yanır.

Fəsil 5. Arduino, Vizual Proqramlaşdırma

Yoxlamaya keçməyin vaxtıdır. Ancaq əvvəlcə kiçik bir xəbərdarlıq.

Nümunələrdə göstərilən diaqramda düymə +5 V pininə bağlıdır.Mən onu bir az fərqli şəkildə açmağı məsləhət görərdim.

Xüsusilə hər şeyi "çəki ilə" yoxlasanız. Təsadüfi bir səhv olarsa, mənimlə olduğu kimi ola bilər, moduldan tüstü çıxacaq, bu da əhval-ruhiyyəni çox pozacaq. Və ən çox doğru yol- adapter bağlayıcıları olan çörək lövhəsindən istifadə edin (Arduino Nano üçün mikrosxem üçün uyğun bir rozetka olduğunu düşünürəm).

Çörək lövhəsindəki əlaqələrin düzgünlüyünü yoxladıqdan sonra Arduino modulunu ona qoşduqdan sonra onu kompüterinizin USB konnektoruna qoşub S4A proqramını işə sala bilərsiniz. Diqqət yetirin - rəqəmsal giriş və yer arasında 10 kOhm rezistor bağladığınız zaman oxunuşlar (proqramın sağ pəncərəsində) "yanlış, yalan" və "doğru, doğru" arasında təsadüfi olaraq dəyişməyi dayandırdı. “Başlat” elementinə iki dəfə klikləməklə proqramımızı işə salırıq, əsas menyunun “Edit” bölməsinə keçərək addım-addım icra əlavə edirik.

düyü. 5.14. Sazlama Rejiminə Addım əlavə edilməsi

Siz həmçinin "bir addım təyin edin ..." bəndində icra sürətini seçə bilərsiniz. İndi isə düymə basılmadığı halda biz görürük ki, LED sönür və proqram yalnız onun göstərildiyi hissədə icra olunur.

Fəsil 5. Arduino, Vizual Proqramlaşdırma

düyü. 5.15. Sazlama rejimində proqramın icrası

Yuxarı sağ pəncərədə Digital1 girişinin vəziyyətini görə bilərsiniz - false. Giriş yerdədir, giriş aşağı məntiq səviyyəsidir və bu, proqram baxımından "yanlış" vəziyyətindədir. Düyməni basaq.

düyü. 5.16. Düymə basıldığında əməliyyatı proqramlaşdırın

Giriş vəziyyəti "doğru" dəyişdi, LED yanır və proqram şərtin yerinə yetirildiyi hissəyə daxil olur.

Əgər “nəzarət” bölməsindəki narıncı elementlərə diqqət yetirsəniz, çoxlarının olduğunu görə bilərsiniz

Fəsil 5. Arduino, Vizual Proqramlaşdırma

şərtləri daxil etmək üçün yuvaları var.

Şərtlər fərqli ola bilər. Yuxarıda, şərt olaraq rəqəmsal girişin vəziyyətindəki dəyişiklikdən istifadə etdik. Amma başqa şərtlər də ola bilər.

düyü. 5.17. İdarəetmə elementlərinə şərtlər əlavə etmək üçün yuvalar

Və daha çox - bir çox elementin yanında qara aşağı oxlara diqqət yetirin.

Siçan ilə bu oxu basın...

düyü. 5.18. Mümkün sensorların siyahısını açan ox

Və biz, məsələn, bu vəziyyətdə olduğu kimi, istifadə edilən girişi dəyişdirmək imkanı əldə edirik. Digər hallarda, məsələn, çıxış pinini və ya analoq girişi dəyişir. Arduino modulu ilə təcrübə aparmaq üçün geniş imkanlarımız var. Ancaq niyə modulla? Bir neçə moduldan istifadə etmək hüququmuz var. Kifayət qədər, bunun yeganə yol olduğunu deməyəcəyəm, "kostyumlar" sekmesine keçin, mövcud "kostyum"a sağ vurun və "yeni obyektə keçid" bölməsini seçin.

Başqa bir Arduino modulu görünəcək. Əgər sizdə varsa, onu USB portuna qoşmusunuzsa, məncə, onunla da işləyə bilərsiniz.

Fəsil 5. Arduino, Vizual Proqramlaşdırma

düyü. 5.19. İkinci Arduino modulunun əlavə edilməsi

Və son bir qeyd. S4A proqramında etdiyimiz hər şeyi Scratch proqramlaşdırma dilindən istifadə edirik. Bunu necə bəyənirsiniz?

Bu dərs Arduino sistemlərini C-də proqramlaşdırmaq üçün tələb olunan minimum bilikləri təqdim edir. Siz yalnız ona baxa və gələcəkdə istinad kimi istifadə edə bilərsiniz. Başqa sistemlərdə C-də proqramlaşdıranlar bu məqaləni atlaya bilərlər.

Yenə də deyirəm ki, bu minimal məlumatdır. Göstəricilərin, siniflərin, sətir dəyişənlərinin və s. sonrakı dərslərdə veriləcək. Bir şey aydın deyilsə, narahat olmayın. Sonrakı dərslərdə çoxlu misallar və izahlar olacaq.

Arduino proqramının strukturu.

Arduino proqramının strukturu olduqca sadədir və minimal versiyada quraşdırma () və döngə () iki hissədən ibarətdir.

quraşdırmanı ləğv edin () (

boş döngə () (

Quraşdırma () funksiyası bir dəfə, işə salındıqda və ya nəzarətçi sıfırlandıqda yerinə yetirilir. Adətən, dəyişənlərin, registrlərin ilkin parametrləri orada baş verir. Proqramda heç bir şey olmasa belə, funksiya proqramda olmalıdır.

Quraşdırma () tamamlandıqdan sonra idarəetmə loop () funksiyasına keçir. Gövdəsində yazılan əmrləri (qıvrımlı mötərizələr arasında) sonsuz döngədə yerinə yetirir. Əslində, bu əmrlər nəzarətçinin bütün alqoritmik hərəkətlərini yerinə yetirir.

Orijinal C sintaksisi qaydaları.

; nöqtəli vergülİfadələrdə istədiyiniz qədər boşluq, sətir sonu ola bilər. İfadənin dayandırılması "nöqtəli vergül" simvolu ilə göstərilir.

z = x + y;
z = x
+ y;

() buruq mötərizələr funksiya və ya ifadələr blokunu təyin edin. Məsələn, quraşdırma () və loop () funksiyalarında.

/ *… * / Şərh bloku, bağlamağınızdan əmin olun.

/ * bu şərh blokudur * /

// bir sətir şərh, bağlamağa ehtiyac yoxdur, xəttin sonuna qədər etibarlıdır.

// bu bir sətir şərhdir

Dəyişənlər və məlumat növləri.

Dəyişən hüceyrədir təsadüfi giriş yaddaşı məlumatın saxlandığı yer. Proqram aralıq hesablama məlumatlarını saxlamaq üçün dəyişənlərdən istifadə edir. Hesablamalar üçün müxtəlif formatlı məlumatlar, müxtəlif bit dərinlikləri istifadə edilə bilər, buna görə də C dilində dəyişənlər aşağıdakı növlərə malikdir.

Məlumat növü Bit dərinliyi Rəqəmlər diapazonu
boolean 8 doğru yalan
char 8 -128 … 127
imzasız simvol 8 0 … 255
bayt 8 0 … 255
int 16 -32768 … 32767
imzasız int 16 0 … 65535
söz 16 0 … 65535
uzun 32 -2147483648 … 2147483647
imzasız uzun 32 0 … 4294967295
qısa 16 -32768 … 32767
sal 32 -3.4028235+38 … 3.4028235+38
ikiqat 32 -3.4028235+38 … 3.4028235+38

Məlumat növləri tələb olunan hesablama dəqiqliyinə, məlumat formatlarına və s. Məsələn, 100-ə qədər sayan sayğac üçün uzun növü seçməməlisiniz. Bu işləyəcək, lakin əməliyyat daha çox məlumat və proqram yaddaşını tutacaq və daha çox vaxt aparacaq.

Dəyişən bəyannamələr.

Məlumat növü müəyyən edilir, ardınca dəyişənin adı verilir.

int x; // int tipli x adlı dəyişənin elanı
float widthBox; // float tipli widthBox adlı dəyişəni elan edin

Bütün dəyişənlər istifadə edilməzdən əvvəl elan edilməlidir.

Dəyişən proqramın istənilən hissəsində elan edilə bilər, lakin bu, hansı proqram bloklarının ondan istifadə edə biləcəyindən asılıdır. Bunlar. dəyişənlərin əhatə dairəsi var.

  • Proqramın əvvəlində, void setup () funksiyasından əvvəl elan edilmiş dəyişənlər qlobal sayılır və proqramın istənilən yerində mövcuddur.
  • Lokal dəyişənlər funksiyalar və ya for loop kimi bloklar daxilində elan edilir və yalnız elan edilmiş bloklarda istifadə oluna bilər. Eyni ada malik, lakin müxtəlif əhatə dairələrinə malik bir neçə dəyişən mümkündür.

int rejimi; // dəyişən bütün funksiyalar üçün əlçatandır

quraşdırmanı ləğv edin () (
// boş blok, ilkin parametrlər tələb olunmur
}

boş döngə () (

uzun sayı; // count dəyişəni yalnız loop () funksiyasında mövcuddur

üçün (int i = 0; i< 10;) // переменная i доступна только внутри цикла
{
i ++;
}
}

Dəyişən elan edərkən siz onun ilkin qiymətini təyin edə bilərsiniz (insiallaşdırın).

int x = 0; // ilkin qiyməti 0 olan x dəyişənini elan edin
char d = 'a'; // d dəyişəni "a" simvol koduna bərabər ilkin qiymətlə elan edilir.

Müxtəlif məlumat növləri ilə hesab əməliyyatları zamanı məlumat növləri avtomatik olaraq çevrilir. Ancaq hər zaman açıq-aydın çevrilmədən istifadə etmək yaxşıdır.

int x; // int dəyişəni
char y; // char dəyişəni
int z; // int dəyişəni

z = x + (int) y; // y dəyişəni açıq şəkildə int-ə çevrilir

Arifmetik əməliyyatlar.

Əlaqə əməliyyatları.

Məntiqi əməliyyatlar.

Göstəricilər üzərində əməliyyatlar.

Bitwise əməliyyatları.

&
| YA
^ EKSKLÜZİV VƏ YA
~ İNVERSİYA
<< SOL SÖKDÜR
>> SAĞA KEÇİRİN

Qarışıq tapşırıq əməliyyatları.

Seçimlərin seçimi, proqramın idarə edilməsi.

IF bəyanatı mötərizədə verilmiş şərti yoxlayır və şərt doğrudursa, sonrakı ifadəni və ya əyri mötərizə blokunu qiymətləndirir.

əgər (x == 5) // əgər x = 5 olarsa, z = 0 yerinə yetirilir
z = 0;

əgər (x> 5) // əgər x>
(z = 0; y = 8;)

ƏGƏR iki variant arasında seçim etməyə imkan verir.

əgər (x> 5) // əgər x> 5 olarsa, onda blok z = 0, y = 8;
{
z = 0;
y = 8;
}

{
z = 0;
y = 0;
}

ƏGƏR- çoxlu seçim etməyə imkan verir

əgər (x> 5) // əgər x> 5 olarsa, onda blok z = 0, y = 8;
{
z = 0;
y = 8;
}

else if (x> 20) // əgər x> 20 olarsa, bu blok icra olunur
{
}

else // əks halda bu blok icra olunur
{
z = 0;
y = 0;
}

KEÇİRİLMƏK KASA- çoxlu seçim. Dəyişənləri (x misalında) bir neçə sabitlə (5 və 10-cu misallarda) müqayisə etməyə və dəyişənin sabitə bərabər olduğu bloku icra etməyə imkan verir.

keçid (x) (

hal 5:
// kod x = 5 olarsa icra olunur
fasilə;

hal 10:
// kod x = 10 olarsa icra olunur
fasilə;

defolt:
// əvvəlki dəyərlərdən heç biri uyğun gəlmirsə, kod yerinə yetirilir
fasilə;
}

FOR döngəsi... Dizayn müəyyən sayda təkrarlama ilə döngələri təşkil etməyə imkan verir. Sintaksis belə görünür:

for (döngü başlamazdan əvvəl hərəkət;
dövrü davam etdirmək şərti;
hər iterasiyanın sonunda hərəkət) (

// loop bədən kodu

100 təkrardan ibarət bir dövrə nümunəsi.

üçün (i = 0; i< 100; i++) // начальное значение 0, конечное 99, шаг 1

{
cəm = cəmi + I;
}

WHILE dövrü... Operator tikinti ilə döngələri təşkil etməyə imkan verir:

while (ifadə)
{
// loop bədən kodu
}

Mötərizədə göstərilən ifadə doğru olduğu müddətcə dövrə icra olunur. 10 iterasiya üçün bir dövrə nümunəsi.

x = 0;
isə (x< 10)
{
// loop bədən kodu
x ++;
}

EDƏRKƏN- çıxışda şərti olan döngə.

et
{
// loop bədən kodu
) while (ifadə);

Döngə ifadə doğru olduğu müddətcə yerinə yetirilir.
FASİLƏ- dövrədən çıxmaq üçün operator. For, while, do while dövrlərinin icrasını dayandırmaq üçün istifadə olunur.

x = 0;
isə (x< 10)
{
əgər (z> 20) qırılırsa; // əgər z> 20 olarsa, döngədən çıxın
// loop bədən kodu
x ++;
}

GETMƏK- qeyd-şərtsiz tullanma operatoru.

get metka1; // metka1-ə keçin
………………
metka1:

DAVAM EDİN- loop gövdəsinin sonuna operatorların atlanması.

x = 0;
isə (x< 10)
{
// loop bədən kodu
əgər (z> 20) davam edərsə; // əgər z> 20 olarsa, onda dövrənin gövdəsinin əvvəlinə qayıdın
// loop bədən kodu
x ++;
}

Massivlər.

Massiv bir neçə dəyişənin ardıcıl olaraq saxlandığı yaddaş sahəsidir.

Massiv belə elan edilir.

int əsrlər; // 10 int dəyişənli massiv

üzən çəki; // 100 float dəyişəni massivi

Elan edildikdə, massivlər işə salına bilər:

int yaşları = (23, 54, 34, 24, 45, 56, 23, 23, 27, 28);

Massiv dəyişənlərinə bu şəkildə daxil olur:

x = yaş; // x-ə massivin 5-ci elementindən qiymət təyin edilir.
yaş = 32; // 9 massiv elementi 32-yə təyin edilib

Massiv elementləri həmişə sıfırdan nömrələnir.

Funksiyalar.

Funksiyalar müxtəlif verilənlər üzərində eyni hərəkətləri yerinə yetirməyə imkan verir. Funksiya var:

  • onun çağırıldığı ad;
  • arqumentlər - funksiyanın hesablamaq üçün istifadə etdiyi məlumatlar;
  • funksiya tərəfindən qaytarılan məlumat növü.

İstifadəçi tərəfindən müəyyən edilmiş funksiya quraşdırma () və loop () funksiyalarından kənarda təsvir edilmişdir.

quraşdırmanı ləğv edin () (
// proqram başlayanda kod bir dəfə yerinə yetirilir
}

boş döngə () (
// döngədə icra edilən əsas kod
}

// functionName adlı xüsusi funksiyanın elanı
funksiyanın adını yazın (arqument1 yazın, arqument1 yazın, ..., arqument yazın)
{
// funksiya orqanı
qayıt ();
}

İki arqumentin kvadratlarının cəmini hesablayan funksiya nümunəsi.

int sumQwadr (int x, int y)
{
qaytarma (x * x + y * y);
}

Funksiya çağırışı belə olur:

d = 2; b = 3;
z = cəmiQvədr (d, b); // z d və b kvadratlarının cəmi olacaq

Funksiyalar daxili, xüsusi, plug-indir.

Çox qısa, lakin bu məlumat Arduino sistemləri üçün C proqramları yazmağa başlamaq üçün kifayət etməlidir.

Bu dərsdə demək istədiyim son şey C dilində proqramların tərtib edilməsinin necə adət olduğudur. Düşünürəm ki, əgər siz bu dərsi ilk dəfə oxuyursunuzsa, bu bölməni keçməli və daha sonra nəsə etmək istədiyiniz zaman ona qayıtmalısınız. dizayn.

Proqramların xarici dizaynının əsas məqsədi proqramların oxunaqlılığını yaxşılaşdırmaq, sayını azaltmaqdır formal səhvlər... Buna görə də, bu məqsədə çatmaq üçün bütün tövsiyələri təhlükəsiz şəkildə poza bilərsiniz.

C-də adlar.

Məlumat növlərini təmsil edən adlar qarışıq hərflərlə yazılmalıdır. Adın ilk hərfi böyük (böyük hərf) ilə yazılmalıdır.

Siqnal, Zaman Sayısı

Dəyişənlər qarışıq adlarla yazılmalıdır, ilk hərf kiçik hərfdir (kiçik).

Kateqoriya:. Əlfəcinlərə əlavə edə bilərsiniz.

Ardublock


Arduino üçün qrafik proqramlaşdırma dili

Ardublock Kit Ver 1.0 Bələdçisi

Ardublock nədir

Ardublock qeyri-proqramçılar üçün nəzərdə tutulmuş və istifadəsi asan Arduino üçün qrafik proqramlaşdırma dilidir.

(Unutmayın ki, Arduino IDE-dəki proqram eskiz adlanır)

Quraşdırma
ardublock-all.jar arxivini yükləyin
"Arduino IDE / Menyu / Arduino / Preferences" i açın, orada "Sketchbook yeri" xəttini tapa bilərsiniz.

3. Xəttdə “Arduino” qovluğunda “tools / ArduBlockTool / tool” qovluğu yaradın.
“Məkanı eskiz” və “ardublock-all.jar” arxivini “alət” qovluğuna köçürün.

İstifadəçi adı “abu”dursa,

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

Linux-da, /home/abu/sketchbook/tools/ArduBlockTool/tool/ardublock-all.jar

Windows-da C: \ İstifadəçilər \ abu \ Sənədlər \ Arduino

4 Arduino IDE-ni yenidən başladın və siz “Alət” menyusunda “ArduBlock” elementini görməlisiniz.

Qovluq adlarının böyük və kiçik hərflərinə diqqət yetirin.


İstifadəsi

ArduBlock blokları bir neçə kateqoriyaya bölünür.

Nəzarət
“İdarəetmə” kateqoriyasının blokları idarəetmə bloklarıdır.

Rəqəmlər, sabitlər və dəyişənlər

Operatorlar

Kommunal xidmətlər

Bu bloklar eskizlərdə çox istifadə olunan funksiyalardır.

Kərpic

Bu kateqoriyadakı hər bir blok birbaşa eskizinizə qoşula biləcəyiniz bir növ real cihazı təmsil edir.

Pin

Bu bloklar Arduino lövhəsində virtual sancaqlar kimi çıxış edir.

Necə proqramlaşdırmalı

1. Kompilyasiya uğurla başa çatmalıdır. Arduino mühitində göstərilən port və ya lövhənin özü tapılmazsa, səhv mesajı qutusu görünür.

2. Eyni formalı birləşdiriciləri olan qrafik bloklar bir-birinə birləşdirilə bilər.

Bağlantı qurmaq asandır, bunun üçün bir bloku birləşdirmək istədiyiniz bloka sürükləməlisiniz.

3. “Yükləmə” düyməsinə basılan kimi ArduBlock avtomatik olaraq Arduino kodunu yaradacaq, sonra o Arduino lövhəsinə yüklənəcək (kompilyasiya zamanı əldə edilən proqramın mətni Arduino IDE eskizləri pəncərəsində görünəcək).

Proqramı necə başlamaq olar

Sadə nəticə

1 Nümunə 1 - Salam Dünya!

1.1 Aparat bağlantısı

Arduino pin 13-ə qoşulur.

1.2 Fəaliyyət

LED saniyədə 1 dəfə yanıb-sönəcək.

1.3 Eskiz

1.4 Yüklə

Qeyd
Siz abp faylını birbaşa yükləyə bilərsiniz - burada təsvir edilən bütün nümunələri Ardublock mühitinin təsviri faylı (İngilis dilində) ilə birlikdə abp uzantılı qrafik eskiz faylları kimi endirmək olar.

Abp faylı "yüklə" düyməsini sıxmaqla yüklənə bilər.


Sonra yüklənmiş faylı təyin etməli və "açıq" düyməsini sıxmalısınız.

2 Nümunə 2 - Siqnal

2.1 Aparat bağlantısı


Rəqəmsal Mavi LED İşıq Modulu pin 12-ə qoşulur.

2.2 Funksiya

Qırmızı LED və mavi LED polis sireni kimi növbə ilə yanacaq. Onları şəffaf bir qapaq və ya parça ilə örtsəniz, təsir daha da yaxşı olar.

2.3 Eskiz

2.4 Yüklə

Sadə giriş

3 Düymə basıldıqda LED-i yandırır

3.1 Aparat bağlantısı

Rəqəmsal Ağ LED İşıq Modulu pin 13-ə qoşulur.

3.2 Funksiya

Düymə basılırsa, LED yanır.

3.3 Eskiz


3.4 Yüklə

4 Morze kodu

4.1 Aparat bağlantısı

Rəqəmsal Qırmızı LED İşıq Modulu pin 13-ə qoşulur.
Rəqəmsal səs siqnalı modulu pin 12-yə qoşulur.
Rəqəmsal Push Button pin 8-ə qoşulur.

4.2 Funksiya

Düymə basıldıqda qırmızı LED yanır və səs eşidilir. Səs dövrü Morze koduna bənzəyir.

4.3 Eskiz

4.4 Yüklə

Analoq giriş və çıxış

5 Fırlanma sensoru

5.1 Avadanlıq parametrləri

Analoq Fırlanma Sensoru V1 A0 pininə qoşulub.

5.2 Funksiya

Bu proqramda siz fırlanma bucağının dəyərini öyrənə bilərsiniz.
Proqramı yüklədiyiniz zaman arduino IDE-yə keçə bilərsiniz, monitor işarəsinə klikləyin. Serial monitor pəncərələri sizə fırlanma bucağını 0 ilə 1023 arasında göstərəcək.

5.3 Eskiz

5.4 Yüklə

6 Söndürmə işığı

6.1 Avadanlıq parametrləri

Rəqəmsal Ağ LED İşıq Modulu pin 11-ə qoşulur.

6.2 Funksiya

Bu proqram sizə işığın necə yandığını və yavaş-yavaş söndüyünü göstərəcək.

6.3 Eskiz

6.4 Yüklə

7 Səs-küyün ölçülməsi 1

7.1 Avadanlıq parametrləri

Rəqəmsal Ağ LED İşıq Modulu pin 11-ə qoşulur.

7.2 Funksiya

Bu detektor ətrafdakı səs-küyün səviyyəsini ölçə bilər, səs daha yüksək olduqda LED daha güclü parlayacaq.

7.3 Eskiz


7.4 Yüklə

8 Səs-küyün ölçülməsi 2

8.1 Avadanlıq parametrləri

Rəqəmsal Ağ LED İşıq Modulu pin 11-ə qoşulur.
Analoq Səs Sensoru A0 pininə qoşulur.

8.2 Funksiya

Bu detektor ətrafdakı səs-küy səviyyəsini ölçə bilər, səs daha yüksək olduqda LED daha sürətli yanıb-sönəcək.

8.3 Eskiz


8.4 Yüklə

 

 

Bu maraqlıdır: