Raspberry Pi GPIO-ს ტური
The Raspberry Pi შეიძლება ბევრი რამ იყოს. ეს მისი მიმართვის ნაწილია. თქვენ შეგიძლიათ გამოიყენოთ Pi, როგორც ჩვეულებრივი კომპიუტერი, რომელიც აკავშირებს პერიფერიულ მოწყობილობებს დაფის USB და HDMI პორტების მეშვეობით. თუ გსურთ ჩაყვინთოთ Pi-ს ტექნიკურ ასპექტებში, მიაქციეთ თქვენი ყურადღება მიკროსქემის დაფის გასწვრივ მდებარე ქინძისთავების კომპლექტს. ეს ქინძისთავები შეიცავს Raspberry Pi-ს IoT-ში, რობოტიკასა და სხვა პროექტებში გამოყენების გასაღები. ქინძისთავები არ არის ისეთი შემაშინებელი, როგორც თქვენ ფიქრობთ, როგორც კი ისინი დაიშლება და ახსნილია.

Raspberry Pi-ის ქინძისთავების შესავალი
ტერმინი GPIO (General Purpose Input Output) არ არის ექსკლუზიური Raspberry Pi. შეყვანის და გამომავალი ქინძისთავები შეგიძლიათ ნახოთ უმეტეს მიკროკონტროლერებზე, როგორიცაა Arduino, Beaglebone და სხვა.
GPIO Raspberry Pi-ით არის ქინძისთავების გრძელი ბლოკი დაფის ზედა მარცხენა კუთხეში. ძველ მოდელებს ჰქონდათ 26 ქინძისთავები, ხოლო ახლანდელ მოდელებს აქვთ 40 ქინძისთავი.
თქვენ შეგიძლიათ დააკავშიროთ კომპონენტები და სხვა ტექნიკის მოწყობილობები ამ ქინძისთავებთან და გამოიყენოთ კოდი, რომ გააკონტროლოთ კომპონენტების მოქმედება. ეს Raspberry Pi-ის მნიშვნელოვანი ნაწილია და ელექტრონიკის შესწავლის შესანიშნავი გზა.
რამდენიმე პროგრამული პროექტის შემდეგ, თქვენ, სავარაუდოდ, აღმოჩნდებით, რომ ექსპერიმენტებს ატარებთ ამ ქინძისთავებზე და გსურთ თქვენი კოდის შერევა აპარატურასთან, რათა ყველაფერი რეალურ ცხოვრებაში მოხდეს.
ეს პროცესი შეიძლება იყოს დამაშინებელი, თუ თქვენ ახალი ხართ Pi-ში. იმის გათვალისწინებით, რომ ერთმა ცრუ ნაბიჯმა შეიძლება დააზიანოს თქვენი Raspberry Pi, გასაგებია, რომ დამწყებთათვის ეს ნერვული ზონაა.
ეს სტატია განმარტავს, თუ რას აკეთებს თითოეული ტიპის GPIO პინი და მისი შეზღუდვები.
GPIO
პირველ რიგში, მოდით შევხედოთ GPIO-ს მთლიანობაში. ქინძისთავები შეიძლება ერთნაირად გამოიყურებოდეს, მაგრამ ყველას აქვს განსხვავებული ფუნქცია. ქვემოთ მოყვანილი სურათი აჩვენებს ამ ფუნქციებს სხვადასხვა ფერებში.

თითოეული პინი დანომრილია 1-დან 40-მდე, ქვედა მარცხენა კუთხიდან დაწყებული. ეს არის ფიზიკური პინის ნომრები. თუმცა, ასევე არსებობს ნუმერაციისა და მარკირების კონვენციები, როგორიცაა BCM, რომლებიც გამოიყენება კოდის დაწერისას.
ძალა და მიწა
წითლად ხაზგასმულია დენის ქინძისთავები 3 ან 5 3.3 ვ ან 5 ვოლტისთვის. ეს ქინძისთავები საშუალებას გაძლევთ გაუგზავნოთ ენერგია მოწყობილობას ყოველგვარი კოდის საჭიროების გარეშე. არც ამათ გამორთვის საშუალება არ არსებობს.

არის ორი დენის რელსი: 3.3 ვოლტი და 5 ვოლტი. 3.3 ვ რკინიგზა შემოიფარგლება 50 mA დენით. ამის საპირისპიროდ, 5 ვოლტიანი ლიანდაგი უზრუნველყოფს ყველა მიმდინარე სიმძლავრეს, რომელიც დარჩენილია ელექტრომომარაგებიდან მას შემდეგ, რაც Pi-მა მიიღო ის, რაც მას სჭირდება.
მონიშნულია ყავისფერში, დაფქული ქინძისთავები (GND). ეს გრუნტის ქინძისთავები ნებისმიერი ელექტრონიკის პროექტის მნიშვნელოვანი ნაწილია.
5V GPIO პინები არის ფიზიკური ნომრები 2 და 4. 3.3V GPIO პინები არის ფიზიკური ნომრები 1 და 17. გრუნტის GPIO ქინძისთავები არის ფიზიკური ნომრები 6, 9, 14, 20, 25, 30, 34 და 39.
შეყვანის/გამოსვლის პინები
მწვანე ქინძისთავები არის ზოგადი შეყვანის/გამომავალი ქინძისთავები. მათი ადვილად გამოყენება შესაძლებელია როგორც შეყვანის ან გამომავალი სხვა ფუნქციებთან შეჯახების გარეშე, როგორიცაა I2C, SPI ან UART.
ამ ქინძისთავებს შეუძლიათ ელექტროენერგიის გაგზავნა LED-ზე, ზუმერზე ან სხვა კომპონენტებზე, ან მათი გამოყენება შესაძლებელია სენსორების, კონცენტრატორების ან სხვა შეყვანის მოწყობილობების წასაკითხად.

ამ ქინძისთავების გამომავალი სიმძლავრე არის 3.3 ვ. თითოეული პინი არ უნდა აღემატებოდეს დენის 16 mA-ს, ჩაძირვის ან წყაროს. GPIO ქინძისთავების მთელი ნაკრები ერთ დროს არ უნდა აღემატებოდეს 50 mA-ზე მეტს. ეს შეიძლება იყოს შემზღუდველი, ამიტომ შესაძლოა მოგიწიოთ კრეატიულობა გარკვეულ პროექტებში.
ზოგადი GPIO პინები არის ფიზიკური ნომრები 7, 11, 12, 13, 15, 16, 18, 22, 29, 31, 32, 33, 35, 36, 37, 38 და 40.
I2C ქინძისთავები
I2C ქინძისთავები ყვითელია. I2C არის საკომუნიკაციო პროტოკოლი, რომელიც საშუალებას აძლევს მოწყობილობებს დაუკავშირდნენ Raspberry Pi-ს. ეს ქინძისთავები ასევე შეიძლება გამოყენებულ იქნას როგორც ზოგადი GPIO ქინძისთავები.

გამოყენების კარგი მაგალითი I2C არის პოპულარული MCP23017 პორტის გაფართოების ჩიპი, რომელსაც შეუძლია მოგცეთ მეტი შემავალი/გამომავალი პინი ამ I2C პროტოკოლით.
I2C GPIO პინები არის ფიზიკური პინი 3 და 5.
UART (სერიული) ქინძისთავები
UART ქინძისთავები ნაცრისფერია. ეს ქინძისთავები არის კიდევ ერთი საკომუნიკაციო პროტოკოლი, რომელიც გთავაზობთ სერიულ კავშირებს და შეიძლება გამოყენებულ იქნას როგორც ზოგადი GPIO შეყვანა/გამომავალი.

UART-ის ერთ-ერთი გამოყენება არის სერიული კავშირის ჩართვა Pi-დან ლეპტოპთან USB-ზე. ამის მიღწევა შესაძლებელია დამატებითი დაფების ან მარტივი კაბელების გამოყენებით. ის ხსნის ეკრანის ან ინტერნეტ კავშირის საჭიროებას თქვენს Pi-ზე წვდომისთვის.
UART GPIO პინები არის ფიზიკური პინი ნომრები 8 და 10.
SPI ქინძისთავები
SPI ქინძისთავები ვარდისფერშია. SPI არის ინტერფეისის ავტობუსი, რომელიც აგზავნის მონაცემებს Pi-სა და სხვა აპარატურასა და პერიფერიულ მოწყობილობებს შორის. იგი ჩვეულებრივ გამოიყენება ჯაჭვის მოწყობილობებისთვის, როგორიცაა ან LED მატრიცა ან ჩვენება.

სხვათა მსგავსად, ეს ქინძისთავები ასევე შეიძლება გამოყენებულ იქნას როგორც ზოგადი GPIO შეყვანა/გამომავალი.
SPI GPIO ქინძისთავები არის ფიზიკური პინი ნომრები 19, 21, 23, 24 და 26.
DNC ქინძისთავები
ბოლო არის ორი ქინძისთავები ლურჯი ფერის, რომლებიც ამჟამად მონიშნულია როგორც DNC, რომელიც ნიშნავს Do Not Connect. ეს შეიძლება შეიცვალოს მომავალში, თუ Raspberry Pi Foundation შეცვლის დაფებს ან პროგრამულ უზრუნველყოფას.

DNC GPIO ქინძისთავები არის ფიზიკური პინი ნომრები 27 და 28.
GPIO ნუმერაციის კონვენციები
GPIO-ით კოდირებისას, თქვენ გაქვთ არჩევანი იმპორტიროთ GPIO ბიბლიოთეკა ორიდან ერთი გზით: BCM ან BOARD.
პირველი ვარიანტი არის GPIO BCM. ეს არის Broadcom-ის ნუმერაციის კონვენცია. ის ჩვეულებრივ გამოიყენება პროექტებსა და ტექნიკის დანამატებში.
მეორე ვარიანტი არის GPIO BOARD. ეს მეთოდი იყენებს ფიზიკურ პინის ნომრებს, რაც მოსახერხებელია ქინძისთავების დათვლისას. თქვენ ნახავთ, რომ ის ნაკლებად გამოიყენება პროექტის მაგალითებში.

GPIO რეჟიმი დაყენებულია GPIO ბიბლიოთეკის იმპორტისას:
იმპორტი RPi. GPIO როგორც GPIO.
იმპორტი როგორც BCM:
GPIO.setmode (GPIO.BCM)
იმპორტი როგორც დაფა:
GPIO.setmode (GPIO.BOARD)
ორივე ეს მეთოდი ერთსა და იმავე საქმეს ასრულებს. ეს არის ნუმერაციის უპირატესობის საკითხი.
შეგიძლიათ გამოიყენოთ GPIO ეტიკეტების დაფები, როგორიცაა RasPiO Portsplus (სურათზე) შესამოწმებლად რომელ ქინძისთავებთან აკავშირებთ სადენებს. ერთი მხარე აჩვენებს BCM ნუმერაციის კონვენციას. მეორე აჩვენებს BOARD. ასე რომ, თქვენ დაფარული ხართ ნებისმიერი პროექტისთვის, რომელსაც იპოვით.