Სარჩევი:

ლონდონის მეტროს რუქის საათი: 9 ნაბიჯი (სურათებით)
ლონდონის მეტროს რუქის საათი: 9 ნაბიჯი (სურათებით)

ვიდეო: ლონდონის მეტროს რუქის საათი: 9 ნაბიჯი (სურათებით)

ვიდეო: ლონდონის მეტროს რუქის საათი: 9 ნაბიჯი (სურათებით)
ვიდეო: რუსული ენა დამაბნეველია ხოლმე? 2024, ივლისი
Anonim
ლონდონის მეტროს რუქის საათი
ლონდონის მეტროს რუქის საათი
ლონდონის მეტროს რუქის საათი
ლონდონის მეტროს რუქის საათი

2014 წელს, ლონდონში 3D ბეჭდვის კონსულტაციის სტაჟირების შემდეგ და ექსპერიმენტის ჩატარება ფერადი ლითოფანების გამოყენებით Stratasys აპარატის გამოყენებით, მე ვქმნი ჩემს საკუთარ საჩუქარს, მილების ხაზების ფერადი 3D ბეჭდვას მათ ოფისებში. მე მტკიცედ მქონდა გადაწყვეტილი გამეკეთებინა რაღაც. მოკლედ 2 წლის შემდეგ, 2016 წელს, მე მქონდა ჩემი 3D პრინტერი და დავიწყე მუშაობა საათის გადაკეთებად.

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

ახლა კი ეს მხოლოდ მცირე 4 წლიანი შესვენებაა, სანამ არ დამიწერია!

მიუხედავად იმისა, რომ ზუსტი მითითებების გამეორება ძნელი იქნება, ხოლო ხარჯების შემცირებამ ბოლო რამდენიმე წლის მანძილზე მოყვარულ PCB წარმოებაში შესაძლოა LED- ების განთავსების ჩემი ზუსტი მეთოდი მოძველდეს. ვიმედოვნებ, რომ გაზიარებულმა იდეებმა შეიძლება გამოიწვიოს სხვებმა უცნაური საათები თხელი საგნებისგან!

ნაბიჯი 1: წინა ფენა

წინა ფენა
წინა ფენა
წინა ფენა
წინა ფენა
წინა ფენა
წინა ფენა

როგორც შესავალში აღვნიშნეთ, ეს იყო ფერადი 3D ბეჭდვა, მე მჯერა Stratasys მანქანა, რომელიც იყენებდა ფხვნილის საწოლს და შეცვლილი მელნის ვაზნას შემკვრელისა და პიგმენტისთვის.

ფაილი დაკარგულია ისტორიაში, მაგრამ ეს ფენა შეიძლება იყოს ნებისმიერი, ფოტო ან ერთი ფერის ლითოფანი საოცრება იქნებოდა.

ეს ნაწილი დამზადებულია 3DS max– ში 2014 წელს, მაგრამ დღეს არის ონლაინ ინსტრუმენტები, რომ გამოსახულება გადაიქცეს SLT სიკაშკაშეზე დაყრდნობით

ნაბიჯი 2: სახელმძღვანელო ფენის შემუშავება

გზამკვლევი ფენის დიზაინი
გზამკვლევი ფენის დიზაინი
გზამკვლევი ფენის დიზაინი
გზამკვლევი ფენის დიზაინი
გზამკვლევი ფენის დიზაინი
გზამკვლევი ფენის დიზაინი
გზამკვლევი ფენის დიზაინი
გზამკვლევი ფენის დიზაინი

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

ეს გაკეთდა დიზაინში სკანირებით და მის გასწვრივ ხაზების დახაზვით მელოდიურ ლანდშაფტში.

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

ორობითი დათვლა არის სიცოცხლისუნარიანი მეთოდი LED- ების რაოდენობის შესამცირებლად და ის გააუმჯობესებს კითხვას, თუ ორობითი იქნება თქვენი ჯემი, მაგრამ ამან შეარყია ჩემი იდეა "შევსების ხაზების" შესახებ, ამიტომ არ იყო ამ პროექტის ვარიანტი.

ტოკიოს Flash საათებზე ჩვეულებრივია LED- ების რაოდენობის შემცირება, მაგრამ ერთი ნაწილის დათვლა 3 ან 5 -ში და შემდეგ მეორე შევსება ყოველ ჯერზე, როდესაც ეს ნაწილი ივსება, მე ვიყენებ ამ ტექნიკას წუთებში, რომ შევამცირო ისინი 60 -დან 20 -მდე პლუს 2. I წამიერად არ მაწუხებდა ამის სიზუსტე.

ნაბიჯი 3: შექმენით სახელმძღვანელო ფენა

გზამკვლევი ფენის აგება
გზამკვლევი ფენის აგება
გზამკვლევი ფენის აგება
გზამკვლევი ფენის აგება
გზამკვლევი ფენის აგება
გზამკვლევი ფენის აგება

LED- ების ეს სახელმძღვანელო ფენა აქვს 2 მიზანს, ის ინარჩუნებს LED- ებს და ხელს უშლის მათ შორის დაღვრას

იგი დახატული იყო ფენად Inkscape– ზე პირდაპირ სკანირების თავზე, რომელსაც ვიყენებდი დიზაინის განლაგებისათვის. ჩემს პრინტერზე გაგზავნამდე ბლენდერში დაემატა 1 მმ სისქე.

ეს იყო ერთ – ერთი უმძიმესი ანაბეჭდი, რომელიც უნდა გამეკეთებინა ჩემს მწირი Makibox A6– ზე, ნაწილი დაბეჭდილია მუწუკებში, ასე რომ, ტონა აცეტონის ნაყენი გამოიყენეს, რომ იგი მიმაგრებულიყო სამშენებლო პლატფორმაზე მინიმალური გადახრით. საბედნიეროდ, ეს ნაწილი არ ჩანს საბოლოო პროდუქტზე

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

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

ნაბიჯი 4: LED- ების გაყვანილობა

LED- ების გაყვანილობა
LED- ების გაყვანილობა
LED- ების გაყვანილობა
LED- ების გაყვანილობა
LED- ების გაყვანილობა
LED- ების გაყვანილობა

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

ჩემი 3D პრინტერის დაბალი ტოლერანტობის გამო, ზოგი ფხვიერი იყო და სუპერ წებოს დაბინდვა იყო საჭირო, ზოგი კი ძალიან მჭიდრო იყო, მაგრამ გამხნევების დროს გამყარებაში LED- ზე დაჭერით, ეს იყო რეალურად უფრო შესაფერისი ვიდრე სწორი ზომის ხვრელი, რომელსაც გაქირავების ვადა ჰქონდა ერთხელ შეყვანილი.

მავთულის რაოდენობის შესამცირებლად LED- ები გაერთიანდა მატრიცაში 7 -ით 8 -ით, რაც იმას ნიშნავს, რომ 55 LED- ის კონტროლი შესაძლებელია მხოლოდ 13 ქინძისთავით, მე მქონდა ხელით შედგენილი თითოეული ამ კავშირის რუკა, რომელიც სამწუხაროდ დაიკარგა.

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

ეს პროცესი ძალიან შრომატევადი იყო, მე გირჩევთ დაპროექტდეს PCB

ნაბიჯი 5: ელექტრონიკის დიზაინი

ელექტრონიკის დიზაინი
ელექტრონიკის დიზაინი
ელექტრონიკის დიზაინი
ელექტრონიკის დიზაინი
ელექტრონიკის დიზაინი
ელექტრონიკის დიზაინი
ელექტრონიკის დიზაინი
ელექტრონიკის დიზაინი

ჩემი საწყისი გეგმა იყო Arduino მიკროკონტროლერის გამოყენება RTC– ით, მაგრამ მე აირჩია ESP8266 Node MCU D1 დაფაზე, რადგანაც შესაძლებელი იყო დღის შუქის ავტომატური დაზოგვა და WIFI– ზე კონტროლის პოტენციალი.

პინების რაოდენობის შემდგომი შესამცირებლად, მე მქონდა LED- ების სრულყოფილი რაოდენობა, რომ შემეძლო გამომეყენებინა MAX7219 (რომელსაც შეუძლია 64 -მდე LED- ის დამუშავება).

ეს IC ჩვეულებრივ გამოიყენება LED 7 სეგმენტის ეკრანების მართვისთვის, მაგრამ მას ჰქონდა ძალიან მსგავსი შემთხვევა ჩემთან, ანათებდა LED- ების თვითნებურ რაოდენობას მინიმალური ციმციმით, მას აქვს კონტროლირებადი სიკაშკაშეც კი.

მე გადავწყვიტე გამოვიყენო პროტობორდი გაყვანილობისთვის, მაგრამ არწივი გამოსადეგი იყო ნაწილების განთავსებისთვის და გაყვანილობის გასაგებად

მე დავამატე ჩემი დაფის ფაილები, მაგრამ ეს იყო პირველი შემთხვევა, როდესაც ვიყენებ არწივს (და უკვე მოძველებული ვერსია), ამიტომ ისინი მხოლოდ მითითებისთვისაა

ნაბიჯი 6: ელექტრონიკის გაყვანილობა

ელექტრონიკის გაყვანილობა
ელექტრონიკის გაყვანილობა
ელექტრონიკის გაყვანილობა
ელექტრონიკის გაყვანილობა
ელექტრონიკის გაყვანილობა
ელექტრონიკის გაყვანილობა
ელექტრონიკის გაყვანილობა
ელექტრონიკის გაყვანილობა

ეს იყო განმეორებადი მარტივი ნაბიჯი, Eagle- ის სქემატური სქემის მიხედვით, ESP- ისა და LED მატრიცის სათაურების გამოყენება უაღრესად დაეხმარა შეკრებაში.

ანადისა და კათოდის LED სათაურებზე პინ 1 მონიშნული იყო ვერცხლისფერი ბასრით, მათი დიფერენცირება შესაძლებელია 7 – დან 8 – ის ჩათვლით.

ნაბიჯი 7: პროგრამირება

პროგრამირება
პროგრამირება

ვინაიდან ჩვენი დისპლეი არ არის ტრადიციული მატრიცა, მე უნდა ვიპოვო მეთოდი ვიზუალიზაციისათვის რომელი ბიტი უნდა ჩართო რომელიც გაგზავნილია HEX– ში MAX IC– ზე. საბედნიეროდ, მე ვიცი მხოლოდ საკმარისი იმისათვის, რომ პრობლემები შემექმნას და შევქმენი "ექვსკუთხა ოსტატი", რომელიც მეგზურობს, თუმცა ის ნიმუში, რომლის ჩვენებაც მინდოდა, ხელით მოთავსებული გამშვები ყუთებია.

ამას მოჰყვა გადაფასება, რომ ჩემი საათის, წუთისა და წამის ექვსკუთხედი შეიძლება კომბინირებული იყოს ბიტური ან OR– ით, რათა გამოეგზავნა საბოლოო ექვსკუთხედი ბრძანება max7219– ზე გასაგზავნად, მათ შორის მცირე ანიმაცია, რომელიც წამებში დავამატე, რათა დავრწმუნდე დაფაზე არ იყო გაყინული;

ასე რომ, თითქმის დასასრულს. და დროა სხვა გადაწყვეტილებისთვის, რომელიც არც ისე კარგად დაბერებულა.

ESP– ის კოდი არის LUA– ში, დღეს მე გირჩევთ გამოიყენოთ arduino IDE უკეთესი დოკუმენტაციისთვის და ძლიერი პაკეტის ბიბლიოთეკისთვის, იმ დროს ESP საზოგადოება ჯერ კიდევ მომწიფდა და მე ავირჩიე LUA, როგორც ენა ამ პროექტისთვის.

მე მივიღე საეჭვო გადაწყვეტილება, რომ რეგულარულად დამეგდო google სერვერები დროის წასაკითხად. ამის შემდეგ საჭიროა RTC- ს დრიფტის შესამცირებლად, ეს მუშაობს, მაგრამ თქვენ უკეთესი იქნება გამოიყენოთ რეალური დროის API.

halfSec = 0 საათი = 0 წუთი = 0 წამი = 0

დაბალი ინტენსივობა = 0

მაღალი ინტენსივობა = 9

ადგილობრივი SSID = "Wifi"

ადგილობრივი SSID_PASSWORD = "პაროლი"

ფუნქციის დრო () -ინტერნეტთან დაკავშირება მიმდინარე დროისა და თარიღის მისაღებად

თუ wifi.sta.getip () მაშინ ადგილობრივი conn = net.createConnection (net. TCP, 0) conn: დაკავშირება (80, "google.com")

conn: on ("კავშირი", ფუნქცია (conn, payload) conn: send ("HEAD/HTTP/1.1 / r / n".. "მასპინძელი: time.is / r / n".. "მიღება: */ *\ r / n".. " მომხმარებლის აგენტი: Mozilla/4.0 (თავსებადია; esp8266 Lua;) ".." / r / n / r / n ") დასასრული)

conn: on ("მიღება", ფუნქცია (conn, payload) -print (payload) conn: close () local p = string.find (payload, "GMT") -იპოვეთ დროისა და თარიღის სტრიქონი ინტერნეტიდან დატვირთვაში, შეცვალეთ დროის ზონაში თუ p ~ = ნულოვანი-ამოიღეთ რიცხვები, რომლებიც შეესაბამება საათს, წუთს, მეორეს, დღეს, თვეს საათს = ტონუმბერს (სიმებიანი. ქვედა (დატვირთვა, p-9, p-8)) წუთი = ტუმბურას (სიმებიანი. ქვედა (დატვირთვა, გვ 6, p-5)) მეორე = ტონი (სიმებიანი. ქვედა (დატვირთვა, p-3, p-2)) addHour ()-მძიმე კოდირებული BST (ბრიტანული ზაფხულის დრო) დღის შუქი = (მეორე%6)*2 -ბეჭდვა (halfSec) სხვაგვარად დაბეჭდვა ("ვებ განახლება ვერ მოხერხდა!") დასასრულის დასრულება -ფუნქცია) -დასასრულის "მიღება" ღონისძიების დამმუშავებლის

conn: on ("გათიშვა", ფუნქცია (conn, payload) conn = nil payload = nil end) ბოლოს დაბეჭდვა ("ჯერ არ არის wifi") დასასრული

ფუნქცია borTable (a, b,…) -ორმხრივი ან ცხრილები ერთად

თუ arg [1] მაშინ b = borTable (b, unpack (arg)) დასრულდება ადგილობრივი z = {} i- სთვის, v ipairs- ში (a) გააკეთეთ ცხრილი. ჩადეთ (z, bit.bor (v, b )) ბოლოს დაბრუნება z დასასრული

ფუნქცია bxorTable (a, b,…) -ორმხრივი ან ცხრილები ერთად

თუ arg [1] მაშინ b = bxorTable (b, unpack (arg)) დასრულდება ადგილობრივი z = {} i, v ipairs (a) ცხრილის გაკეთება. ჩასმა (z, bit.bxor (v, b )) ბოლოს დაბრუნება z დასასრული

ფუნქცია addSecond ()

მეორე = მეორე+1 თუ მეორე> = 60 მაშინ მეორე = 0 წუთი = წუთი+1 თუ წუთი> = 60 მაშინ წუთი = 0 დამატება საათი () დასასრული დასასრული

ფუნქცია addHour ()

საათი = საათი+1 თუ საათი> = 24 მაშინ საათი = 0 დასასრული თუ საათი == 2 ან საათი == 16 მაშინ max7219.setIntensity (დაბალი ინტენსივობა) დასრულდება თუ საათი == 8 ან საათი == 18 მაშინ max7219.setIntensity (მაღალი ინტენსივობა) ფუნქციის დასრულების განახლება () ადგილობრივი secGap = 6 ადგილობრივი minGap = 3 ადგილობრივი horGap = 1 ადგილობრივი წამი = {{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x03}, {0x00, 0x00,, 0x00, 0x00, 0x02, 0x01, 0x03}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x01, 0x03}, {0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x01, 0x03}, {0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x01, 0x03}, {0x00, 0x00, 0x01, 0x01, 0x01, 0x03, 0x01, 0x03}, {0x00, 0x01, 0x01, 0x01, 0x01, 0x03, 0x01, 0x03 }, {0x01, 0x01, 0x01, 0x01, 0x01, 0x03, 0x01, 0x03}}; ადგილობრივი მინ = {{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00}, {0x00, 0x00, 0x00, 0x02, 0x02, 0x00, 0x02, 0x00}, {0x00, 0x00, 0x02, 0x02, 0x02, 0x00, 0x02, 0x02, 0x00}, 0x00, 0x00, 0x00, 0x00, 0x0, 0x02, 0x02, 0x00, 0x02, 0x00}, {0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x02, 0x00}, {0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x02, 0x10}, {0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x12, 0x10}, {0x02, 0x02, 0x02, 0x02, 0x02, 0x10, 0x12, 0x10}, {0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x2 } {0x02, 0x02, 0x02, 0x12, 0x12, 0x10, 0x12, 0x10}, {0x02, 0x02, 0x12, 0x12, 0x12, 0x10, 0x12, 0x10}, {0x02, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x10}, {0x12, 0x12, 0x12, 0x12, 0x12, 0x10, 0x12, 0x10}, {0x12, 0x12, 0x12, 0x12, 0x12, 0x30, 0x12, 0x10}, {0x12, 0x12, 0x12, 0x12, 0x32, 0x30, 0x12, 0x10}, {0x12, 0x12, 0x12, 0x32, 0x32, 0x30, 0x12, 0x10}, {0x12, 0x12, 0x32, 0x32, 0x32, 0x30, 0x12, 0x10}, {0x12, 0x32, 0x32, 0x32, 0x32, 0x30, 0x12, 0x10}, {0x32, 0x32, 0x32, 0x32, 0x32, 0x30, 0x12, 0x10}}; ადგილობრივი hor = {{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x00}, {0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x04, 0x00}, {0x00, 0x00, 0x00, 0x04, 0x04, 0x04, 0x04, 0x004, 0x004, 0x004, 0x004, 0x004, 0x004, 0x00}, 0x00, 0x04, 0x04, 0x04, 0x04, 0x00}, {0x00, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x00}, {0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x00}, {0x04 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08}, {0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x0C, 0x08}, {0x04, 0x04, 0x0x }, {0x04, 0x04, 0x04, 0x04, 0x0C, 0x0C, 0x0C, 0x08}, {0x04, 0x04, 0x04, 0x0C, 0x0C, 0x0C, 0x0C, 0x08}, {0x04, 0x04, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x08}, {0x04, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x08}, {0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x08}, {0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x48}, {0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x4C, 0x48}, {0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x4C, 0x4C, 0x48}, {0x0C, 0x0C, 0x0C, 0x0C, 0x4C, 0x4C, 0x4C, 0x48}, {0x0C, 0x0C, 0x0C, 0x4C, 0x4C, 0x4C, 0x4C, 0x48}, {0x0C, 0x0C, 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x48}, {0x0C, 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x48}, {0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x48}}; -ბეჭდვა (საათი, წუთი, წამი)

-მაგიდა იწყება 0 – ზე, ანუ 1 – ზე, როგორც ამჟამად წამში [0] = ნული)

max7219.write ({animate (borTable (sec [1+ (second/secGap)], min [1+ (minute/minGap)], hor [1+ (hour/horGap)]))))

დასასრული -ფუნქცია

wifi.setmode (wifi. STATION)

wifi.sta.config (SSID, SSID_PASSWORD) wifi.sta.autoconnect (1)

-კონფიგურაცია max7219

max7219 = მოითხოვს ("max7219") max7219.setup ({numberOfModules = 1, slaveSelectPin = 8, ინტენსივობა = მაღალი ინტენსივობა})

-ძირითადი პროგრამა

checkOnline = tmr.create ()

tmr.alarm (0, 180000, 1, დრო)

tmr.alarm (1, 1000, 1, addSecond)

tmr.alarm (2, 500, 1, განახლება)

ფუნქცია ანიმაციური (ჯერ კიდევ)

ადგილობრივი ჩარჩოები = {{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00}, {0x00 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00}, {0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, {0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}; halfSec = halfSec+1 თუ halfSec> = 12 მაშინ halfSec = 0 დასასრული -ბეჭდვა (halfSec) დაბრუნება bxorTable (ჩარჩოები [halfSec+1], ჯერ კიდევ) დასასრული

ნაბიჯი 8: საცხოვრებელი

საბინაო
საბინაო
საბინაო
საბინაო
საბინაო
საბინაო

ახლა დროა გამოავლინოთ თქვენი წარმოუდგენელი ოსტატობა და განათავსოთ პროექტი.

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

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

ნაბიჯი 9: დასკვნითი შენიშვნები

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

ამ პროექტის შემუშავებასა და დაწერას შორის წლების განმავლობაში ველოდი, რომ ვნახავდი თვითნებური LED ეკრანის მაგალითებს 3D ბეჭდვის გამოყენებით, მაგრამ RGB ზოლების შემცირებამ უმეტესად ალტერნატივის საჭიროება მოხსნა.

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

Გაუმარჯოს

გირჩევთ: