Мазмұны:
- 1-қадам: BLE-LED-Stick үшін аппараттық құрал
- 2 -қадам: электрониканы құрастыру
- 3 -қадам: Қаріптерді қалай құруға болады?
- 4 -қадам: BLE басқару бағдарламасы
- 5 -қадам: Бірінші тест
- 6 -қадам: Анимацияларды таңдаңыз
- 7 -қадам: RGB басқару
- 8 -қадам: Text_Animation қызметі және тұрақты сақтау қызметі
- 9 -қадам: Android қосымшасын іске қосыңыз
- 10 -қадам: хабарларды суреттерге жазыңыз
Бейне: Қуаты аз Bluetooth бар LED POVstick: 10 қадам (суреттермен)
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:26
Бұл нұсқаулықта телефоныңыздан BLE арқылы басқарылатын RGB светодиодтары бар светофор таяқшасын қалай жасау керектігін көрсетеді!
Енді қараңғы маусым басталып, сіз ұзақ экспозиция суреттерін түсіруіңіз керек: бұл таяқшамен сіз суретке өз қолтаңбаңызды, мотивациялық цитатаны немесе махаббат туралы декларацияны, QR-кодты, веб-адресті немесе басқа да көптеген мәліметтерді жаза аласыз. басқа заттар…
Ол бірнеше даму тақырыптарын қамтиды:
- аппаратураны құру
- Cypress BLE чипсетін C көмегімен программалау
- оны басқару үшін өзіңіздің жеке қосымшаңызды жасаңыз.
1-қадам: BLE-LED-Stick үшін аппараттық құрал
Таяқша үшін сізге мыналар қажет:
- Кипарис BLE модулі (CY8C4247LQI-BL583)
- WS2812b RGB-LED-жолағы (метрлік жолаққа 144 ледтен 64 LED)
- Ли-Ион батареясы сәйкес ұстағышпен (18650)
- батырмасы
- нанның бір бөлігі
Таяқтың аппараттық құралы өте қарапайым.
Cypress BLE модулі нан тақтасына орнатылған және жарық диодты шамдар, түйме мен қуат көзі осы тақтаға қосылған.
Барлығы ағаштан жасалған таспаның кішкене бөлігіне бекітілген, желімделген немесе бұрандалы, ол ішінара мөлдір полиакрил түтікке салынған. Бірақ бұл міндетті емес. Мен бәрін түтікке орнатқым келді, бірақ светодиодтармен салыстырғанда өте үлкен BLE модулі мен батареяға сәйкес келетінін таппадым. Алғашқы түсірілім үшін сізге акрил түтік қажет емес.
2 -қадам: электрониканы құрастыру
Бұл қадам BLE модулінің қалай орнатылғанын және қандай түйреуіштер қандай мақсатта қолданылатынын көрсетеді.
Менің бірнеше нұсқауларымдағыдай, мен Cypress BLE әзірлеу жинағын қолдандым. CY8CKIT-042-BLE жылдам бастау нұсқаулығы
Егер сіз модульді дербес басқарғыңыз келсе, қуат көздері мен пайдаланылған түйреуіштерді қосу қажет.
Біздің жоба үшін біз светодиодты таспаны жүргізу үшін тек 3,5 түйреуішті қолданамыз. Әрине, сіз мұны PSoC Creator көмегімен өзгерте аласыз.
ПХД суретінен көріп тұрғаныңыздай, мен чиптің барлық бұрыштарына түйреуіш ұштарын қостым, бірақ мен VREF түйреуішін өткізіп жібердім.
Осылайша модуль дұрыс орнатылған және модульді дұрыс қосуға болмайды.
3 -қадам: Қаріптерді қалай құруға болады?
Менің ойымша, бұл жоба барысында шешкен ең қызықты мәселелердің бірі болды.
Әрине, жаңа қаріпті құрастыруға және оны массивке жазуға болады, бірақ бұл өте көп жұмыс!
Сонымен мен не істедім?
Он алтылық нүктелік кескінге түрлендіру үшін маған қандай да бір ASCII қажет екенін білдім. Мен бақытты болдым, өйткені мен бұл мәселемен бірінші емеспін!:-)
«GLCD қаріп генераторы» бағдарламалық жасақтамасы дұрыс жасады:
Мен жарықдиодты таяқшадан барынша көп пайда алғым келгендіктен, қаріпті үлкен көлемде (~ 32 пиксель) импорттадым. Егер сіз тек қана бас әріптерді қолдансаңыз, сіз көтерілетіндерге мән бермеуіңіз керек, бұл сіздің қаріп өлшемін бірнеше пиксельге арттырады. Бірақ мен бас әріптерді де, кіші әріптерді де қолдануды жөн көрдім. (https://kk.wikipedia.org/wiki/Ascender_%28typography%29)
Қаріпті GLCD қаріп генераторына импорттағаннан кейін оны әр түрлі форматта экспорттауды таңдауға болады.
Мен оны жақсы, бірақ мінсіз емес тақырыптарға тікелей экспорттауға тырыстым. Алынған экспорт-бұл 128-ascii бірінші таңбасының әрбір таңбасы үшін бағандар үшін байт-он алтылық мәндері бар қысқа шорты (16 биттік). Мен қалаған немесе қажет нәрсе емес …
Мен массивті ашық кеңсе калькуляциялық жұмыс парағына импорттадым. Содан кейін мен «0x» төрт мәннің үшеуін алып тастадым және оларды 32 биттік ұзын мәнге біріктірдім. Мен сондай -ақ жеке байттардың дұрыс еместігін анықтадым.
Алынған массив - бұл 32 биттік мәнді N*M массиві. M - сәйкес таңба, ал N - бұл әріптің дисплейін құрайтын бағандар. Бұл бірінші нобайда барлық таңбалар бірдей бағандарға ие, яғни барлық әріптер белгілі Courier шрифтіндегідей кең. «И» немесе «т» сияқты кішкентай кейіпкерлер ғарышта адасып кеткендей көрінеді.
Сондықтан мен әр таңбаның басында бұл таңбаның қанша бағанасы бар екенін немесе бұл таңбаның қаншалықты кең екенін айту үшін жаңа параметр қостым. Бұл жадты үнемдейді және мәтінді жақсы етеді!
4 -қадам: BLE басқару бағдарламасы
BLE-бағдарламалық қамтамасыз ету принципі өте қарапайым:
- Басында бұл ештеңе жасамайды.
- BLE арқылы әр түрлі анимацияларды немесе мәтіндерді көрсетуге болады.
- Түймені басқаннан кейін анимацияның немесе мәтіннің жеке бағандары көрсетіледі.
- Мәтін көрсетілгеннен кейін ол қайтадан күтуді жалғастырады.
Кипарис жобасын PSoC-Creator-ге импорттаңыз және қаласаңыз, оны өзгертіңіз.
PSoC-4-те қаріптердің толық RGB-суреттерін сақтай алатындай жедел жады мен флэш жоқ. Сондықтан маған LED-контентті мәтіннен динамикалық түрде жасау әдісі қажет болды. Бұл өте қарапайым, әзірге ерекше ештеңе жоқ. Әріптері көп мәтіннен алгоритм бір әріпті алады және оны ақ-қара нүктелік массивке түрлендіреді. Содан кейін ол бір әріптік нүктелік суреттің әрбір бағанын алады және ақ түстің орнына LED-массивіне ағымдағы RGB түсін жазады. Осылайша сіз бір түсті мәтіндерді құра аласыз немесе қосымша функция арқылы әр бағаннан, әр әріптен немесе әр пиксельден кейін түсін өзгерте аласыз.
«Әріпті» бір байт айнымалысында сақтауға болады, ал ақ-қара нүктелік кескінді қандай да бір массивте сақтау қажет.
Мәліметтер құрылымы-бұл:
Жол: newtext = «Сәлеметсіз бе»;
Қаріп: uint32 таңбалар = {FirstCharacter_ColumnCount, FirstCharacter_FirstColumn, FirstCharacter_SecondColumn,… SecondCharacter_ColumnCount, SecondCharacter_FirstColumn,…… LastCharacter_ColumnCount,… LastCharacter_LastColumn}; Түсі: uint32 rgbcolor = 0xHHBBGGRR; // Жарықтық, көк, жасыл, қызыл - әрқайсысы 8 биттік мән
Жолды дисплейге түрлендіру үшін біз келесі әрекеттерді орындаймыз:
getCharacter (): H (8 биттік)
getColumn (int i): баған (32 биттік) (i бірінші бағаннан басталады, соңғысына дейін жұмыс істейді.) if (бағандағы бит 1) Strip ішіндегі LED түске орнатылған. LED-Strip массиві-әрқайсысы 32 биттік түсті 64 светодиод!
Егер бұл баған көрсетілсе, біз келесіге өтеміз.
Бұл оңай.
5 -қадам: Бірінші тест
Енді бағдарламалық жасақтама іске қосылады, біз бірінші сынақтарға дайынбыз.
Ендірілген функцияны тестілеудің ең оңай жолы - Bluetooth төмен энергия сынау бағдарламасы. Скандинавиялық немесе кипарис қосымшалары сияқты.
Скандинавиялық: ұялы телефон үшін nRF Connect
Кипарис: CySmart
Pov-Stick іске қосыңыз және демонстрация қалай көрсетілетінін бақылаңыз. Бұл аяқталғаннан кейін қосымшаны іске қосу уақыты келді. Povstick құрылғысын іздеңіз және қосылуды басыңыз.
Қосылым орнатылғаннан кейін бағдарлама автоматты түрде барлық анықталған қызметтер мен сипаттамаларды табады.
Бірінші қызметті іздеңіз (0000ccce -тен басталуы керек …). Оны ашу және бірінші сипаттаманы көрсету үшін оны басыңыз (0000ccc1 -ден басталады). Содан кейін жазу (немесе жүктеу) түймесін басып, осы сипаттамаға 01 жазыңыз.
Жіберуді басқаннан кейін, POVstick түсі өзгеретін Larson сканері деп аталатын Color-Knight-rider анимациясын бастайды.
Құттықтаймыз, сіз BLE арқылы бірінші құндылықты жібердіңіз!
6 -қадам: Анимацияларды таңдаңыз
Бағдарламалық қамтамасыз етуде біз келесі мәндермен «e_Animation» санын анықтадық:
typedef enum {Knightrider = 0, ColorKnightRider, Rainbowswirl, Valueswirl, WS_CandyCane, WS_CandyCane_2, WS_CandyCane_3, WS_Twinkle, WS_Icicle, WS_ColorWheel, RGB_Cax, Text_nimation}
Бұл ccc1 сипаттамасы үшін жарамды мәндер. Егер сіз CandyCane-анимациясын көргіңіз келсе, сіз осы сипаттамаға 4, 5 немесе 6 жазуыңыз керек. Олар түстермен ерекшеленеді.
Екі арнайы анимация - RGB_Control және TextAnimation. Егер сіз оларды белсендіруді таңдасаңыз, таяқша алдымен ештеңе көрсетпейтіні анық. Бірақ ол басқа қызметтермен бірге таяқшаны басқарудың қосымша мүмкіндіктерін ұсынады.
7 -қадам: RGB басқару
RGB-Control CySmart қосымшасымен оңай тексерілуі мүмкін, себебі мен Cypress Demo-дағыдай осы сипаттамаға UUID қолдандым.
CySmart қосымшасын іске қосыңыз және Povstick -ке қосылыңыз. Алдымен ccc1 сипаттамасына «0x0A» жазу керек.
0x0A-бұл ондық санның он алтылық мәні, бұл тізімдегі RGB-Control анимациясы.
Содан кейін CySmart қосымшасындағы RGB-LED басқару тақтасына ауысуға болады. Бұл экранға өту үшін қолданбаны қайта іске қосу қажет болуы мүмкін. Содан кейін осы RGB-диаграмманың көмегімен барлық жарықдиодтардың түсін басқаруға болады.
Әрине, сіз мәндерді сипаттамаға тікелей жаза аласыз.
8 -қадам: Text_Animation қызметі және тұрақты сақтау қызметі
Бұл қызметтерді сынау оңай емес.
Техникалық түрде сіз бұл үшін скандинавиялық қосымшаны пайдалана аласыз, бірақ сіз қандай сипаттамаға қандай мәндер жазу керектігін білуіңіз керек.
Егер сіз оларды тексергіңіз келсе, PSOC жобасын қарауыңыз керек, оның сипаттамасы қандай UUID бар.
«Жылдамдықты орнату» сипаттамасы маңызды. Бұл сипаттаманың көмегімен сіз анимацияның қаншалықты жылдам екенін басқара аласыз.
PersistentStorageService «Set_Animation» сипаттамасымен мәтін жолының қаріптері мен түстерін басқаруға болады. Жарамды мәндер «povanimation.h», «mono» және «serif» екі қаріппен және бір түсті және кемпірқосақ түсімен анықталады. 0 және 1 мәндері мәтінді RGB_Control сипаттамасы арқылы басқарылатын бекітілген түспен көрсетеді. 2 және 3 мәндері әр бағананың түсін өзгертеді және жолға әдемі кемпірқосақ береді.
«Write_Text_Service» әр түрлі. «Set_Character» сипаттамасына жеке таңбаларды жазу арқылы құрылғыға жаңа жол жаза аласыз. Әр жазбада сіз жолдың ағымдағы ұзындығы туралы хабарлама аласыз.
Жаңа жолды бастау үшін «Clear_String» «шын» деп жазыңыз.
Бұл ең жақсы енгізу емес, бірақ ол MTU өлшемін өзгертпестен 250 таңбаға дейінгі кез келген жол үшін жұмыс істейді.
Povstick батырмасы басылған кезде жаңа жолдың көрсетілуі.
9 -қадам: Android қосымшасын іске қосыңыз
Бұл маңызды қадам, бірақ бұл нұсқаулықтың ауқымынан тыс. Бұл үшін кешіріңіз!
Мүмкін мен тест-қосымшамды ойын дүкеніне жүктеуім мүмкін, бірақ ол әлі аяқталмаған немесе шығарылмайды.
10 -қадам: хабарларды суреттерге жазыңыз
Міне, сондықтан мен бұл таяқшаны бірінші кезекте құрамын: хабарларды суреттерге жазу.
Сізге штатив, ұзақ экспозиция функциясы бар камера және жақсы орналасуы қажет.
Камераны орнатыңыз және бірінші сынақ үшін экспозиция уақытын 10 секундқа реттеңіз.
Шығаруды іске қосыңыз және таяқшадағы мәтіндік дисплейді бастай отырып, суретті аралай бастаңыз.
Et Voila біз мындамыз!
Жарық диодты жарықтылықтың, диафрагманың және экспозиция уақытының дұрыс үйлесімімен тіпті таңертең суретке түсуге болады.
Бұл қадамдағы үш сурет мүмкіндіктердің толық спектрін көрсетеді.
Біріншісінде светодиодтар шамадан тыс әсер етеді және сиқырлы жарқыл жасайды. Бірақ сондықтан да жердегі шағылыстар көрінеді және фон жақсы.
Екінші сурет жарық диодты жарықтандырылған, бірақ бұл фонды толығымен қара етеді.
Үшіншісі күн батқаннан кейін көп ұзамай жарық диодты шамдарды көрсетеді. Светодиодтар басқа суреттердегідей жарқын, бірақ қоршаған орта соншалықты жарқын болғандықтан, жарық диодтары күңгірт болып көрінуі үшін төмен температура мен төмен ИСО қолдануға тура келді.
«Make it Glow» байқауының екінші жүлдесі 2018 ж
Ұсынылған:
Phantom батарея қуаты: 6 қадам (суреттермен)
Phantom Battery Power: Heyo. Менің қызым бірнеше дыбыстық қондырғыларды ауыстырып, конденсатор микрофонмен аяқталды, ол өте жақсы көрінеді. Мәселе мынада, ол фантомдық қуатты қажет етеді және оның бірде -бір жабдығында жоқ. Көптеген фантомдық қуат көздері бар
Табиғатта таңқурай Pi! Батарея қуаты бар кеңейтілген таймапс: 10 қадам (суреттермен)
Табиғатта таңқурай Pi! Батарея қуаты бар кеңейтілген таймапс: мотивация: Мен ұзақ уақытқа созылатын бейнелер жасау үшін ашық ауада күніне бір рет фотосуретке түсіру үшін батареямен жұмыс істейтін Raspberry Pi камерасын қолданғым келді. Менің нақты өтінішім - алдағы көктем мен жазда өсімдік жамылғысының өсуін тіркеу. Сынақ: D
Аэробты Arduino - 15 доллар тұратын фитнес -трекер қуаты: Arduino: 9 қадам (суреттермен)
Aerobic Arduino - Arduino ұсынған 15 долларлық фитнес -трекер: Fitbit немесе ақылды сағаттардың орнына фитнес -тестте дауыс беріңіз, сіз Arduino -мен жұмыс істейтін фитнес -трекерді небәрі 15 долларға жасай аласыз! Ол жүгіру кезінде қолдың сору қозғалысын бақылайды және оны анықтау үшін акселерометрді қолданады. Бұл
Arduino қуаты бар, сенсормен басқарылатын сөнетін жарықдиодты жолақтар: 6 қадам (суреттермен)
Arduino қуаты бар, сенсормен басқарылатын сөнетін жарық диодты шамдар: Мен жақында ас үйді жаңарттым және жарықтандыру шкафтардың көрінісін «көтеретінін» білдім. Мен «Нағыз қолсыздарға» бардым, сондықтан менде жұмыс алаңының астында бос орын бар, сонымен қатар шкафтың астында, шкафтың астында және шкафтардың жоғарғы жағында бос орын бар
Arduino -ны 20 минутта үйреніңіз (қуаты бар): 10 қадам (суреттермен)
Arduino -ны 20 минут ішінде үйреніңіз (қуаты бар): Нұсқаулық жақсы материалдарды жеткізу және осы модульді оқу арқылы түсінуге болатын қарапайым және түсінікті дереккөзге мұқтаж ардуиноның шынайы әуесқойына көмектесу мақсатында жазылған. Мен де ардуимін