Мазмұны:

RPi 3 жұлдызша / бөлшектер генераторы: 6 қадам (суреттермен)
RPi 3 жұлдызша / бөлшектер генераторы: 6 қадам (суреттермен)

Бейне: RPi 3 жұлдызша / бөлшектер генераторы: 6 қадам (суреттермен)

Бейне: RPi 3 жұлдызша / бөлшектер генераторы: 6 қадам (суреттермен)
Бейне: У йогуртового разбойника выбило днище...UWU ► 4 Прохождение God of War (HD Collection, PS3) 2024, Шілде
Anonim
Image
Image
Жарықдиодты тақтаны жинаңыз
Жарықдиодты тақтаны жинаңыз

Сіз Raspberry Pi -ден жалықтыңыз ба? Сіз фотондарды өз еркіңізбен шақырып, өшіре отырып, Әлемнің қарапайым күштеріне бұйрық беруге дайынсыз ба? Сіз өзіңіздің қонақ бөлмеңізде қызықты нәрсе ілгіңіз келе ме, әлде фейсбукте Денизге сіздің қазіргі уақытта жақсы екеніңізді көрсету үшін керемет жоба жариялағыңыз келе ме, үлкен рахмет? Сіз компьютерлік модельдеудің құрсауында қалып, босатылғанға немесе жойылғанға дейін сағаттарды өткізіп жатырсыз ба? Егер осының бәрі немесе бәрі сізді сипаттаса, онда [диктордың дауысы] Қош келдіңіз!

Бұл оқулықта Raspberry Pi 3 пен кейбір RGB матрицалық панельдерін пайдаланып бөлшектер генераторының дисплейін қалай жинау және орнату керектігін көрсетеді. Бұл сізге бір сағаттан екі сағатқа дейін созылуы керек, және дайын өнім шамамен 30 «x8» (Пиді қоспағанда) болады және қабырғаға бекітіледі. Бұл қонақ бөлмеге, кеңсеге, ойын бөлмесіне немесе кез келген басқа жерге әдемі безендіруді жасайды.

Жұмысқа кіріспес бұрын, сізге қажет және шамамен шығындар:

  • Rpi 3 + SD картасы + корпус + қуат көзі: 70 доллар (Canakit -тен, бірақ бөлшектерді бөлек сатып алсаңыз арзанға түсуі мүмкін.)
  • 4x 32x32 RGB светодиод матрицасы (1/16 сканерленген p6 жақсы): Alibaba немесе Aliexpress-те жеткізілетін $ 80- $ 100; Adafruit немесе Sparkfun үшін 160 доллар.
  • Adafruit RGB Matrix қалпақ: $ 25
  • 5В 4А қуат көзі: $ 15
  • 3D басып шығарылған клиптер: $ 1ish (бұл панельдерді қосуға және қабырғаға іліп қоюға арналған; егер сізде 3D принтерге қол жетпесе, оларды бір -бірімен ұстау үшін қылшық жолақты және аппараттық дүкеннен кейбір жақшаларды қолдануға болады. оны қабырғаға іліп қойыңыз. Мен бұларға арналған дизайн файлдарын немесе.stls табуға тырыстым, бірақ олар жерден өтіп кеткен сияқты. Клиптерді модельдеу өте оңай.)
  • 14x M4x10 болттар: 5 доллар
  • Төрт 4x8 IDC кабелі және RGB матрицаларына арналған үш қуат кабелі (бұл қалай аталатынын білмеймін!). Олар сіздің жарықдиодты панельдеріңізбен бірге болуы керек.
  • Барлығы: шамамен 200 доллар, беріңіз немесе алыңыз.

Жоба сізге дәнекерлеуді немесе арнайы бағдарламалау білімін талап етпейді; Сіз microSD картасына суретті қалай жазу керектігін білесіз деп ойлайсыз. Егер сіз мұны қалай жасау керектігін білмесеңіз, Raspberry Pi қорында мұнда жақсы оқулық бар.

Сонымен қатар, сізде Linux -те командалық жолдан қалай әрекет ету керектігі туралы негізгі білім бар деп болжанады, ал кодты қарап шығу Python негіздерін білетіндігіңізді білдіреді (бірақ - құрастыру үшін сізге кодты қарап шығудың қажеті жоқ). Бөлшектер генераторын іске қосыңыз.) Егер сіз кез келген қадамда тұрып қалсаңыз, /r /raspberry_pi сайтында сұрақ қоюға немесе жариялауға болады (бұл нұсқаулықтың негізгі аудиториясы деп ойлаймын)

1 -қадам: жарықдиодты тақтаны жинаңыз

Жарықдиодты тақтаны жинаңыз
Жарықдиодты тақтаны жинаңыз

Біріншіден, сіз жеке 32x32 жарық диодты панельдерді бір үлкен 128x32 панельге жинайтын боласыз. Сіз тақталарға қарап, қосылу тәртібін көрсететін кішкентай көрсеткілерді табуыңыз керек; шахтада олар HUB75/2x8 IDC қосқыштарының жанында. Тақта ұзындығына Rpi қосылатын жерден көрсеткілердің бар екеніне көз жеткізіңіз (жоғарыдағы суретте оңға қарай).

Сондай -ақ, қуат кабельдерін қосу қажет. Бұл кабельдердің көпшілігінде тақталарға бекітілген екі әйел қосқышы және қуат көзіне бекітетін бір шпательдік терминал бар. Мен жұмыс істейтін панельдерде 5В және GND индикаторлары коннекторлардың астында мүлде жасырылған, бірақ кабельдер тек бір бағытта қосылады. Сіз барлық 5В -ны және барлық GND -ді қосатындығыңызға сенімді болғыңыз келеді, өйткені егер сіз оларды артқа қоссаңыз, сіз оларды қуыратын боласыз.

Менің тақталарымдағы қуат сымдары өте қысқа болғандықтан, мен күрек ұшының ұштарын екіншісінің коннекторына енгізу арқылы ұзартуға тура келді (бұл өте қарапайым - сізге күрек ұштарын сәл ішке қарай майыстыруға тура келуі мүмкін, бірақ мен мүмкін болған жағдайда суретті енгіздім). Мен енді ұзартылған светодиодты тақтаның оң жағындағы екі күрек терминалының жиынтығымен және бір 2x8 IDC қосқышымен аяқтадым.

Сіз тақтаның екі жағында да ештеңеге бекітілмеген екі болт бар екенін байқайсыз; олар төңкерілгеннен кейін жоғарғы жағында болады және оны қабырғаға бекіту үшін қолданылады.

Сонымен - барлық панельдерді қысқыштармен, 2x8 IDC кабельдерімен және қуат кабельдерімен қосқаннан кейін сіз келесі қадамға өтуге дайынсыз!

2 -қадам: Raspberry Pi дайындаңыз

Содан кейін, сіз жарықдиодты тақтаны (әзірге) бір жаққа қойып, Pi 3 -ті іске қосуға дайындайсыз. Біз Raspbian Stretch Lite және hzeller RGB матрицалық кітапханасын қолданамыз (ескі және сақталмаған Adafruit матрицалық кітапханасынан гөрі).

Біріншіден, сіз Raspbian Lite кескінін SD картасына жазғыңыз келеді; Мұны істегеннен кейін, монитор мен пернетақтаны pi -ге жалғап, жүктеңіз. (Сіз мұны ssh немесе сериялық қосқыш арқылы да жасай аласыз, бірақ егер сіз осылай жүрсеңіз, сізге мұны қалай жасау керектігін айтудың қажеті жоқ шығар.) Бұл үшін сізге интернет байланысы қажет болады.; Егер сізде Wi -Fi болса, /etc/wpa_supplicant/wpa_supplicant.conf файлын өңдеп, wpa_cli -i wlan0 қайта конфигурациялау арқылы Pi -ді сымсыз желіге қосыңыз. (Егер сіз мұны ешқашан жасамаған болсаңыз, нұсқауларды мына жерден алуға болады).

Сіз Интернетке қосылғаннан кейін, біз dpkg репозиторийінің параметрлерін жаңартып, келесі пәрмендерді орындау арқылы қажетті кітапханаларды жүктейміз:

sudo apt-get жаңартуы

sudo apt-get install python-dev python-pil орнатыңыз

git клоны

Енді біз матрицалық кодты құрастырып, орнатуымыз керек. Осылайша сіз кітапхана бар қалтаға кіресіз:

cd rpi-rgb-led-matrix

және оны құрастырыңыз (бұл бір минут кетуі мүмкін):

make && build-python жасаңыз

және питон байланыстарын орнатыңыз:

sudo install-python жасайды

Егер кітапхана кодын құрастыру кезінде қате пайда болса, қайтып оралыңыз және python-dev пен python-pil дұрыс орнатылғанына көз жеткізіңіз! Питон байланыстары екі пакетті де орнатпай құрастырылмайды.

Сондай-ақ, /boot/config.txt өңдеу арқылы Pi дыбыс шығаруын өшіру қажет болады (борттық дыбыс матрицалық кодқа кедергі келтіреді). Dtparam = audio = on деген жолды іздеңіз және оны dtparam = audio = off күйіне өзгертіңіз.

Егер бәрі жақсы құрастырылса (сіз Wstrict-protoypes туралы бірнеше ескерту аласыз), сіздің pi матрицалық тақтаны іске қосуға дайын болуы керек. Жалғастырыңыз және оны өшіріңіз (қазір sudo өшіру), оны ажыратыңыз, біз келесі қадамда жарық тақтасын пи -ге қосамыз.

3 -қадам: Pi + Matrix Hat + LED тақтасын қосыңыз

Pi + Matrix Hat + LED тақтасын қосыңыз
Pi + Matrix Hat + LED тақтасын қосыңыз

Сонымен, енді сіздің Pi өшірулі және ажыратылған кезде, матрицалық шляпаны пи мен жарықдиодты тақтаны матрицалық қалпаққа қосайық. Егер сіздің Pi қазірдің өзінде жоқ болса, қазір оны осы жерге қоюға жақсы уақыт.

Матрицалық шляпаны Pi -ге GPIO түйреуіштерімен бекітіп, оны екі жағынан біркелкі күшпен жайлап итеріп орнатыңыз. Шляпаның аналық бастары пидегі GPIO түйреуіштерін дәл жабатын етіп түйреуіштердің дұрыс реттелгеніне көз жеткізіңіз. Егер сіз оны қате реттесеңіз, бұл апат емес; жайлап тартып алыңыз да, бүгілген түйреуіштерді түзетіңіз.

Шляпаны киіп алғаннан кейін, жиналған жарықдиодты тақтаның оң жағына Pi қойыңыз (қуат қосылымын қайта тексеріңіз және көрсеткілер тақтаның ұзындығына қарай Пи -ден бағытталғанын тексеріңіз) және IDC -ді қосыңыз. матрицалық қалпаққа арналған кабель.

Содан кейін, сіз матрицалық қалпақшаның терминал блогына қуат үшін күрек терминалдарын қосқыңыз келеді. Сізде әр жағынан екі күрек қосқышы бар, бірақ олардың екеуі де жақсы орналасуы керек. Алдымен бұрандаларды босатыңыз - бұл айтпаса да түсінікті - 5В терминалдарын + белгісі бар жағына қойғаныңызға көз жеткізіңіз (олар қызыл болуы керек, бірақ қайтадан қосқыштарды тексеріңіз және олар дұрыс шығарылған деп ойламаңыз) және -деп белгіленген жағында GND терминалдары (олар қара болуы керек). Олар кіргеннен кейін, терминал блогының жоғарғы жағындағы бұрандаларды қатайтыңыз, және сізде осы қадамға арналған тақырыптық суретке ұқсас нәрсе болуы керек.

Енді сіз байқаған боларсыз, бұл конфигурация екі жақтағы күрек терминалының жартысын ашық күйінде қалдырады, олар матрицалық қалпақтың үстінде миллиметр ғана (және бір -бірінен онша алыс емес) және қалақша терминалдары жақын арада болады бірнеше вольтты да, бірнеше амперді де алады Raw Power. Бұл (экранның арғы жағынан сұрағаныңызды естіп тұрмын) шынымен мұны істеудің дұрыс жолы ма? Жақсы идея ма?

Ал жауап (мен жауап беремін, иығымды қысып) - жоқ, олай емес. Мұны істеудің дұрыс жолы-электр сымдарының ұштарын ажыратып, оларды осы терминал блогының дұрыс қосқышына қайта қысу (немесе оларды жалаңаш сымдар ретінде қалдырып, блокқа коннекторсыз қосу). Олай болмаған жағдайда, күрек коннекторының ашық жағына жылуды төмендететін түтікті қоюға немесе оны электр таспасына орауға болады. Бірақ әлем құлдырады, ал адам жалқау және босқа, сондықтан мен мұны істеген жоқпын.

Бірақ - оралған немесе оралмаған - күрек терминалдары терминал блогына қосылған, біз келесі қадамға өтуге дайынбыз.

4 -қадам: RGB матрицасын тексеріңіз

Енді сіздің Pi жарық тақтасына қосылғандықтан, тақтаны төңкеріп, Pi -ді қайта қосыңыз. Pi қосылғаннан кейін матрицалық шляпаны қосуға болады; егер сіз шляпаны Pi алдында қуаттандырсаңыз, Pi жетіспейтін токпен жүктелуге тырысады және қатты шағымданады (және сізге ядро дүрбелеңі болуы мүмкін, бірақ жүктелмейді).

Егер сіз Pi -ді матрицалық қалпақпен жүктеу кезінде қиындыққа тап болсаңыз, Pi үшін жеткілікті қуатты қуат көзін пайдаланғаныңызға көз жеткізіңіз (2A+ жақсы болуы керек) және шляпалар үшін де, Пиді бірдей қуат жолағына немесе ұзартқыш сымға қосып, оларды бірге қосыңыз.

Pi жүктелгеннен кейін біз матрицаларды тексеруге дайынбыз. Питон байланыстырушы үлгілері бар жерге барыңыз (cd/rpi-rgb-led-matrix/bindings/python/үлгілер) және келесі пәрменмен айналмалы блок генераторын қолданып көріңіз:

4

Сіз оны sudo ретінде іске қосуыңыз керек, себебі матрицалық кітапхана инициализация кезінде аппараттық құралға төмен деңгейдегі қол жеткізуді қажет етеді. -M панельдердің pi -ге қосылу әдісін көрсетеді (бұл жағдайда адафрут шляпасы), ал тізбек -сіз білдіңіз -біз қанша панельді шынжырмен байлап қойғанымызды көрсетеді. Бір панельдегі жолдар мен бағандар әдепкі бойынша 32 -ге тең, сондықтан бізде жақсы.

Енді - сіз бағдарламаны орындағаннан кейін, екі (немесе шын мәнінде, үштің бірі) бірі болады:

  • Ештеңе болмайды
  • Сіз жарық тақтасының ортасында жақсы айналмалы блок аласыз.
  • Жарық тақтасы жұмыс істейді, менің ойымша, бірақ бұл біртүрлі көрінеді (жартысы жасыл, кейбір жолдар жанбайды және т.

Егер ештеңе болмаса немесе панель біртүрлі болып көрінсе, үлгі бағдарламасынан шығу үшін ctrl+c пернелер тіркесімін басыңыз, pi -ді өшіріңіз және барлық қосылымдарыңызды тексеріңіз (IDC кабелі, қуат, қуат көзінің екеуінің де қосылғанын тексеріңіз және т. Сондай -ақ, қалпақшаның дұрыс жалғанғанына көз жеткізіңіз; егер бұл оны түзетпесе, оны бір панельге түсіріңіз (тестілеу кезінде-1 тізбекті пайдаланғаныңызға көз жеткізіңіз) және панельдердің біреуі нашар болуы мүмкін екенін тексеріңіз. Егер бұл көмектеспесе, hzeller -дің ақауларды жою бойынша кеңестерін қараңыз. егер бұл әлі де жұмыс істемесе, /r /raspberry_pi (немесе Adafruit форумдары, егер сіз панельдерді Adafruit -тен алған болсаңыз немесе стек алмасу және т.б.) жіберіп көріңіз.

Егер ол жұмыс істейтін болса, бірақ сіз әлі де біртүрлі болып көрінетін болсаңыз (мүмкін, бұл бөлімнің тақырыбының суреті сияқты), сіз қосылымдарды тексергеннен кейін, сізде бәрі дұрыс жалғанған болуы мүмкін, панельдер дұрыс жұмыс істеп тұр, бірақ басқа нәрсе жүріп жатыр. қосулы. Бұл бізді келесі қадамға апарады - мультиплекстеу мен сканерлеу жылдамдығынан гөрі ауытқу. (Егер сіздің тақта жақсы жұмыс істеп тұрса және сіз бұл панельдердің ішкі жұмысына қызығушылық танытпасаңыз, келесі қадамды өткізіп жіберіңіз.)

5 -қадам: мультиплекстеу және сканерлеу жылдамдығы (немесе: қабірге апаратын жолдағы бір сәттік бұрылыс)

Алибабадан бірінші панельдер жиынтығына тапсырыс берген кезде жіберген қателіктерімнің бірі - менде ашық панельдер болды (неге олай емес деп ойладым - олар су өткізбейтін және жарқын!). Мен оларды матрицалық шляпама қосқанда, бәрі дұрыс емес сияқты көрінді.

Мұның себебін түсіну үшін, біз Адафруттың осы панельдердің қалай жұмыс істейтінін сипаттайтын Фил Бургесске бір минут уақыт бөлеміз. Сіз Бургесс панельдер барлық жарықдиодты бірден жанбайтынын көрсетеді - олар жолдар жиынтығын жарықтандырады. Панель биіктігі мен пиксельдегі жолдардың саны арасындағы байланыс сканерлеу жиілігі деп аталады. Мысалы, 1/16 сканерлеуі бар 32х32 панельде екі қатар (1 және 17, 2 және 18, 3 және 19 және т.б.) бірден жарықтандырылады, содан кейін контроллер қайталанады.. RGB матрицаларын басқаратын кітапханалардың көпшілігі сканерлеу жиілігі пиксельдегі биіктіктің 1/2 бөлігін құрайтын панельдерге арналған, яғни олар бірден екі қатар жарықдиодты шығарады.

Сыртқы панельдер (және кейбір ішкі панельдер - тапсырыс берер алдында ерекшеліктерді тексеріңіз) сканерлеу жиілігі пиксельдегі биіктіктің 1/4 бөлігін құрайды, яғни олар бірден төрт жолды жүргізуді күтеді. Бұл оларды жарқын етеді (бұл жақсы), бірақ көптеген стандартты код олармен жұмыс істемейді (бұл нашар). Бұған қоса, олар пикселдердің ішкі тәртіпсіздігіне бейім, бұл дұрыс пиксельдерді шешу үшін бағдарламалық қамтамасыз етудегі x және y мәндерін түрлендіруді талап етеді. Неліктен осылай жасалған? Ойымда жоқ. Сен білесің бе? Егер солай болса, маған айтыңыз. Әйтпесе, бұл жұмбақ болып қала береді.

Сонымен, егер сізде осы таңғажайып ашық панельдердің бірі болса, сіз сәттілікке жетесіз! hzeller жақында өзінің кітапханасына осы панельдердің жалпы конфигурациясын қолдауды қосты. Сіз бұл туралы жобаның github бетінде толығырақ оқи аласыз, бірақ үлгі кодына --led-multiplexing = {0, 1, 2, 3} жібере аласыз (сізде бар сияқты көріну қажет болуы мүмкін) жартылай ұзындықтағы панельдердің қос ұзындық тізбегі) және ол жұмыс істеуі керек.

Пиксельді түрлендірудің кейбір үлгілері бар, бірақ қолдау көрсетілмейді - және менің панельдерде олардың біреуі бар! Сонымен, мен өзімнің түрлендіру кодын жазуым керек болды (мен де - қандай да бір себеппен - кітапханаға 16x32 сегіз панельді тізбектеп қойғандай әрекет етуді айтуға тура келеді). бұл келесідей:

def transformPixels (j, k): effJ = j % 32

эффК = k % 32

modY = k

modX = j

#modX және modY - өзгертілген X және Y;

#effJ және effK итермес бұрын 32x32 матрицасында түрлендіретінімізге көз жеткізіңіз

егер ((effJ)> 15):

modX = modX + 16

егер ((effK)> 7):

modY = modY - 8

modX = modX + 16

егер ((effK)> 15):

modX = modX - 16

егер ((effK)> 23):

modY = modY - 8

modX = modX + 16

#Содан кейін біз оларды дұрыс орынға итереміз (әр x+32 бір панельді жылжытады)

егер (j> 31):

modX += 32

егер (j> 63):

modX += 32

егер (j> 95):

modX += 32

қайтару (modX, modY)

Егер сізде менікі сияқты панель болса, бұл ол үшін жұмыс істеуі мүмкін. Егер олай болмаса, сіз өзіңіздің жеке жазбаңызды жазуыңыз керек - демек, сәттілік пен сәттілік.

6 -қадам: Starboard бағдарламасы (немесе: Жолға оралып, пиксельге дайын)

Енді сіздің матрицаларыңыз жұмыс істеп, дайын болғаныңыз үшін, саудалық борттық бағдарламаны Pi -ге қойып, оны іске қосуға дайын болсаңыз болғаны. Пайдаланушының үй каталогында екеніңізге көз жеткізіңіз (cd /home /pi) және келесі пәрменді іске қосыңыз:

git клоны

сізде үш файлдан тұратын жаңа қалта болуы керек: LICENSE.md, README.md және starboard_s16.py. Старт бағдарламасын python арқылы іске қосып көріңіз:

sudo python./starboard_s16.py

және сіз әр түрлі жылдамдықпен қозғалатын және әр түрлі жылдамдықпен ыдырайтын бөлшектерді алуыңыз керек. Әр 10 000 -ға жуық кене (оны өзгерту/өзгерту үшін питон сценарийіне кіруге болады), ол режимді өзгертеді (төртеуі бар: RGB, HSV, Rainbow және Greyscale).

Сонымен, енді старт кодын іске қосу кезінде іске қосу ғана қалды. Біз мұны өңдеу арқылы жасаймыз (sudo көмегімен) /etc/rc.local. Сценарийде «0 шығуынан» бұрын келесі жолды қосу керек:

python /home/pi/starboard/starboard_s16.py &

Мұны істегеннен кейін, pi -ді қайта жүктеңіз - ол жүктелу реті бойынша өткеннен кейін, starboard_s16.py сценарийі бірден басталуы керек!

Егер сіз сценарийді айналдырғыңыз келсе, мұны жасаңыз - бұл GNU GPL 3.0 лицензиясы бойынша. Егер сценарий сізге сәйкес келмесе немесе сізде қиындықтар туындаса, маған хабарлаңыз немесе github қатесін жіберіңіз, мен оны түзету үшін не істей алатынымды көремін!

Сіз жасай алатын соңғы нәрсе - бұл SSH -ді пи -ге орнату, оны қашықтан кіруге және қауіпсіз түрде өшіруге болады. Сіз / сөзсіз / құпия сөзді өзгерткіңіз келеді (passwd пәрмені арқылы) және мұнда ssh (сонымен қатар пәрмен жолынан) қосу бойынша нұсқауларды таба аласыз.

Ұсынылған: