Სარჩევი:

LED POVstick Bluetooth დაბალი ენერგიით: 10 ნაბიჯი (სურათებით)
LED POVstick Bluetooth დაბალი ენერგიით: 10 ნაბიჯი (სურათებით)

ვიდეო: LED POVstick Bluetooth დაბალი ენერგიით: 10 ნაბიჯი (სურათებით)

ვიდეო: LED POVstick Bluetooth დაბალი ენერგიით: 10 ნაბიჯი (სურათებით)
ვიდეო: DIY Propeller LED Clock with Arduino || LED Clock POV Display 2024, ნოემბერი
Anonim
LED POVstick Bluetooth დაბალი ენერგიით
LED POVstick Bluetooth დაბალი ენერგიით

ეს ინსტრუქცია გიჩვენებთ, თუ როგორ უნდა ავაშენოთ შუქნიშნის ჯოხი RGB LED- ებით, რომელიც კონტროლირებადია თქვენი ტელეფონის BLE საშუალებით!

ახლა, როდესაც ბნელი სეზონი იწყება და თქვენ უნდა გადაიღოთ გრძელი ექსპოზიციის სურათები: ამ ჯოხით შეგიძლიათ ჩაწეროთ თქვენი ხელმოწერა სურათზე, ან სამოტივაციო ციტატა, ან სიყვარულის დეკლარაცია, QR კოდი, ვებ-მისამართი, ან ბევრი სხვა სხვა რამ…

იგი მოიცავს განვითარების რამდენიმე თემას:

  • ტექნიკის შექმნა
  • Cypress BLE ჩიპსეტის დაპროგრამება C- ით
  • შექმენით თქვენი საკუთარი აპლიკაცია მისი გასაკონტროლებლად.

ნაბიჯი 1: აპარატურა BLE-LED-Stick– ისთვის

აპარატურა BLE-LED-Stick– ისთვის
აპარატურა BLE-LED-Stick– ისთვის
აპარატურა BLE-LED-Stick– ისთვის
აპარატურა BLE-LED-Stick– ისთვის
აპარატურა BLE-LED-Stick– ისთვის
აპარატურა BLE-LED-Stick– ისთვის
აპარატურა BLE-LED-Stick– ისთვის
აპარატურა 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 კონტროლის პროგრამული უზრუნველყოფა

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 კონტროლი
RGB კონტროლი
RGB კონტროლი
RGB კონტროლი
RGB კონტროლი
RGB კონტროლი
RGB კონტროლი
RGB კონტროლი

RGB- კონტროლი ძალიან მარტივად შეიძლება შემოწმდეს CySmart აპლიკაციით, რადგან მე გამოვიყენე იგივე UUID ამ მახასიათებლისთვის, როგორც კვიპაროსის დემოში.

დაიწყეთ CySmart აპლიკაცია და დაუკავშირდით Povstick– ს. პირველი თქვენ უნდა ჩაწეროთ "0x0A" ccc1 მახასიათებელზე.

0x0A არის ჰექს-მნიშვნელობა 10-ისთვის, რაც არის RGB-Control ანიმაცია enum- ში.

შემდეგ შეგიძლიათ გადახვიდეთ RGB-LED პანელზე CySmart აპლიკაციაში. ალბათ თქვენ უნდა გადატვირთოთ აპლიკაცია ამ ეკრანზე მოსახვედრად. შემდეგ თქვენ შეგიძლიათ გააკონტროლოთ ყველა LED- ების ფერი ამ RGB დიაგრამით.

რა თქმა უნდა, თქვენ ასევე შეგიძლიათ ჩაწეროთ ღირებულებები უშუალოდ მახასიათებელში.

ნაბიჯი 8: ტექსტური_ ანიმაციის სერვისი და მუდმივი შენახვის სერვისი

Text_Aimation სერვისი და მუდმივი შენახვის სერვისი
Text_Aimation სერვისი და მუდმივი შენახვის სერვისი

ამ სერვისების გამოცდა არც ისე ადვილია.

ტექნიკურად თქვენ ასევე შეგიძლიათ გამოიყენოთ სკანდინავიური აპლიკაცია ამისათვის, მაგრამ თქვენ უნდა იცოდეთ რა ღირებულებები უნდა დაწეროთ რომელ მახასიათებელზე.

ასე რომ, თუ გსურთ მათი შემოწმება, უნდა გადახედოთ 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- ები საკმაოდ ბნელი გამოჩნდეს.

გახადე Glow კონკურსი 2018
გახადე Glow კონკურსი 2018
გახადე Glow კონკურსი 2018
გახადე Glow კონკურსი 2018

მეორე პრიზი Make it Glow კონკურსში 2018

გირჩევთ: