Სარჩევი:
- ნაბიჯი 1: აპარატურა BLE-LED-Stick– ისთვის
- ნაბიჯი 2: ელექტრონიკის შეკრება
- ნაბიჯი 3: როგორ შევქმნათ შრიფტები?
- ნაბიჯი 4: BLE კონტროლის პროგრამა
- ნაბიჯი 5: პირველი ტესტი
- ნაბიჯი 6: შეარჩიეთ ანიმაციები
- ნაბიჯი 7: RGB კონტროლი
- ნაბიჯი 8: ტექსტური_ ანიმაციის სერვისი და მუდმივი შენახვის სერვისი
- ნაბიჯი 9: დაიწყეთ Android აპლიკაცია
- ნაბიჯი 10: ჩაწერეთ შეტყობინებები სურათებში
ვიდეო: LED POVstick Bluetooth დაბალი ენერგიით: 10 ნაბიჯი (სურათებით)
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:19
ეს ინსტრუქცია გიჩვენებთ, თუ როგორ უნდა ავაშენოთ შუქნიშნის ჯოხი RGB LED- ებით, რომელიც კონტროლირებადია თქვენი ტელეფონის BLE საშუალებით!
ახლა, როდესაც ბნელი სეზონი იწყება და თქვენ უნდა გადაიღოთ გრძელი ექსპოზიციის სურათები: ამ ჯოხით შეგიძლიათ ჩაწეროთ თქვენი ხელმოწერა სურათზე, ან სამოტივაციო ციტატა, ან სიყვარულის დეკლარაცია, QR კოდი, ვებ-მისამართი, ან ბევრი სხვა სხვა რამ…
იგი მოიცავს განვითარების რამდენიმე თემას:
- ტექნიკის შექმნა
- Cypress BLE ჩიპსეტის დაპროგრამება C- ით
- შექმენით თქვენი საკუთარი აპლიკაცია მისი გასაკონტროლებლად.
ნაბიჯი 1: აპარატურა BLE-LED-Stick– ისთვის
ჯოხისთვის გჭირდებათ შემდეგი:
- კვიპაროსის BLE მოდული (CY8C4247LQI-BL583)
- WS2812b RGB-LED-Strip (64LEDs 144Led თითო მეტრზე)
- Li-Ion ბატარეა შესაბამისი დამჭერით (18650)
- ბიძგიანი ღილაკი
- პურის დაფის ნაჭერი
ჯოხის აპარატურა საკმაოდ მარტივია.
Cypress BLE მოდული დამონტაჟებულია პურის დაფაზე და LED- ები, ღილაკი და კვების ბლოკი მხოლოდ ამ დაფაზეა დაკავშირებული.
ყველაფერი არის დამონტაჟებული, წებოვანი ან ხრახნიანი ხის პატარა ნაჭერზე, რომელიც თავისთავად ნაწილობრივ არის ჩასმული გამჭვირვალე პოლიაქრილის მილში. მაგრამ ეს არ არის აუცილებელი. მინდოდა ყველაფერი მილის შიგნით დამემონტაჟებინა, მაგრამ ვერ ვიპოვე შესაფერისი BLE- მოდული და ბატარეა, რომელიც საკმაოდ დიდია, LED- ებთან შედარებით. პირველი გასროლისთვის არ გჭირდებათ აკრილის მილი.
ნაბიჯი 2: ელექტრონიკის შეკრება
ეს ნაბიჯი გიჩვენებთ თუ როგორ არის დამონტაჟებული BLE- მოდული და რომელი ქინძისთავები გამოიყენება რა მიზნით.
როგორც ჩემს ინსტრუქციებში, მე გამოვიყენე Cypress BLE განვითარების ნაკრები. CY8CKIT-042-BLE სწრაფი დაწყების სახელმძღვანელო
თუ გსურთ მოდულის დამოუკიდებლად ფუნქციონირება, თქვენ მხოლოდ დასაკავშირებლად გჭირდებათ ენერგიის წყაროები და გამოყენებული ქინძისთავები.
ჩვენი პროექტისთვის ჩვენ ვიყენებთ მხოლოდ pin 3.5 – ს LED – ზოლის მართვისთვის. რა თქმა უნდა, თქვენ შეგიძლიათ შეცვალოთ ეს PSoC Creator– ით.
როგორც ხედავთ PCB სურათზე, ჩიპის ყველა კუთხეში დავამატე პინჰედები, მაგრამ გამოვტოვე VREF პინი.
ამ გზით მოდული სწორად არის დამონტაჟებული და შეუძლებელია მოდულის არასწორი კავშირი.
ნაბიჯი 3: როგორ შევქმნათ შრიფტები?
მე ვფიქრობ, რომ ეს იყო ერთ -ერთი ყველაზე საინტერესო პრობლემა, რომელიც მე გადავწყვიტე ამ პროექტის განმავლობაში.
რა თქმა უნდა, შეიძლება შეიმუშაოს ახალი შრიფტი და ჩაწეროს მასივში, მაგრამ ეს მართლაც ბევრი სამუშაოა!
მაშ რა გავაკეთე?
ვიცოდი, რომ მე მჭირდებოდა ASCII სახის ექვს ბიტმაპიური კონვერტაციისთვის. მე გამიმართლა, რადგან მე არ ვიყავი პირველი ამ პრობლემით!:-)
პროგრამულმა უზრუნველყოფამ "GLCD ფონტის გენერატორი" გააკეთა ზუსტად ის, რაც გააკეთა:
იმის გამო, რომ მინდოდა მაქსიმალურად გამომეყენებინა LED- ს ჯოხი, მე შემოვიტანე შრიფტი საკმაოდ დიდი ზომით (~ 32 პიქსელი). თუ მხოლოდ დიდ ასოებს იყენებთ, არ გჭირდებათ ზრუნვა აღმავალზე, რაც გაზრდის თქვენი ხილული შრიფტის ზომას კიდევ რამდენიმე პიქსელით. მაგრამ მე ავირჩიე ორივე დიდი და მცირე ასოების გამოყენება. (https://en.wikipedia.org/wiki/Ascender_%28typography%29)
GLCD შრიფტის გენერატორში შრიფტის შემოტანის შემდეგ შეგიძლიათ აირჩიოთ მისი ექსპორტი სხვადასხვა ფორმატში.
მე შევეცადე მისი პირდაპირ სათაურებში გატანა, რაც კარგი იყო, მაგრამ არა სრულყოფილი. შედეგად მიღებული ექსპორტი არის შორტების მასივი (16 ბიტიანი) ბაიტ-ჰექს-მნიშვნელობებით სვეტებისთვის პირველი 128-ასციანი ხასიათის თითოეული პერსონაჟისთვის. მთლად ის არაა რაც მინდოდა ან მჭირდებოდა…
ასე რომ, მასივი შემოვიღე ღია ოფისის კალკ სამუშაოში. შემდეგ მე ამოვიღე "0x" სამი ოთხი მნიშვნელობიდან და დავამატე ისინი ერთ 32 ბიტიან ხანგრძლივ მნიშვნელობად. მე ასევე დავაფიქსირე ინდივიდუალური ბაიტების არასწორი ენდოენეულობა.
მასივი არის N*M მასივი 32 ბიტიანი მნიშვნელობებით. M არის შესაბამისი სიმბოლო და N არის სვეტები, რომლებიც ქმნიან ამ ასოების ჩვენებას. ამ პირველ მონახაზში ყველა სიმბოლოს აქვს ერთნაირი რაოდენობის სვეტი, რაც იმას ნიშნავს, რომ ყველა ასო ერთნაირად ფართოა, როგორც კარგად ცნობილი კურიერის შრიფტით. პატარა სიმბოლოები, როგორიცაა "i" ან "t", თითქოს სივრცეში დაიკარგა.
ამიტომ, თითოეული პერსონაჟის დასაწყისში დავამატე ახალი პარამეტრი, რათა გითხრათ, რამდენი სვეტი აქვს ამ სიმბოლოს ან რამდენად ფართოა ეს სიმბოლო. ეს ზოგავს მეხსიერებას და ტექსტს უკეთესს ხდის!
ნაბიჯი 4: BLE კონტროლის პროგრამა
BLE პროგრამული უზრუნველყოფის პრინციპი ძალიან მარტივია:
- თავიდან უბრალოდ არაფერს აკეთებს.
- BLE– ს საშუალებით შეგიძლიათ დააყენოთ სხვადასხვა ანიმაციის ან ტექსტის ჩვენება.
- ღილაკზე დაჭერის შემდეგ გამოჩნდება ანიმაციის ან ტექსტის ცალკეული სვეტები.
- ტექსტის ჩვენების შემდეგ ის კვლავ განაგრძობს ლოდინს.
უბრალოდ შემოიტანეთ კვიპაროსის პროექტი თქვენს PSoC-Creator– ში და შეცვალეთ, თუ გსურთ.
PSoC-4– ს არ აქვს იმდენი ოპერატიული მეხსიერება და ფლეშ, რომ შეძლოს შრიფტების სრული RGB გამოსახულების შენახვა. აქედან გამომდინარე, მე მჭირდებოდა გზა, რომ გენერირებულიყო შინაარსი დინამიურად ტექსტიდან. ეს არის საკმაოდ პირდაპირი, არაფერი განსაკუთრებული ჯერჯერობით. ალგორითმი იღებს მრავალ ასოს ტექსტს, იღებს ერთ ასოს და გადააქცევს მას შავ-თეთრ-ბიტმაპის მასივში. შემდეგ იღებს ამ ერთ ასო-ბიტმაპის თითოეულ სვეტს და თეთრის ნაცვლად, იგი წერს მიმდინარე RGB ფერს LED მასივში. ამ გზით თქვენ შეგიძლიათ შექმნათ ერთი ფერის ტექსტები ან დამატებითი ფუნქციით შეცვალოთ ფერი თითოეული სვეტის, თითოეული ასოს ან თუნდაც თითოეული პიქსელის შემდეგ.
"ასო" შეიძლება ინახებოდეს ერთ ბაიტ-ცვლადში, ხოლო შავი და თეთრი ბიტმაპი უნდა იყოს შენახული რაიმე სახის მასივში.
მონაცემთა სტრუქტურა ასეთია:
სიმებიანი: 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 იწყება პირველი სვეტით, გადის ბოლომდე.) თუ (სვეტში ბიტი არის 1) LED ზოლები დაყენებულია ფერში. LED-Strip Array არის 64 LED, თითოეული 32 ბიტიანი ფერით!
და თუ ეს სვეტი ნაჩვენებია, ჩვენ გავაგრძელებთ შემდეგს.
ეს ასე ადვილია.
ნაბიჯი 5: პირველი ტესტი
ახლა, როდესაც პროგრამული უზრუნველყოფა მუშაობს, ჩვენ მზად ვართ პირველი ტესტებისთვის.
ჩაშენებული ფუნქციის შესამოწმებლად უმარტივესი გზაა Bluetooth დაბალი ენერგიის სატესტო აპლიკაცია. სკანდინავიური ან კვიპაროსის პროგრამების მსგავსად.
სკანდინავიური: nRF დაკავშირება მობილურით
კვიპაროსი: CySmart
დაიწყეთ Pov-Stick და დააკვირდით როგორ გამოჩნდება დემო-სტრიქონი. როგორც კი ეს დასრულდება, დროა დაიწყოთ აპლიკაცია. მოძებნეთ Povstick მოწყობილობა და დააწკაპუნეთ დაკავშირებაზე.
კავშირის დამყარების შემდეგ აპლიკაცია ავტომატურად აღმოაჩენს ყველა განსაზღვრულ სერვისს და მახასიათებელს.
მოძებნეთ პირველი სერვისი (უნდა დაიწყოს 0000ccce…). დააწკაპუნეთ მის გასახსნელად და პირველი მახასიათებლის ჩვენებისათვის (იწყება 0000ccc1– ით). შემდეგ დააჭირეთ ჩაწერის (ან ატვირთვის) ღილაკს და ჩაწერეთ 01 ამ მახასიათებელს.
ერთხელ თქვენ დააჭერთ გაგზავნას, POVstick დაიწყებს Color-Knight-Rider ანიმაციას, იგივე ლარსონის სკანერს ფერის შეცვლით.
გილოცავთ თქვენ გაგზავნეთ თქვენი პირველი მნიშვნელობა BLE– ის საშუალებით!
ნაბიჯი 6: შეარჩიეთ ანიმაციები
პროგრამულ უზრუნველყოფაში ჩვენ განვსაზღვრეთ enum "e_Animation" შემდეგი მნიშვნელობებით:
typedef enum {Knightrider = 0, ColorKnightRider, Rainbowswirl, Valueswirl, WS_CandyCane, WS_CandyCane_2, WS_CandyCane_3, WS_Twinkle, WS_Icicle, WS_ColorWheel, RGB_Contation, TextAnimation, TextAnimation;
ეს არის მნიშვნელობები, რომლებიც მოქმედებს ccc1 მახასიათებლისთვის. თუ გსურთ ნახოთ CandyCane-Animation, თქვენ უნდა დაწეროთ 4, 5 ან 6 ამ მახასიათებლისთვის. ისინი განსხვავდებიან ფერებში.
ორი სპეციალური ანიმაციაა RGB_Control და TextAnimation. თუ თქვენ აირჩევთ მათ გააქტიურებას, ჯოხი აშკარად არაფერს აჩვენებს თავდაპირველად. მაგრამ ის გთავაზობთ დამატებით ვარიანტებს ჯოხის გასაკონტროლებლად სხვა სერვისებით.
ნაბიჯი 7: RGB კონტროლი
RGB- კონტროლი ძალიან მარტივად შეიძლება შემოწმდეს CySmart აპლიკაციით, რადგან მე გამოვიყენე იგივე UUID ამ მახასიათებლისთვის, როგორც კვიპაროსის დემოში.
დაიწყეთ CySmart აპლიკაცია და დაუკავშირდით Povstick– ს. პირველი თქვენ უნდა ჩაწეროთ "0x0A" ccc1 მახასიათებელზე.
0x0A არის ჰექს-მნიშვნელობა 10-ისთვის, რაც არის RGB-Control ანიმაცია enum- ში.
შემდეგ შეგიძლიათ გადახვიდეთ RGB-LED პანელზე CySmart აპლიკაციაში. ალბათ თქვენ უნდა გადატვირთოთ აპლიკაცია ამ ეკრანზე მოსახვედრად. შემდეგ თქვენ შეგიძლიათ გააკონტროლოთ ყველა LED- ების ფერი ამ RGB დიაგრამით.
რა თქმა უნდა, თქვენ ასევე შეგიძლიათ ჩაწეროთ ღირებულებები უშუალოდ მახასიათებელში.
ნაბიჯი 8: ტექსტური_ ანიმაციის სერვისი და მუდმივი შენახვის სერვისი
ამ სერვისების გამოცდა არც ისე ადვილია.
ტექნიკურად თქვენ ასევე შეგიძლიათ გამოიყენოთ სკანდინავიური აპლიკაცია ამისათვის, მაგრამ თქვენ უნდა იცოდეთ რა ღირებულებები უნდა დაწეროთ რომელ მახასიათებელზე.
ასე რომ, თუ გსურთ მათი შემოწმება, უნდა გადახედოთ PSoC პროექტს, რომელ მახასიათებელს აქვს რომელი UUID.
მნიშვნელოვანია "დაყენებული სიჩქარის" მახასიათებელი. ამ მახასიათებლით თქვენ შეგიძლიათ აკონტროლოთ ანიმაციის სიჩქარე.
PersistentStorageService– ის მახასიათებელი „Set_Animation“- ით შეგიძლიათ აკონტროლოთ შრიფტები და ტექსტის სტრიქონის ფერები. მოქმედი მნიშვნელობები განისაზღვრება "povanimation.h"-ში, ორი შრიფტით "mono" და "serif" და ერთი ფერადი და ცისარტყელას ფერით. 0 და 1 მნიშვნელობები აჩვენებს ტექსტს ფიქსირებული ფერით, კონტროლირებადი RGB_Control მახასიათებლის საშუალებით. მნიშვნელობები 2 და 3 ცვლის ფერს თითოეული სვეტისთვის და სტრიქონს აძლევს მშვენიერ ცისარტყელას.
"ჩაწერეთ_ტექსტური_სამსახური" გარკვეულწილად განსხვავებულია. თქვენ შეგიძლიათ ჩაწეროთ ახალი სტრიქონი მოწყობილობაზე ცალკეული სიმბოლოების "Set_Character" მახასიათებლით. თითოეულ ჩაწერაზე თქვენ მიიღებთ შეტყობინებას სტრიქონის მიმდინარე სიგრძის შესახებ.
ახალი სტრიქონის დასაწყებად ჩაწერეთ "true" "Clear_String" - ში.
ეს არ არის საუკეთესო განხორციელება, მაგრამ ის მუშაობს ნებისმიერ სიმბოლოზე 250 სიმბოლომდე, MTU ზომის შეცვლის გარეშე.
ახალი სტრიქონის ჩვენება დაწყებით Povstick ღილაკზე დაჭერისას.
ნაბიჯი 9: დაიწყეთ Android აპლიკაცია
ეს არის მნიშვნელოვანი ნაბიჯი, მაგრამ ამ ინსტრუქციის ფარგლებს მიღმა. ბოდიში ამისთვის!
შესაძლოა, ჩემი სატესტო აპლიკაცია ატვირთო სათამაშო მაღაზიაში, მაგრამ ის ჯერ არ დასრულებულა ან გამოსაშვებია.
ნაბიჯი 10: ჩაწერეთ შეტყობინებები სურათებში
ასე რომ, ამიტომაც ვაშენებ პირველ რიგში ამ პოსტსტიკს: დავწერო შეტყობინებები სურათებში.
თქვენ გჭირდებათ შტატივი, კამერა ხანგრძლივი ექსპოზიციის ფუნქციით და კარგი ადგილმდებარეობა.
დააყენეთ კამერა და შეცვალეთ ექსპოზიციის დრო 10 წმ -მდე პირველი გამოცდისთვის.
გააქტიურეთ გამოშვება და დაიწყეთ სურათზე სიარული, დაიწყეთ ტექსტზე გამოსახვა ჯოხზე.
Et Voila ჩვენ ვართ!
LED- სიკაშკაშის, დიაფრაგმისა და ექსპოზიციის დროის სწორი კომბინაციით კი შესაძლებელია გამთენიისას სურათების გადაღება.
ამ სურათის სამი სურათი აჩვენებს შესაძლებლობების სრულ სპექტრს.
პირველში, LED- ები ზედმეტად არის გამოვლენილი და ქმნის ჯადოსნურ ბზინვარებას. მაგრამ ამიტომაც არის ასახვა ადგილზე და ფონი საკმაოდ კარგია.
მეორე სურათი არის LED- ებისთვის, მაგრამ ეს ტოვებს ფონს მთლიანად შავს.
მესამე აჩვენებს საკმაოდ დაბნელებულ LED- ებს მზის ჩასვლისთანავე. LED- ები ისეთივე კაშკაშაა, როგორც სხვა სურათებში, მაგრამ გარემო იმდენად კაშკაშა იყო, რომ მომიწია დაბალი დიაპაზონის და დაბალი ISO- ს გამოყენება ისე, რომ LED- ები საკმაოდ ბნელი გამოჩნდეს.
მეორე პრიზი Make it Glow კონკურსში 2018
გირჩევთ:
მზის ენერგიით აღჭურვილი LED პარკინგის სენსორი: 8 ნაბიჯი (სურათებით)
მზის ენერგიაზე მომუშავე LED პარკინგის სენსორი: ჩვენს ავტოფარეხს არ აქვს ბევრი სიღრმე და ბოლოს აქვს კაბინეტები, რაც კიდევ უფრო ამცირებს სიღრმეს. ჩემი ცოლის მანქანა უბრალოდ მოკლეა, რომ მოერგოს, მაგრამ ის ახლოსაა. ეს სენსორი გავაკეთე პარკირების პროცესის გასამარტივებლად და მანქანის სავსეობის უზრუნველსაყოფად
დაბალი დაბალი გამავლობის ფილტრი RC გამოიყენება Arduino– ს პროექტებში: 4 ნაბიჯი
დაბალი დაბალი გამავლობის ფილტრი RC გამოიყენება Arduino– ს პროექტებში: დაბალი გავლის ფილტრი არის შესანიშნავი ელექტრონული სქემა თქვენი პროექტებიდან პარაზიტული სიგნალების გაფილტვრის მიზნით. Arduino– სთან დაკავშირებულ პროექტებსა და დენის სქემებთან ახლოს მომუშავე სენსორებთან დაკავშირებულ პრობლემებს წარმოადგენს „პარაზიტული“სიგნალების არსებობა. ისინი c
დაბალი დაბალი წინააღმდეგობის მარტივი ტესტერი (მილიომეტრი): 5 ნაბიჯი
მარტივი დაბალი წინააღმდეგობის გამომცდელი (მილიომეტრი): თუ გსურთ იცოდეთ დაბალი წინააღმდეგობის ისეთი კომპონენტების წინააღმდეგობა, როგორიცაა მავთულები, კონცენტრატორები და კოჭები, შეგიძლიათ გამოიყენოთ ეს მილიოჰმ მეტრი. მისი დამზადება მარტივია და იაფი. ის ჯიბეშიც კი ჯდება. ოჰმეტრების უმეტესობა ზუსტია 1 ომამდე
LP-2010 AES17 1998 გამაძლიერებლის გადართვის დაბალი გამავლობის (დაბალი გავლის) ფილტრი: 4 ნაბიჯი
LP-2010 AES17 1998 გადართვის გამაძლიერებელი დაბალი გამავლობის (დაბალი გამავლობის) ფილტრი: ეს არის შესანიშნავი D კლასის გამაძლიერებელი დაბალი გამავლობის ფილტრის გაზომვა. კარგი სამუშაო, სუპერრო შესრულება, მარტივი კავშირი ამ პროდუქტს ხდის მარტივად გამოსაყენებელს და ძალიან ღირს ფლობს მაღალი ღირებულების შესრულება
ციფრული USB C იკვებება Bluetooth ენერგიით მომარაგება: 8 ნაბიჯი (სურათებით)
ციფრული USB C იკვებება Bluetooth– ით: ოდესმე გსურდათ ელექტროენერგიის მიწოდება, რომლის გამოყენებაც შეგიძლიათ მოძრაობისას, თუნდაც ახლომდებარე კედლის გარეშე? და არ იქნება მაგარი, თუ ის ასევე იქნება ძალიან ზუსტი, ციფრული და კონტროლირებადი კომპიუტერისა და თქვენი ტელეფონის საშუალებით? ამ სასწავლო ინსტრუქციაში მე გაჩვენებთ როგორ ავაშენოთ ზუსტად