![Жалаңаш металл таңқурай Pi 3: жыпылықтайтын жарық диоды: 8 қадам Жалаңаш металл таңқурай Pi 3: жыпылықтайтын жарық диоды: 8 қадам](https://i.howwhatproduce.com/images/001/image-676-84-j.webp)
Мазмұны:
2025 Автор: John Day | [email protected]. Соңғы өзгертілген: 2025-01-23 14:51
![Жалаңаш металл таңқурай Pi 3: жыпылықтайтын жарық диоды Жалаңаш металл таңқурай Pi 3: жыпылықтайтын жарық диоды](https://i.howwhatproduce.com/images/001/image-676-85-j.webp)
MoldypizzaFollow Автордың толығырақ:
![Жарықсыз диодты жарық диодтары бар Raspberry Pi басу түймесі Жарықсыз диодты жарық диодтары бар Raspberry Pi басу түймесі](https://i.howwhatproduce.com/images/001/image-676-86-j.webp)
![Жарық диодты жарық диодтары бар Raspberry Pi басу түймесі Жарық диодты жарық диодтары бар Raspberry Pi басу түймесі](https://i.howwhatproduce.com/images/001/image-676-87-j.webp)
![Жәшіктер Жәшіктер](https://i.howwhatproduce.com/images/001/image-676-88-j.webp)
![Жәшіктер Жәшіктер](https://i.howwhatproduce.com/images/001/image-676-89-j.webp)
![Ардагерлер күніне арналған бедерлі оюды қалай жасауға болады Ардагерлер күніне арналған бедерлі оюды қалай жасауға болады](https://i.howwhatproduce.com/images/001/image-676-90-j.webp)
![Ардагерлер күніне арналған бедерлі оюды қалай жасауға болады Ардагерлер күніне арналған бедерлі оюды қалай жасауға болады](https://i.howwhatproduce.com/images/001/image-676-91-j.webp)
Туралы:.oO0Oo. Moldypizza туралы толығырақ »
BARE METAL pi 3 Blinking LED оқулығына қош келдіңіз!
Бұл оқулықта біз Raspberry PI 3, нан тақтасы, резистор, светодиод және бос SD картаның көмегімен жарық диодты жыпылықтау үшін басынан аяғына дейін қадамдарды өтеміз.
Сонымен BARE METAL дегеніміз не? BARE METAL - бұл ешқандай бағдарламалау. Жалаң металл - бұл біз компьютердің не істейтінін толық бақылауда екенімізді білдіреді. Демек, бұл негізінен Arm нұсқаулықтар жиынтығын қолдана отырып, код толығымен құрастырылатынын білдіреді. Соңында біз Raspberry Pi GPIO түйреуіштерінің бірінің физикалық мекенжайына кіріп, оны шығуға конфигурациялау, содан кейін оны қосу және өшіру арқылы жарық диодты жыпылықтайтын бағдарлама құрамыз. Бұл жобаны қолдану - бұл кіріктірілген бағдарламалауды бастаудың жақсы әдісі және компьютердің қалай жұмыс істейтіні туралы жақсы түсінік береді деп үміттенемін.
Саған не қажет?
Аппараттық құрал
- Таңқурай PI 3
- SD картасы жүктелетін кескінмен алдын ала жүктелген
- Нан тақтасы
- Еркек әйел секіргіш сымдар
- Еркек еркек сымдары
- ЖАРЫҚ ДИОДТЫ ИНДИКАТОР
- 220 Ом резистор (дәл 220 Ом болуы міндетті емес, кез келген резистор жұмыс істейді)
- шағын SD картасы
- mini sd картасы алдын ала жүктелген raspberry pi операциялық жүйесімен (әдетте pi -ге қосылады)
Бағдарламалық қамтамасыз ету
- GCC компиляторы
- GNU ендірілген құралдар тізбегі
- мәтіндік редактор
- sd картасын форматтаушы
Жарайды, бастауға рұқсат етіңіз!
1 -қадам: ЗАТТАРДЫ ОРНАТУ/ҚОСУ
![ЗАТТАРДЫ ОРНАТУ/ҚАМТАУ ЗАТТАРДЫ ОРНАТУ/ҚАМТАУ](https://i.howwhatproduce.com/images/001/image-676-92-j.webp)
Жақсы … бірінші қадам - бұл аппараттық құралдарды алу. Бөлшектерді бөлек сатып алуға болады немесе бөлшектері жететін жиынтық бар. СІЛТЕМЕ
Бұл жиынтықта таңқурай pi 3 және одан да көп қондыруға қажетті барлық заттар бар! бұл жинаққа кірмейтін жалғыз нәрсе - бұл қосымша шағын sd картасы. Күте тұрыңыз! Тағы біреуін сатып алмаңыз. Егер сіз картаға алдын ала жүктелген Linux қондырғысын пайдалануды жоспарламасаңыз, енгізілген шағын SD картасының мазмұнын кейінірек көшіріп, картаны қайта пішімдеңіз (бұл туралы кейінірек). МАҢЫЗДЫ ЕСКЕРТПЕ: файлдарды енгізілген картада сақтағаныңызға көз жеткізіңіз, олар сізге кейінірек қажет болады!
Содан кейін бағдарламалық жасақтаманы орнату уақыты келді. Бұл оқулықта бағдарламалық жасақтаманы орнату туралы толық нұсқаулар болмайды. Оларды орнату туралы Интернетте көптеген ресурстар мен оқулықтар бар:
WINDOWS ПАЙДАЛАНУШЫЛАРЫ:
Gcc жүктеп алыңыз және орнатыңыз
Содан кейін GNU ARM ендірілген құралдар тізбегін жүктеп, орнатыңыз
LINUX/MAC
- Linux дистрибуциясы gcc алдын ала орнатылған
- GNU ARM ендірілген құралдар тізбегін жүктеңіз және орнатыңыз.
Жарайды, егер бәрі жақсы болса, онда сіз терминалды (linux/mac) немесе cmd жолын (терезелер) ашып, теріп көріңіз.
arm-none-eabi-gcc
Шығару бірінші суретке ұқсас болуы керек. Бұл оның дұрыс орнатылғанын тексеру үшін.
Жарайды, қазір алдын ала талап етілмегендіктен, қызықты нәрселерді бастау керек.
2 -қадам: ЦИРКУИТ
![ЦИРКУТ ЦИРКУТ](https://i.howwhatproduce.com/images/001/image-676-93-j.webp)
![ЦИРКУТ ЦИРКУТ](https://i.howwhatproduce.com/images/001/image-676-94-j.webp)
![ЦИРКУТ ЦИРКУТ](https://i.howwhatproduce.com/images/001/image-676-95-j.webp)
Айналым уақыты! Бұл схема қарапайым. Біз пи -ге GPIO 21 -ге (түйреуіш 40) сымды қосамыз (2 және 3 -суретті қараңыз). Электр сымының зақымдалуын болдырмау үшін резистор да тізбектей қосылады. Резистор нан тақтасындағы теріс бағанға қосылады, ол GND -ге қосылады (пин 39). Светодиодты қосқанда қысқа жағын теріс жағына жалғауды ұмытпаңыз. Соңғы суретті қараңыз
3 -қадам: BOOTABLE Mini SD
![BOOTABLE Mini SD BOOTABLE Mini SD](https://i.howwhatproduce.com/images/001/image-676-96-j.webp)
![BOOTABLE Mini SD BOOTABLE Mini SD](https://i.howwhatproduce.com/images/001/image-676-97-j.webp)
![BOOTABLE Mini SD BOOTABLE Mini SD](https://i.howwhatproduce.com/images/001/image-676-98-j.webp)
Пи 3 -тің бос SD -картаны тану үшін үш қадам бар. Біз bootcode.bin, start.elf және fixup.dat файлдарын тауып көшіруіміз керек. Егер сіз canakit сатып алсаңыз немесе linux дистрибуциясымен pi 3 үшін жүктелетін sd картасын жасасаңыз, сіз бұл файлдарды қоса берілген sd картасынан ала аласыз. Қалай болғанда да, бұл файлдар sd картасын жүктелетін құрылғы ретінде тануға рұқсат беру үшін қажет. Содан кейін, mini sd -ді fat32 -ге пішімдеңіз (көптеген шағын SD -карталар fat32 форматында келеді. Мен sandisk -тен арзан шағын SD -картаны қолдандым), bootcode.bin, start.elf, fixup.dat файлдарын sd картасына жылжытыңыз. Ал сен жасадың! Жарайды, тағы бір рет және суреттер ретімен қадамдар:
- Bootcode.bin, start.elf, fixup.dat табыңыз.
- SD картасының fat32 пішімделгеніне көз жеткізіңіз.
- Bootcode.bin, start.elf және fixup.dat форматталған SD картасына жылжытыңыз.
Міне, мен мұны қалай түсіндім, сілтеме.
4 -қадам: Mini SD картасын тексеріңіз
![Mini SD картасын тексеріңіз Mini SD картасын тексеріңіз](https://i.howwhatproduce.com/images/001/image-676-99-j.webp)
![Mini SD картасын тексеріңіз Mini SD картасын тексеріңіз](https://i.howwhatproduce.com/images/001/image-676-100-j.webp)
Жақсы, бізде жүктелетін шағын sd картасы бар, және сізде бұл жерде pi 3 бар деп үміттенеміз. Енді біз Pi 3 mini sd картасын жүктелетін деп танитынына көз жеткізу үшін оны тексеруіміз керек.
Пи -де, шағын USB портының жанында екі кішкентай LED бар. Біреуі қызыл. Бұл қуат көрсеткіші. Пи қуат алатын кезде бұл жарық жанып тұруы керек. Егер сіз дәл қазір шағын sd картасыз пиыңызды қоссаңыз, ол қызыл түспен жанады. Жарайды, енді пиді ажыратып, алдыңғы қадамда жасалған жүктелетін шағын sd картасын салыңыз және пиді қосыңыз. Басқа жарық көріп тұрсыз ба? Қызыл түстің жанында жасыл шам болуы керек, бұл оның SD картасын оқып жатқанын көрсетеді. Бұл жарықдиодты ACT led деп атайды. Сәйкес SD картасы салынған кезде ол жанып тұрады. Ол шағын sd картасына кірген кезде жыпылықтайды.
Жақсы, жүктелетін шағын sd картасын салып, пиді қосқаннан кейін екі нәрсе болуы керек еді:
- Қызыл светодиод қуат алуды көрсететін жарықтандырылуы керек
- Жасыл светодиод жарықтандырылуы керек, бұл оның шағын SD картасына қосылғанын көрсетеді
Егер бірдеңе дұрыс болмаса, алдыңғы әрекеттерді қайталап көріңіз немесе қосымша ақпарат алу үшін төмендегі сілтемені басыңыз.
Мұнда сілтеме - жақсы сілтеме.
5 -қадам: CODE1
Бұл жоба ARM ассемблер тілінде жазылған. Бұл оқулықта ARM құрастыру туралы негізгі түсінік бар, бірақ сіз білуіңіз керек бірнеше нәрсе:
.equ: символға мән береді, яғни abc.equ 5 abc енді беске тең
- ldr: жадтан жүктеледі
- str: жадқа жазады
- cmp: азайтуды орындау арқылы екі мәнді салыстырады. Жалаушаларды орнатады.
- б: жапсырмаға тармақ
- қосу: арифметиканы орындайды
Егер сізде қол жинау тәжірибесі болмаса, бұл бейнені қараңыз. Бұл сізге Ассамблея тілін жақсы түсінуге мүмкіндік береді.
Жақсы, дәл қазір бізде таңқурай pi 3 -ке қосылған схема бар және бізде pi танитын sd картасы бар, сондықтан біздің келесі міндетіміз - pi -ді орындалатын бағдарламамен жүктеу арқылы схемамен қалай әрекеттесу керектігін анықтау. Жалпы алғанда, бізге pi -ге GPIO 21 -ден (қызыл сымға қосылған түйреуіш) кернеуді шығаруды айту керек. Содан кейін жарық диодты жыпылықтау үшін оны ауыстыру әдісі қажет. Мұны істеу үшін бізге қосымша ақпарат қажет. Бұл кезде біз GPIO 21 -ге шығуды қалай айту керектігін білмейміз, сондықтан біз деректер кестесін оқуымыз керек. Микроконтроллерлердің көпшілігінде барлығы қалай жұмыс істейтінін көрсететін деректер парақтары бар. Өкінішке орай, pi 3 ресми құжаттары жоқ! Алайда бейресми деректер парағы бар. Мұнда оған екі сілтеме бар:
- github.com/raspberrypi/documentation/files…
- web.stanford.edu/class/cs140e/docs/BCM2837…
Жарайды, келесі кезеңге өтпес бұрын бірнеше минут уақыт кетіп, мәліметтер парағын қарап шығыңыз және қандай ақпаратты таба аласыз.
6 -қадам: CODE2: Turn_Led_ON
![CODE2: Turn_Led_ON CODE2: Turn_Led_ON](https://i.howwhatproduce.com/images/001/image-676-101-j.webp)
![CODE2: Turn_Led_ON CODE2: Turn_Led_ON](https://i.howwhatproduce.com/images/001/image-676-102-j.webp)
![CODE2: Turn_Led_ON CODE2: Turn_Led_ON](https://i.howwhatproduce.com/images/001/image-676-103-j.webp)
Таңқурай pi 3 53 шығыс/кіріс түйреуіштерін (перифериялық құрылғыларды) басқаруға тіркейді. Түйреуіштер топтастырылады және әр топ реестрге тағайындалады. GPIO үшін біз SELECT регистріне, SET регистріне және CLEAR регистрлеріне қол жеткізе білуіміз керек. Бұл регистрлерге қол жеткізу үшін бізге осы регистрлердің физикалық адрестері қажет. Деректер парағын оқып жатқанда, сіз тек адрестің ығысуын (lo байт) атап, оны негізгі адреске қосқыңыз келеді. Сіз мұны істеуіңіз керек, себебі деректер кестесінде операциялық жүйелер тағайындаған мәндер болып табылатын Linux виртуалды мекен -жайы көрсетілген. Біз операциялық жүйені пайдаланбаймыз, сондықтан бұл регистрлерге физикалық адрес арқылы тікелей кіруіміз керек. Ол үшін сізге келесі ақпарат қажет:
- Қосымша құрылғылардың негізгі мекенжайы: 0x3f200000. Pdf (6 -бет) базалық адрес 0x3f000000 екенін айтады, алайда бұл адрес жұмыс істемейді. 0x3f200000 қолданыңыз
- FSEL2 (SELECT) офсеті регистрдің толық адресі емес. Pdf FSEL2 -ді 0x7E20008 тізімінде көрсетеді, бірақ бұл адрес linux виртуалды мекен -жайына сілтеме жасайды. Есептеу бірдей болады, сондықтан біз атап өткіміз келеді. 0x08
- GPSET0 (SET) ығысуы: 0x1c
- GPCLR0 ығысуы (CLEAR): 0x28
Деректер парағында 4 SELECT регистрі, 2 SET регистрі және 2 CLEAR регистрі бар екенін байқаған шығарсыз, мен неге өзім таңдағандарды таңдадым? Себебі біз GPIO 21 және FSEL2 GPIO 20-29, SET0 және CLR0 GPIO 0-31 басқару элементтерін қолданғымыз келеді. FSEL регистрлері әрбір GPIO түйреуішіне үш битті тағайындайды. Біз FSEL2 қолданатындықтан, бұл 0-2 бит GPIO 20 басқарады, ал 3-5 бит GPIO 21 басқарады және т.б. Set және CLR регистрлері әр істікке бір бит тағайындайды. Мысалы, SET0 мен CLR0 -дегі 0 разряд GPIO 1 -ді басқарады. GPIO 21 -ді басқару үшін SET0 мен CLR0 -де 21 -битті орнатар едіңіз.
Жарайды, біз бұл регистрлерге қалай қол жеткізуге болатыны туралы айттық, бірақ мұның бәрі нені білдіреді?
- GPIO 21 шығысына орнату үшін FSEL2 регистрі қолданылады. Шығару үшін түйреуішті орнату үшін сізге үш биттің 1-реті бойынша реттелетін битті орнату қажет. Сонымен, егер 3-5 бит GPIO 21-ді басқарса, бұл біз бірінші битті 3-тен 1-ге дейін орнатуымыз керек дегенді білдіреді. біз GPIO 21 -ді шығыс ретінде қолданғымыз келеді. Егер біз GPIO 21 үшін 3 битке қарайтын болсақ, олар оны b001 шығаруға орнатқаннан кейін осылай болуы керек.
- GPSET0 пи -ге түйреуішті қосуды (кернеуді шығару) айтады. Мұны істеу үшін біз қалаған GPIO түйреуішіне сәйкес келетін битке ауысамыз. Біздің жағдайда 21 -бит.
- GPCLR0 пи -ге түйреуішті өшіруді айтады (кернеу жоқ). Ілмекті өшіру үшін битті сәйкес GPIO түйреуішіне орнатыңыз. Біздің жағдайда 21 бит
Жыпылықтайтын шамға жетпес бұрын, алдымен светодиодты қосатын қарапайым бағдарлама жасайық.
Бастау үшін бастапқы кодтың жоғарғы жағына екі директиваны қосу керек.
- .init.init пи кодты қайда қою керектігін айтады
- .global _start
Әрі қарай, біз қолданатын барлық адрестерді орналастыруымыз керек. Мәндерге оқылатын белгілерді тағайындау үшін.equ пайдаланыңыз.
- .equ GPFSEL2, 0x08
- .equ GPSET0, 0x1c
- .equ GPCLR0, 0x28
- .equ BASE, 0x3f200000
Енді біз орнатуымыз керек биттерді орнату үшін маскалар жасаймыз.
- .equ SET_BIT3, 0x08 Бұл үш бит 0000_1000 орнатады
- .equ SET_BIT21, 0x200000
Содан кейін біз _start белгісін қосуымыз керек
_баста:
Регистрге базалық адресті жүктеңіз
ldr r0, = BASE
Енді бізге GPFSEL2 бит3 орнату қажет
- ldr r1, SET_BIT3
- str r1, [r0, #GPFSEL2] Бұл нұсқаулықта 0x08 разрядын GPFSEL2 мекенжайына қайтару керек делінген.
Соңында GPSET0 регистріндегі 21 -битті орнату арқылы GPIO 21 -ді қосу керек
- ldr r1, = SET_BIT21
- str r1, [r0, #GPSET0]
Соңғы өнім суреттегі кодқа ұқсас болуы керек.
Келесі қадам - кодты құрастыру және pi іске қосатын.img файлын құру.
- Қосылған makefile файлын және kernel.ld жүктеңіз, егер turn_led_on.s бастапқы кодын алғыңыз келсе.
- Барлық файлдарды бір қалтаға салыңыз.
- Егер сіз өзіңіздің бастапқы кодты қолдансаңыз, makefile файлын өңдеңіз және = turn_led_on.s кодын код =.s -ке ауыстырыңыз.
- Жасалған файлды сақтаңыз.
- Файлдары бар қалтаңызға өту үшін терминалды (linux) немесе cmd терезесін (терезелерді) пайдаланыңыз және enter және enter пернесін басыңыз.
- Жасау файлы kernel.img деп аталатын файлды құруы керек
- Шағын sd картасына kernel.img көшіріңіз. Сіздің карталардың мазмұны суреттегідей болуы керек (3 -сурет): bootcode.bin, start.elf, fixup.dat және kernel.img.
- Mini sd картасын шығарып, оны pi ұясына салыңыз
- Қуат көзіне pi қосыңыз
- Светодиод жануы керек !!!
МАҢЫЗДЫ ЕСКЕРТПЕ: Нұсқаулықта макияфайлдың кеңейтілмеуі болды, сондықтан мен оны.txt кеңейтімімен қайта жүктедім. Дұрыс жұмыс істеуі үшін кеңейтімді жүктеген кезде оны алып тастаңыз.
Ұсынылған:
Рождестволық жарық диодты жарық диоды: 3 қадам
![Рождестволық жарық диодты жарық диоды: 3 қадам Рождестволық жарық диодты жарық диоды: 3 қадам](https://i.howwhatproduce.com/images/001/image-701-j.webp)
Рождестволық жарық диодты жарық диоды: Мен Рождество мерекелеріне арналған Arduino -ның қызықты және мерекелік жобасын жасағым келді, сондықтан мен өз қолыммен жарық диодты шамдарды жасауды шештім. Бұл жоба дәнекерлеу машинасын қажет етеді, сондықтан оны есте сақтаңыз
Жалаңаш металл диодтары бар Raspberry Pi басу түймесі: 8 қадам
![Жалаңаш металл диодтары бар Raspberry Pi басу түймесі: 8 қадам Жалаңаш металл диодтары бар Raspberry Pi басу түймесі: 8 қадам](https://i.howwhatproduce.com/images/010/image-28675-j.webp)
Жалаңаш жарық диодтары бар Raspberry Pi басу түймесі: Бұл менің таңқурай pi 3 жалаң металды бағдарламалау бойынша екінші оқулық! Менің бірінші нұсқамды мына жерден қараңыз. Өткенде мен сізге бір светодиодты жыпылықтаған таңқурай pi 3 үшін операциялық жүйенің кескінін қалай жасау керектігін көрсеткен едім, бұл оқулықта мен сізге
Atollic TrueSTUDIO мен STM32CubeMX көмегімен STM32L100 жыпылықтайтын жарық диоды: 5 қадам
![Atollic TrueSTUDIO мен STM32CubeMX көмегімен STM32L100 жыпылықтайтын жарық диоды: 5 қадам Atollic TrueSTUDIO мен STM32CubeMX көмегімен STM32L100 жыпылықтайтын жарық диоды: 5 қадам](https://i.howwhatproduce.com/images/002/image-4948-26-j.webp)
Atollic TrueSTUDIO және STM32CubeMX көмегімен STM32L100 жыпылықтайтын жарық диоды: Бұл жобада мен сізге 32L100 ашу арқылы жарық диодты қалай жыпылықтау керектігін айтамын. Міне, мен сізге осы жыпылықтайтын оқулықтың жұмыс принципі туралы, сонымен қатар сізге қандай бағдарламалық қамтамасыз ету мен жабдық қажет екенін айтамын
Алғашқы жобаңызды таңқураймен бастаңыз: Жыпылықтайтын жарық диоды: 4 қадам
![Алғашқы жобаңызды таңқураймен бастаңыз: Жыпылықтайтын жарық диоды: 4 қадам Алғашқы жобаңызды таңқураймен бастаңыз: Жыпылықтайтын жарық диоды: 4 қадам](https://i.howwhatproduce.com/images/001/image-500-168-j.webp)
Алғашқы жобаңызды таңқурайдан бастаңыз: Жыпылықтайтын жарық диоды: Бұл жобада мен сізге Raspberry Pi -ді жарық диодты жыпылықтау үшін қалай бағдарламалау керектігін көрсетемін, егер сіз Raspberry pi сатып алғыңыз келсе және неден бастау керектігін білмесеңіз, бұл оқулық оған сәйкес келеді. Raspbian жұмыс істейтін Raspberry Pi -ге қосымша, сіз
555 таймері бар сөндіру/өшу/жыпылықтайтын жарық диоды: 7 қадам
![555 таймері бар сөндіру/өшу/жыпылықтайтын жарық диоды: 7 қадам 555 таймері бар сөндіру/өшу/жыпылықтайтын жарық диоды: 7 қадам](https://i.howwhatproduce.com/preview/how-and-what-to-produce/11122829-throbbingfadingflashing-led-with-555-timer-7-steps-j.webp)
555 таймері бар сөндіру/өшу/жыпылықтайтын жарық диоды: Бұл шағын схема - чиптерді бағдарламалауды немесе кодты жазуды қажет етпестен сөнетін светодиодты құрудың қарапайым әдісі. Бірнеше қарапайым компоненттер және сіз күні бойы өшуге дайынсыз. Ақырғы нәтиже - күту режимінде тұрған Mac сияқты үнемі жоғалады. Тырысу