Məsafədən İdarəetməli Robot Maşın #1 – Yığılma

Çoxumuzun uşaqlıqda uzaqdan idarəetməli oyuncaqları olub (bəlkə indi də var) və ya ən azından imkanlı qonşumuzun uşağında görüb, böyük həvəslə izləmişik. Bəzilərimiz isə hətta bu tip oyuncaqların söküb içindəki sxemlərin necə işlədiyini müəyyən etməyə və ya təmir etməyə çalışıb. İllər sonra böyüsək də bu həvəs bizdə hər zaman qalır. Bu gün də sizlərin  (özümün də daxil olmaqla) həvəsini nəzərə alıb Bluetooth və Smartfon ilə məsafədən idarəetməli robot maşın proyekti hazırlamaq qərarına gəldim. Bu proyekt bir neçə seriyada yayımlanacaq və hər dəfə robotumuza yeni-yeni funksionallıqlar əlavə edəcəyik. Başlanğıc olaraq biz robotumuzun şassisini və sürücü dövrəsini yığıb, mikrokontrollerə Bluetooth üzərindən əmrləri qəbul edib sadə əmrlər yerinə yetirən proqram yazacağıq. Bu proyektdə şassi kimi ZL-4 robot maşın modelindan istifadə edəcəyik, amma bununla belə siz istənilən 2 və ya 4 mühərrikli maşın gövdəsindən istifadə edə bilərsiniz. Əsas idarəetmə prinsipi eyni olaraq qalır.

İlk olaraq gəlin lazım olacaq komponentləri sadalayaq:

  1. Robot şassi (təkərlər, reduktorlu motorlar və akrilik gövdə) – ZL-4
  2. Qoşa H-körpülü motor sürücüsü (Dual H-bridge motor driver) – L298N
  3. Mikrokontroller kartı – Arduino Uno R3
  4. Bluetooth modulu – HC-06
  5. mini-Breadboard:
  6. 3x 1K və ya 10K rezistor (1-20K arası istənilən 3 ədəd eyni dəyərli müqavimət)
  7. 6x AA Battareya + qabı (2S/3S LiPo da işlədə bilərsiniz, 7-13V arası güc qaynağı kifayət edir)
  8. Əlaqə kabelləri (jumper wires)
  9. Arduino Bluetooth RC Car proqramı yüklənmiş Andoroid smartfon

Komponentlərin növü büdcənizə və şəxsi istəyinizə görə dəyişə bilər, amma əsas idarəetmə proqramının məntiqi və robotun elektronik strukturu bir çox hallarda oxşar olaraq qalır. Bu sadaladığımız detallardan əlavə bizə aşağıdakı avadanlıqlar da lazım olacaq:

  • Vintaçan
  • Kəlbətin
  • Lehimləyici
  • Kabel kəsən
  • Multimetr
  • Lak (təbii ki, bu manikür üçün yox başqa səbəbdən bizə lazımdı 🙂 )

İşə qoyulmazdan əvvəl gəlin biraz sabit cərəyan motorları, xüsusilə də fırçalı motorlar haqqında danışaq. Daha sonra isə bu motorları istənilən istiqamətdə hərəkətə gətirməyin yollarını və fırlanma sürətini elektronik olaraq necə dəyişəcəyimizə baxacaq.

Hazırda elektromexaniki sistemlərdə bir çox növdə elektrik mühərriklərindən istifadə olunur. Bunlara fırçalı, fırçasız, stepper, universal və s. mühərriklər daxildir. Bunlardan mexaniki quruluş baxımından sadə olanı şəkildə gördüyünüz fırçalı sabit cərəyan mühərrikidir. Bu mühərrikin əsas üstünlüyü qiymətinin və enerji tələbatının aşağı, fırlanma momentinin isə yüksək olmasındadır. Bu mühərriklərə tez-tez oyuncaq sərinkeş və maşınlarda rast gəlirik.

dc_motor

Fırçalı motor (model 130)

dc

Fırçalı motor reduktor başlığı ilə

Bizim robotda istifadə etdiyimiz motor da bu tipdir, bir fərqlə ki, bizdəki mühərikə əlavə dişli çarxdan ibarət reduktor da qoyulub. Bu mühərrikin fırlanma sürətini azaldır və əvəzində dönmə momentini (gücünü) artırır. İndisə gəlin sabit cərəyan (Direct Current) motorlarının fırlanma istiqamətini və sürətini elektronik olaraq necə idarə edəcəyimizin qısa izahını verək.

DC motorların fırlanma istiqaməti onlara tətbiq olunan cərəyanın axım istiqamətini dəyişməklə idarə olunur. Bunun üçün isə bizə 4 elektrik açarının H-körpüsü adlandırılan formada qurulmuş sxemi lazımdır. Sxemə nəzər salsaq bu konfiqurasiyanın nəyə görə H-körpüsü adlandırıldığı daha aydın olur (H hərfinə bənzəyir).

hbridge1

H-körpüsü (H-Bridge)

Açarlar açıq olan halda motor boş fırlanma neytral) halında olur. H-körpüsündə diaqonaldaçı açarlar  (U1 U4-lə və U2 U3-lə) cütlük yaradır və eyni anda idarə olunmalıdırlar. Gəlin U2 U3 açarlarını qapayaq. Bu zaman cəryanın axım istiqaməti şəkildə qırmızı xətlə, mühərrikə daxil/xaric olduğu nöqtələrdə isə + ilə göstərilib.  Fərz edək ki, bu zaman motorumuz saat əqrəbi istiqamətində fırlanır.

hbridge2

İndi isə U2, U3 açarlarını açıb, U1, U4 açarlarını qapayırıq. Fikir verin indi cərəyanın axma istiqaməti (motorun giriş/çıxış terminallarına tətbiq olunan gərginliyin polyarlığı) necə dəyişir.  Cərəyanın axım istiqaməti dəyişdiyindən indi motorumuz saat əqrəbinin əksinə fırlanır.

hbridge3

Bundan əlavə əgər biz U3 U4 və ya U1 U2 açarlarını eyni zamanda açmış olsaq bu zaman motorun hər iki terminalı eyni gərginlik potensialında olacağından bu motorda tormozlama effekti yaradacaq və onun rahat fırlanmasının qarşısını alacaq. Bu danışdığımız halları aşağıdakı cədvəldə qısa şəkildə görə bilərsiniz.

U1 U2 U3 U4 Motorun verdiyi reaksiya
ON OFF OFF ON Motor saat əqrəbinin* əksinə  fırlanır
OFF ON ON OFF Motor saat əqrəbi* istiqamətində fırlanır
ON ON OFF OFF Motor tormozlanır
OFF OFF ON ON Motor tormozlanır

Burada açar kimi  4 ədəd 2 qütblü və ya 2 ədəd 4 qütblü açardan, relelərdən, həmçinin 4 ədəd Bipolyar və ya MOY-Tranzistor istifadə oluna bilər. 

Fikir verin U1 – U3 və ya U2 – U4 açarları eyni anda açılarsa dövrə qısa qapanacağından elektrik dövrələrində bu halın yaranmasının qarşısı qəti şəkildə alınmalıdır. MOY-Tranzistorlu (Metal oksid yarımkeçirici sahə effekti tranzistoruları) (ing. MOSFE) və bipolyar tranzistorlu dövrələrdə açarları idarə edən xəttə AND məntiqi bloku qoyulur. Bu blok bir tərəfdə olan açarların eyni zamanda aktivləşdirilməsinin qarşısını alır. İstifadə edəcəyimiz L298N markalı inteqral sxemdə bu qorunma artıq daxili olaraq qurulduğu üçün bu barədə narahat olmağa dəyməz.

Motorun fırlanma sürətinin idarəsinə gəldikdə isə bu məqalənin çox uzanmaması üçün bunun nəzəriyyəsi barədə növbəti məqalədə ətraflı danışacam. Qısaca bunu deyim ki, fərz edin ki,  H-körpümüzdə U1 və U4 açarları qapanıb, motorumuz tam sürətlə fırlanlır. Biz axan cərəyanın miqdarını azaltsaq, motorun fırlanma sürətini də azaltmış olarıq. Bu axan cərəyanın sürətini azaltmaq üçün isə açarlardan birini qapalı saxlayıb, digərini isə çox yüksək sürətlə (saniyədə ~1000 dəfə) açıb-qapasaq bu zaman 1 saniyədə axan cərəyanın miqdarı açarın bu 1 saniyə zaman kəsiminin neçə faizində qapalı olmasından asılı olacaqdır. Buna termin olaraq İmpuls-enlik modulyasiyasi (ing. Pulse-width modulation) deyilir. 1 tam period ərzində impulsun eni (davam etmə müddəti) nə qədər çox olarsa, açar bir o qədər müddət qapalı olur. Bu davam etmə müddətinə impulsun işçi tsikli (duty cycle) də deyilir.

Əgər işçi tsikli 50 % olarsa bu zaman açardan axan cərəyan da maksimalın 50 %-i və ya 2 dəfə az olacaq ve beləliklə biz motorun fırlanma sürətini də idarə edəcəyik.

 

Ümidvaram bu qədər nəzəriyyə ilə sizi yormadım :). Gəlin başlayaq robotumuzu yığmağa. Bu işə şassi qutusunun içindəkiləri yerbəyer etməklə başlaya bilərik.

package_contents

Daha sonra motorların kabellərini lehimləyirik. Motorların hamsı eynidir, biz isə motorları sağ və sol qoşalara ayırıb kabelləri onların fırlanma istiqamətinə uyğun lehimləyirik. Bu elə də vacib bir şey deyil, çünki istənilən zaman kabellərin yerini dəyişməklə motorun firlanma istiqamətini dəyişə bilərik.

filter_caps

Şəklə diqqətlə baxsaq görərsiniz ki, hər motorun terminalları arasında 100 nano-Farad tutumlar da lehimləmişəm. Bu addım çoxda vacib deyil, sadəcə motorun işə başlama və durma anlarında dövrəyə qatdığı küyləri azaltmaq məqsədi daşıyır (ətraflı burdan oxuya bilərsiniz). Daha sonra akrilik gövdənin alt hissənin üzərinə sonradan motorları bərkidəcəyimiz 4x dəmir dirsəkləri və 4x gövdə dayaqlarını bağlayırıq. Dirsək, dayaq və motorları bağlayan zaman boltların yivlərinə motorların vibrasiyasından yaranacaq boşalmanı aradan qaldırmaq üçün lak vurmağı məsləhət görürəm (bayaq demişdim axı lak bizə lazım olacaq).

20151122_143444
20151122_145738

Dirsəklərin hamsını bərkitdikdən sonra ilk motorumuzu dirsəyə bağlaya bilərik.

20151122_150348

Motorların kabellərini bacardığımız qədər səliqəli bir şəkildə gövdənin orta hissəsinə doğru aparırıq,  çünki motor sürücü (motor driver) dövrəmizi burada yerləşdirəcəyik. Motorla dirsək arasında təxminən 3 mm məsafə qalmışdı, mən də kabelin birini oradan aparmaq qərarına gəldim.

20151122_150338

Bu addımı da tamamladıq və robot maşınımız öz formasını alır. Motorların düzülüşünə fikir verin, alt və üst tərəfdəki motorların kabel rəngləri fərqlənir, çünki motorlardan birinində kabellər əks terminallara qoşmuşuq ki, eyni tərəfdə yerləşən motor cütlüyünə eyni qütblü gərginlik (məs. + 9 V) tətbit etdikdə hər ikisi eyni istiqamətdə fırlansın.

20151122_150537

İndi isə növbə motor sürücüsünündür (L298N). Bu sürücünü seçməyimin əsas səbəbi eyni anda 2 motoru idarə edə bilməsi (qoşa H-körpüsü) və hər motor üçün 4 Amperə qədər cərəyan buraxma qabiliyətinin olmasıdır. Düzdür bizə bu qədər cərəyan lazım deyil, amma biz hər kanala paralel 2 motor qoşacağımızdan və yerində götürülmə anlarında motor cərəyanı bu qiymətə çata biləcəyindən bu sürücü çox yaxşı seçimdir. Üstəlik idarəetməsi də çıx rahatdır.

Aşağıdakı şəkildə qırmızı çərçivədə işarələnmiş pinlər INa və INb sol kanaldakı motorun (OUTa, OUTb), INc və INd isə sağda gördüyünüz (OUTc, OUTd) kanalındakı motorun hərəkət istiqamətini idarə etməyə imkan verir. Xatırladım ki, biz maşının soldakı qoşa motorlarını OUTa, OUTb kanalına, sağdakıları isə OUTc, OUTd kanalına qoşmalıyıq (qoşulma sxemi aşağıda).

L298N Motor Driver

L298N Motor sürücü

L298N motor sürücü inteqral sxeminin məlumat vərəqinə (datasheet) baxsaq qurğunun işləmə prinsipi daha aydın olar. Aşağıdakı diaqram inteqral sxemin məlumat vərəqindəndir. Sağda və solda 2 ədəd tranzistorlu H-körpü blokunu görə bilərik. EnA və EnB girişləri daimi olaraq +5V-a qoşulub və bizə yalnz In1 In2 In3 In4 girişlərini idarə etmək qalır. Out1, Out2 çıxışları sol motor dəstinə, Out3 Out4 isə sağ motor dəstinə qoşulur.

L298N Blok diaqramı

Bizim istifadə etdiyimiz L298N modulda eyniadlı inteqral sxemdən istifadə olunub və bu modulun da sxemini bilməkdə fayda var. Sxem sizə qarışıq gələ bilər, bu sxemi oxuya bilməniz proyekti reallaşdırmaq üçün elə də vacib deyil. Davam edək.

L298N sxem

L298N sxem

Robot gövdəsinin üzərində kifayət qədər müxtəlif modullar bərkitmək üçün dəliklər var və təsadüfən bu dəliklərin ikisi motor sürücüsünün diaqonal dəlikləri ilə üst-üstə düşür. Dəstin içindəki əlavə bolt və qayka istifadə edib modulumuzu gövdəyə bərkidirik.

20151122_153628
20151122_154401

Kabellərimizi də sürücü modulumuzun sağ və solundakı vintli-terminallara uyğun rənglərlə qoşuruq.

20151122_154510

Bununla da robotumuzun gövdəsinin aşağı hissəsi hazırdır. Hmmm, demək olar ki :). Bircə o qalır ki, mikrokontrolleri və qida blokumuzu (batareya qabını) bu modula bağlayaq. Üst gövdəyə isə ilk olaraq batareya qabını bağlayırıq.

20151122_160819

İndi isə sistemin ümumi qoşulma sxemini verək ki, sonrakı addımlarda qaranlıq qalan məqam olmasın.

Kabelləşmə diaqramı

Kabelləşmə diaqramı

Sistemin elektrik sxemini də verək ki, diaqramda görünməyən detallar (məs. Bluetooth və breadboard qoşulması) daha aydın olsun. Motor sürücüsünün idareetmə girişləri (göy rəngli kanallar) Arduino kartının 6, 9, 10, 11-ci pinlərinə qoşulub, çünki bizə İmpuls-enlik modulyasiya qabiliyyəti olan pinlər lazımdır (fırlanma sürətini dəyişmək üçün).

Elektrik sxemi

Bluetooth (BT) modulunun qoşulmasına gəldikdə isə bir detalı nəzərinizə çatdırım ki, HC-06 və digər bu tip modullar 3.3V gərginliklə çalışır və Arduinonun 5V verən pinləri modulumuzu zədələyə bilər. Baxmayaraq ki, modulun VCC qida girişinə 5V vermişik, modulun daxilindəki tənzimləyici gərginliyi 3.3V-a endirir. Modulun 2 məlumat pini var Rx və Tx. Rx – qəbuledici (receiver), Tx – isə ötürücü (transmitter) mənasına gəlir. Bu serial (UART) kommunikasiya pinləridir və məlumatları 8 bitlik axınla ardıcıl olaraq  göndərir və qəbul edir. BT modulunun Tx kanalı Arduinoda Rx kanalına, Rx kanalı isə Arduinoda Tx kanalına bağlanır. Arduino Rx kanalında 3.3V gərginliyi məntiqi 1 kimi qəbul edir, buna görə də bu kanalda əlavə qoruyucu dövrəyə ehtiyac yoxdur, amma BT modulunun Rx kanalında isə Arduinodan gələn 5V-luq Tx siqnalı bu kanalı zədələməsin deyə biz gərginlik bölücü müqavimətlərdən istifadə edirik. 3 ədəd ardıcıl 1 KOm-luq müqavimət bunun üçündür. İkinci və üçüncü müqavimətlər arasındakı gərginlik giriş gərginliyinin (5V) 2/3 mislinə və ya 3.33V-a bərabər olacaq. Gərginlik bölücüləri haqqında ətraflı burdan oxuya bilərsiniz.

İndi isə gəlin robot maşınımızın yığım işini davam etdirək. Batareya qabımızı üst gövdəyə bərkidib, qida kabellərini ortadakı keçiddən keçirib motor sürücüsünə qoşuruq. Əlavə 2 kabel (narıncı və qara) Arduinoyu qidalandırmaq üçün, ağ rəngli 4 bitişik kabel isə idarəetmə kanallarına qoşulub. Fikir verin batareya qabında 1 batareyanı çıxarmışıq ki, hansısa qısa-qapanma halı baş verməsin (istəsəniz qida kabelinə elektrik açarı əlavə edə bilərsiniz).

20151122_161246

Qida və idarəetmə kabellərini orta keçiddən keçirib, gövdələri bir-birinə bağlayırıq.

20151122_162036

İndi isə Arduinoyu üst gövdəyə ikitərəfli yapışqan lentlə bərkidib kabelləri uyğun kanallara qoşuruq. (mini-bredboard hələ yapışdırılmayıb)

20151122_163246
20151122_163330

İndi isə BT modulunu və müqavimətləri mini-breadboard üzərində bir-birinə bağlayırıq.

20151122_163528
20151122_163946

Mini-bredboardun altındakı yapışqanın qoruyucu üzlüyünü açıb, onu da gövdənin ortasına yapışdırırıq. Kənarlada olsa robot maşınımız hansısa maneyə çırpılan kimi BT modulumuz zədələnə bilər. Daha sonra BT modulunun qida və siqnal kabellərini qoşub, maşınımıza bir dəfə daha göz gəzdiririk.

20151122_164648
20151122_164715

Reduktorlara təkərləri taxdıqdan sonra robotumuz proqramlaq üçün hazırdı.

IMAG3435

Bu məqaləmiz artıq çox uzandığından proqramlama hissəsini növbəti məqaləyə saxlamaq qərarına gəldim. Güman edirəm bəyəndiniz. Növbəti məqalədə görüşənədək.

 

PaylaşShare on FacebookTweet about this on TwitterShare on LinkedInShare on Google+Email this to someonePin on PinterestShare on RedditShare on TumblrDigg this

Comments

comments

You may also like...

Rəy bildir