Ако вие сте този, който е изправен пред същия проблем, тогава тази статия ще ви помогне да развиете пълно разбиране на BCM в Raspberry Pi.
Какво е BCM и защо се използва в Raspberry Pi
BCM е съкращение за „ Broadcom SOC канал ; В Raspberry Pi има два начина за обозначаване на щифтовете на дъската на Raspberry Pi: единият е BCM а другото е ДЪСКА . Изводите от по-ниско ниво на платката, които се дефинират от чипа на Broadcom, са BCM изводите и номерът на BCM е различен от номерата на изводите на платката/чипа, тъй като в първоначалните платки на Raspberry Pi имаше по-малък брой изводи. С пускането на нови платки се добавят повече щифтове и BCM номерът остава същият, поради което цялостното подравняване на номерата на щифтовете се нарушава.
Конфигурация на щифтове на Raspberry Pi Board
Изображението по-долу показва конфигурацията на щифтовете на най-новите платки Raspberry Pi, която има 40 щифта. Имената на пинове, споменати в цветни правоъгълници са BCM номер на щифтовете и номерата, споменати вътре в кръгове представляват номер на БОРДА от карфици.
За улеснение на потребителите, Raspberry Pi поддържа както използването на BCM и ДЪСКА числа. Потребителите просто трябва да се позоват на тях в кода, преди да кодират щифтовете.
За да се обърнете към числата, присъстващи вътре в кръгове (1,2,3,4,...) the GPIO.ПЛАТА конфигурация ще се използва в скрипта на Python:
GPIO.ПЛАТАКато има предвид, че се отнася до щифтовете вътре цветни правоъгълници (GPIO10, GPIO11, GPIO12,…) на GPIO.BCM се използва:
GPIO.BCM
Как да използвате BCM в Python скриптове в Raspberry Pi?
Нека разберем това с пример, ако трябва да използвам пин 11 на платката (GPIO17, BCM), за да превключвам светодиод, тогава ще го използвам в кода на Python, както е посочено по-долу:
импортирайте RPi.GPIO като GPIOимпортиране време
GPIO.setmode ( GPIO.BCM )
GPIO.настройка ( 17 , GPIO.OUT )
за i в диапазон ( петнадесет ) :
GPIO.изход ( 17 , GPIO.HIGH )
време.сън ( 2 )
GPIO.изход ( 17 , GPIO.НИСКО )
време.сън ( 2 )
В кода за настройка на режима на пин дефинирах конфигурацията на щифта на BCM в началото, след което използвах пин GPIO17 вместо 11 (номер на BOARD).
Схема за код на Python
Хардуерната верига за горния код е показана на изображението по-долу, където съм маркирал GPIO 17 пина (BCM).
Светодиодът ще мига 15 пъти с 2 секунди закъснение между всяко включено и изключено състояние.
Заключение
BCM е канал на Broadcom на Raspberry Pi, който се използва за конфигуриране на пинове на Raspberry Pi чрез използване на номерата на каналите на Broadcom. The BCM броят на щифтовете е различен от номера на ДЪСКА. Тези числа се използват при програмиране на GPIO щифтовете, потребителят трябва да ги дефинира GPIO.setmode в началото. След което щифтовете могат да се използват съответно в кода.