Სარჩევი:

Pipboy აშენდა ჯართიდან: 26 ნაბიჯი (სურათებით)
Pipboy აშენდა ჯართიდან: 26 ნაბიჯი (სურათებით)

ვიდეო: Pipboy აშენდა ჯართიდან: 26 ნაბიჯი (სურათებით)

ვიდეო: Pipboy აშენდა ჯართიდან: 26 ნაბიჯი (სურათებით)
ვიდეო: FALLOUT SHELTER APOCALYPSE PREPARATION 2024, ივლისი
Anonim
Image
Image
პიპბოის გულის აგება
პიპბოის გულის აგება

ეს არის ჩემი სამუშაო Pipboy, რომელიც აგებულია ავტოფარეხიდან შემთხვევითი ნაგვისგან და ჩემი ელექტრონული კომპონენტების მარაგის დარბევა. მე აღმოვაჩინე ეს რთული მშენებლობა და დამჭირდა რამოდენიმე თვის შრომა, ასე რომ, მე არ მივაკუთვნებ მას კატეგორიას დამწყებთათვის სრულყოფილ პროექტად. საჭირო უნარ -ჩვევები მოიცავს პლასტმასის და ხის მუშაობას, ელექტრონიკას და კოდირებას. სხეული აგებულია პლასტმასის ჯართის სხვადასხვა ნაჭრებისგან, რომლებიც ერთმანეთზეა დაჭრილი და შედუღებული. მე გამოვიყენე Raspberry Pi 0, როგორც მიკროკონტროლი, ეკრანის სათაური დამონტაჟებულია GPIO ქინძისთავების ნაწილზე. დარჩენილი ქინძისთავები გამოიყენება LED- ების მართვისთვის და ღილაკების/კონტროლის დასაკავშირებლად. პროექტის დასასრულებლად დავწერე "პიპბოის" სტილის ინტერფეისი რამდენიმე დემო ეკრანით პითონში.

პროექტის მიზნები იყო:

  • მე უნდა ვმუშაობდი - ანუ საჭიროა რეალურად გვქონდეს ჩვენება, რომელიც აკეთებდა ნივთებს
  • მინდოდა მას ჰქონოდა "აკრიფეთ" სხვადასხვა ეკრანის ასარჩევად, რადგან ის ყოველთვის გამოირჩეოდა ჩემთვის, როგორც ინტერფეისის ხატი ნაწილი Fallout- ში
  • მთელი მშენებლობა უნდა დასრულებულიყო იმ ნივთების გამოყენებით, რაც მე უკვე მქონდა ავტოფარეხში ან ჩემს ოფისში (ეს ბოლომდე მიღწეული არ იყო, მაგრამ მე ახლოს მივედი - ამის 90% –ზე მეტისმეტად იქნა ნაპოვნი ნივთები ან საგნები, რომლებიც უკვე მქონდა დაგებული)
  • საჭირო იყო ტარება

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

მარაგები

მარაგები

  • ფართო ჭაბურღილი მილები (მაგალითად, სადრენაჟე მილის ნაჭერი)
  • პლასტმასის ჯართი (როგორც სხეულის შესაქმნელად, ასევე დეკორატიული მიზნებისათვის)
  • პატარა კონტეინერი
  • ქაფის იატაკის ხალიჩა
  • ჟოლო პი
  • 3.5”ეკრანი
  • KY040 მბრუნავი კოდირება
  • 3x LED ნათურები
  • 2x ღილაკი
  • Powerbank
  • გაყვანილობა
  • ხრახნები, წებოები, საღებავები, შემავსებელი და ა

ინსტრუმენტები

  • დრემელი
  • მრავალფუნქციური ინსტრუმენტი საჭრელი და მოსახვეწი დანართებით
  • საბურღი
  • ფაილები
  • გასაყიდი რკინა
  • ცხელი წებოს იარაღი
  • ხრახნიანი მძღოლი (ები)
  • Ბასრი დანა
  • დაინახა

ნაბიჯი 1: პიპბოის გულის აგება

პიპბოის გულის აგება
პიპბოის გულის აგება

პირველი რაც უნდა გამეკეთებინა იყო იმის უზრუნველყოფა, რომ შემეძლო დისპლეის და მიკროკონტროლის მიღება ისეთი ფაქტორით, რომელთანაც შემეძლო მუშაობა. მე მქონდა 3.5 დიუმიანი ეკრანი, რომელიც ქუდივით იდო ჟოლოს PI- ის GPIO ქინძისთავებზე, ამიტომ გადავწყვიტე გამომეყენებინა იგი. მე დავამწყვიტე ის ჟოლოს Pi 0 -თან და დავრწმუნდი, რომ ის მუშაობს კარგად, არის რამდენიმე ნაბიჯი იმისთვის, რომ Linux- მა აღიაროს ეკრანი, რომლის გავლაც თქვენ გჭირდებათ.

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

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

აქ არის რამოდენიმე სასარგებლო ბმული ამისათვის:

www.raspberrypi.org/forums/viewtopic.php?t…

www.raspberrypi.org/forums/viewtopic.php?t…

www.raspberrypi.org/forums/viewtopic.php?f…

learn.sparkfun.com/tutorials/serial-periph…

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

ნაბიჯი 2: მუყაოს პროტოტიპი

მუყაოს პროტოტიპი
მუყაოს პროტოტიპი
მუყაოს პროტოტიპი
მუყაოს პროტოტიპი
მუყაოს პროტოტიპი
მუყაოს პროტოტიპი

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

ნაბიჯი 3: პროტოტიპიდან შაბლონამდე

პროტოტიპიდან შაბლონამდე
პროტოტიპიდან შაბლონამდე
პროტოტიპიდან შაბლონამდე
პროტოტიპიდან შაბლონამდე
პროტოტიპიდან შაბლონამდე
პროტოტიპიდან შაბლონამდე

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

ნაბიჯი 4: დაამატეთ კეისი ეკრანისა და Pi- სთვის

დაამატეთ ქეისი ეკრანისა და პიისთვის
დაამატეთ ქეისი ეკრანისა და პიისთვის
დაამატეთ ქეისი ეკრანისა და პიისთვის
დაამატეთ ქეისი ეკრანისა და პიისთვის

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

ნაბიჯი 5: გაიმეორეთ საკონტროლო პანელისთვის

გაიმეორეთ საკონტროლო პანელისთვის
გაიმეორეთ საკონტროლო პანელისთვის
გაიმეორეთ საკონტროლო პანელისთვის
გაიმეორეთ საკონტროლო პანელისთვის
გაიმეორეთ საკონტროლო პანელისთვის
გაიმეორეთ საკონტროლო პანელისთვის

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

ნაბიჯი 6: გაჭრა მილები

ამოიღეთ მილები
ამოიღეთ მილები

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

ნაბიჯი 7: ბეზელი

ბეზელი
ბეზელი
ბეზელი
ბეზელი

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

ნაბიჯი 8: ბატარეის ტესტი

ბატარეის ტესტი
ბატარეის ტესტი
ბატარეის ტესტი
ბატარეის ტესტი
ბატარეის ტესტი
ბატარეის ტესტი

ამ მომენტში, მე გადავწყვიტე, როგორ გამეკეთებინა ეს მუშაობა ქსელის მიწოდებული USB– სგან დამოუკიდებლად. მე გამოვცადე სხვადასხვა ბატარეები და აღმოვაჩინე, რომ Raspberry Pi + დისპლეი ფაქტობრივად არ მოიხმარდა ამდენ ძალას და ეს იყო ძალიან ბედნიერი, რომ ვმუშაობდი თუნდაც ჩემს ერთ პატარა ბატარეაზე (სავაჭრო შოუდან უფასოდ). ეს ნამდვილად გაუმართლა, რადგან პაკეტი მშვენივრად ჯდება შენობის შიგნით არსებულ უფსკრულში (ფოტოები მოგვიანებით). ახლა ჩვენ შეგვიძლია დროებით დავამაგროთ სხეულის ძირითადი კომპონენტები და მივიღოთ მისი პირველი საცდელი ტესტირება მკლავზე!

ნაბიჯი 9: ტესტირების მორგება

ტესტირების მორგება
ტესტირების მორგება
ტესტირების მორგება
ტესტირების მორგება
ტესტირების მორგება
ტესტირების მორგება

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

ნაბიჯი 10: დაამატეთ კონტროლი და დეტალები

დაამატეთ კონტროლი და დეტალები
დაამატეთ კონტროლი და დეტალები
დაამატეთ კონტროლი და დეტალები
დაამატეთ კონტროლი და დეტალები
დაამატეთ კონტროლი და დეტალები
დაამატეთ კონტროლი და დეტალები

მინდოდა წითელი/ყვითელი/მწვანე LED- ების სერია ლიანდაგის შესაქმნელად, ასევე მბრუნავი ციფერბლატი და მინიმუმ 2 ღილაკი. ეს ყველაფერი მოთავსებული იყო პანელის განყოფილებაში - უბრალოდ ყველა სწორი ხვრელის გაბურღვის შემთხვევა. მე ასევე დავიწყე პლასტმასის ჯართის მცირე ნაწილის დამატება (ძირითადად ნაკრები), რომ დაამატოთ დეტალები და მეტი ინტერესი სხეულსა და მართვის პანელზე.

ნაბიჯი 11: Bezel Rebuild No3

ბეზელის აღდგენა No3
ბეზელის აღდგენა No3
ბეზელის აღდგენა No3
ბეზელის აღდგენა No3
ბეზელის აღმშენებლობა No3
ბეზელის აღმშენებლობა No3

როგორც უკვე აღვნიშნე, მე ვიბრძოდი ბეზესთვის ამ მშენებლობისთვის და რამდენჯერმე აღვადგინე. ეს არის მესამე გამეორება, რომლითაც დავრჩი. ჩემი მიდგომა არის დაფის გამოყენება და 2 განსხვავებული ფორმის მოჭრა, ერთი მეორეს მოაზროვნე, შემდეგ კი ერთმანეთზე მიმაგრებული (და დაჭიმული) შუა სურათის შესაქმნელად. ეს ფორმები საშუალებას აძლევდა კვადრატული ჩვენება იჯდეს შიგნით და შემდეგ მან ეკავა ეკრანი კონტეინერის შიგნით (როგორც სურათი 3). ამან მომცა საკმარისი მასალა იმისათვის, რომ გამომეყენებინა 4 ძალიან პატარა ხრახნი, როგორც გამაგრება - მე გამოვიყენე ეს მყარად, რათა გამეკეთებინა კორპუსის შიგნით და ის თავის მხრივ ეკრანს სტაბილურად და უსაფრთხოდ შეინარჩუნებდა. რეტროსპექტში მე ვიპოვი ეკრანს, რომელსაც გააჩნდა სამონტაჟო რამდენიმე ღირსეული ვარიანტი (ან ვიყენებდი 3D პრინტერს - რომელიც იმ დროს არ მქონდა).

ნაბიჯი 12: ელექტრონიკის პროტოტიპირება

ელექტრონიკის პროტოტიპირება
ელექტრონიკის პროტოტიპირება
ელექტრონიკის პროტოტიპირება
ელექტრონიკის პროტოტიპირება

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

დიზაინი აქ საკმაოდ სწორია, ჩვენ გვაქვს;

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

ამან მომცა 3 შუქდიოდური დიაპაზონი, მბრუნავი დამშიფრავი, რომ გადატრიალებულიყო პიპბოის ეკრანებზე და 3 ღილაკი მოქმედებათა მართვისთვის (ერთი მბრუნავ კოდირებად და 2 ცალკე სადენიანი). ეს იყო მხოლოდ ის, რისი მორგებაც შემეძლო და როდესაც ეკრანი იკავებს რამოდენიმე ქინძისთავს, საკმაოდ ბევრს მოიხმარს იმას, რაც თქვენ გაქვთ სტანდარტული Pi GPIO განლაგებით. თუმცა ეს კარგი იყო ჩემი მიზნებისთვის.

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

შენიშვნა მბრუნავი კოდირების შესახებ. მე გავატარე რამოდენიმე დრო საკუთარი Rotary Encoder სახელმწიფო აპარატის წერაზე, რათა თვალყური ადევნო GPIO- ს მაღალ/დაბალ ცვლილებებს და დავათვალიერო ისინი მბრუნავ პოზიციებზე. მე შერეული წარმატება მქონდა აქ, მე მივიღე ის მუშაობაში "უმეტეს" შემთხვევებში, მაგრამ ყოველთვის არის ზღვარი შემთხვევებზე და (დე) გადახტომაზე და ა.შ. მისი შორს, ბევრად უფრო ადვილია მზა ბიბლიოთეკის გამოყენება და არის შესანიშნავი, რომელიც ხელმისაწვდომია პითონისთვის. მე საბოლოოდ გამოვიყენე ეს, რადგან მან მომცა საშუალება გავამახვილო ყურადღება შენობის მხიარულ ნაწილზე, ვიდრე გავატარო ასაკობრივი საკითხების გამართვის საკითხები. ამის შესახებ ყველა დეტალი შედის წყაროს კოდში.

თუ თქვენ ხართ ახალი Raspberry Pi, GPIO და ელექტრონიკა, მე გირჩევთ შემდეგ გაკვეთილებს, რომლებიც გაგიმხელთ ყველაფერს, რაც გჭირდებათ ზემოაღნიშნული განლაგების გასაკეთებლად;

projects.raspberrypi.org/en/projects/physi…

thepihut.com/blogs/raspberry-pi-tutorials/…

ნაბიჯი 13: ელექტრონიკის გადატანა სხეულში

ელექტრონიკის გადატანა სხეულში
ელექტრონიკის გადატანა სხეულში
ელექტრონიკის გადატანა სხეულში
ელექტრონიკის გადატანა სხეულში
ელექტრონიკის გადატანა სხეულში
ელექტრონიკის გადატანა სხეულში

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

იმ ღილაკებზე, რომლებიც მე შევაერთე რამდენიმე გაფართოების მავთულხლართზე და გამოვიყენე მავთულის გადასაბმელი ბოლოების იზოლაციისთვის, ამან მომცა საშუალება შემეკრიბა და დამეშალა სხეულიდან (მაგ. ტესტირებისთვის, შემდეგ ხატვისთვის და ა.შ.). Rotary Encoder– ს უკვე ჰქონდა ქინძისთავები, რომლებსაც შეეძლოთ დუპონტის კონექტორების მიღება, ამიტომ მე მჭირდებოდა სწორი სიგრძის მავთულის გაკეთება.

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

გაითვალისწინეთ, რომ ჩემი შედუღება საშინელია, ამიტომ მე შევინახე ეს მარტივი და თავიდან ავიცილე ყველაფერი ძალიან დეტალური/ჯარიმა. საბოლოო სურათზე თქვენ ხედავთ, რომ მე ასევე მქონდა ძალიან პატარა დაფები (5x5), მე გამოვიყენე ერთი მათგანი, რომელიც დამონტაჟებულია შიგნით, რათა უზრუნველვყო პანელი, რომელიც ყველაფერს GPIO– სთან/მისგან აკავშირებს. განსაკუთრებით ეს გამოსადეგი იყო საერთო სახმელეთო სარკინიგზო მაგისტრალის შესაქმნელად, რომლის გამოყენებაც შემეძლო და თავიდან ავიცილო ბევრი მიწის მავთული, რომელიც მიემართებოდა Pi- სკენ.

შემდეგ მე დავჭრა სხვადასხვა კონტეინერში კონტეინერში, რათა მავთულები მივაწოდო Pi- ს და შევაერთო GPIO– სთან. ამ დიზაინმა მომცა საშუალება დამემთავრებინა ყველაფერი საჭიროებისამებრ (რაც რამდენჯერმე გავაკეთე მშენებლობის დასრულებისას).

ნაბიჯი 14: მორგება სრულყოფილად

Fine Tuning the Fit
Fine Tuning the Fit
Fine Tuning the Fit
Fine Tuning the Fit

ამ დროს მე შევეჯახე "მორგებულ" საკითხებს. უპირველეს ყოვლისა, დუპონტის კონექტორების გამოყენება გაყვანილობისთვის ნიშნავდა იმას, რომ ძნელი იყო მათი მიმაგრება ქინძისთავებზე ეკრანის ქუდით, რადგან არ იყო საკმარისი სიმაღლის გასასვლელი. მე ეს გადავწყვიტე ყიდვით (ეს არის ერთ – ერთი იმ რამოდენიმე რამ, რაც მე რეალურად შევიძინე ამ პროექტისათვის) პატარა GPIO პინ გაფართოება ისე, რომ მე შემეძლოს ეკრანის ქუდი მაღლა დამჯდარიყო და დავტოვო ადგილი დუპონტის კონექტორების გამოყენებით დარჩენილი GPIO ქინძისთავების შესასვლელად.

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

ნაბიჯი 15: Retro Up Rotary Encoder

Retro Up Rotary Encoder
Retro Up Rotary Encoder

მბრუნავი კოდირები ხშირად მოდის (ისევე როგორც ჩემი) ლამაზი და ბრწყინვალე თანამედროვე "hi fi" სტილის სახელურით. ეს იყო სრულიად არაფრისმთქმელი აღნაგობისათვის, ამიტომ სხვა რამის მოფიქრება მომიწია. ნაწილების შემთხვევით ყუთში წავაწყდი ძველ კბილს საბურღიდან, რომელიც დიდი ხნის წინ გავტეხე. ეს კარგად გამოიყურებოდა, მაგრამ არ ჯდებოდა მბრუნავი კოდირებით. აქ ჩემი გამოსავალი იყო ვცადო კედლის სხვადასხვა შტეფსელი, სანამ არ ვიპოვე ის, რომელიც მოთავსდა მბრუნავ ციფერბლატს, შემდეგ კი მომეჭრა ის ფორმაში, რათა მე გამომეყენებინა იგი როგორც "შიდა საყელო", რათა საბურღი კოლოფი მბრუნავ კოდირებაზე დამედო, როგორც უფრო შესაფერისი თემა კონტროლი.

ნაბიჯი 16: შიდა უგულებელყოფა

შიდა უგულებელყოფა
შიდა უგულებელყოფა
შიდა უგულებელყოფა
შიდა უგულებელყოფა

მეტი ქაფი იატაკის ფილები! ამჯერად, მე მათ გამოვიყენებ რბილი უგულებელყოფის შესაქმნელად, რათა ის უფრო კომფორტული იყოს (ძალიან ფხვიერი გარეშე). ქაფისგან ხვრელის ამოჭრისას მე ასევე შევძელი შთანთქმა ნაწილი "ერთიანად", რომელსაც კონტეინერი Pi აკეთებს. საერთო ჯამში ეს ბევრად უფრო ტარებადი გახდა. ამ ფოტოებში არ არის ნაჩვენები, მაგრამ მე გავზარდე იგი ძირითად სხეულზე ოდნავ უფრო დიდი, ასე რომ ის ჩანს ბოლოებში, რომელიც შემდგომში დავხატე და ამ ყველაფერმა ხელი შეუწყო ცოტაოდენი კონტრასტის და ინტერესის დამატებას მზა ნივთზე.

ნაბიჯი 17: დეტალების დამატება

დეტალების დამატება
დეტალების დამატება
დეტალების დამატება
დეტალების დამატება

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

ნაბიჯი 18: სხეულის შეღებვა და დასრულება

სხეულის შეღებვა და დასრულება
სხეულის შეღებვა და დასრულება
სხეულის შეღებვა და დასრულება
სხეულის შეღებვა და დასრულება
სხეულის შეღებვა და დასრულება
სხეულის შეღებვა და დასრულება

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

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

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

ნაბიჯი 19: კოდირება

კოდირება
კოდირება

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

მე ვირჩევ ამის დაწერას პითონში Raspberry Pi, GPIO და ა.შ. შესანიშნავი მხარდაჭერის გამო. პითონი საკმაოდ დაბალია ჩემს მიერ ნაცნობი ენების სიაში, ასე რომ ეს იყო ჩემთვის დიდი სასწავლო მრუდი და კოდის დიდი ნაწილი არეული შედეგად. ამას დროთა განმავლობაში განვაახლებ, რადგან მე ბოლომდე არ დავასრულე ყველაფერი, რისი გაკეთებაც მინდოდა აქ - მაგრამ ის საკმაოდ ახლოსაა გასაზიარებლად, რადგან ყველა ძირითადი კონცეფცია არსებობს.

UI კოდის ჩემი დიზაინი გონივრულად პირდაპირ არის, არის მთავარი პითონის სკრიპტი, რომელიც ადგენს ეკრანს, ახდენს GPIO- ს კონფიგურაციას, ატვირთავს ეკრანებს და შედის უსასრულო განახლების მარყუჟში, ელოდება მომხმარებლის მოვლენებს და საჭიროების შემთხვევაში აახლებს ეკრანს. გარდა ამისა, არსებობს სხვადასხვა დამხმარე სკრიპტები, რომლებიც გვეხმარება UI ეკრანების დროულად გენერირებაში.

გამოყენებული ძირითადი ბიბლიოთეკები:

  • pygame: მე ვიყენებ მას, როგორც ძრავას UI– ს გასაშვებად, რადგანაც ეს მაძლევს საშუალებას დავხატო თვითნებური გრაფიკა, ვიმუშაო სურათებით, შრიფტებით, ვიყო სრულ ეკრანზე და ა.
  • pyky040: ეს უზრუნველყოფს მბრუნავი ციფერბლატის დამუშავებას და დამიზოგა ბევრი დრო (დიდი მადლობა რაფაელ იანსის ამის გამოქვეყნებისათვის.
  • RPi. GPIO: კარგად GPIO მართვისთვის, მე ვითამაშებდი რამდენიმე ვარიანტს აქ, მაგრამ ამან მომცა მოქნილობის სწორი დონე, განსაკუთრებით ისეთ საკითხებში, როგორიცაა სათადარიგო GPIO- ს გამოყენება, როგორც სხვა 3.3 ვ, მბრუნავი კოდირების მართვისთვის და ა.
  • ხმაური: პერლინის ხმაურის შესაქმნელად, ნება მომეცით შევქმნა შემთხვევითი ტალღის ფორმა რადიო ეკრანზე, რომელიც უფრო ბუნებრივად გამოიყურება
  • რიგი: მე წავაწყდი იმედგაცრუებულ შეცდომას, როდესაც მოვლენების დრო მბრუნავი კოდირებით იბრუნებს და LCD ეკრანის (ძალიან) ნელი განახლების სიჩქარეა. საბოლოო ჯამში, როგორც ეს მოვაგვარე, ეს იყო შემომავალი მოვლენების მობრუნება მბრუნავი კოდირებისგან და მათი ამოღება სათითაოდ, როდესაც ეკრანი განახლდებოდა.
  • os, sys, threading, დრო: ყველა გამოიყენება სტანდარტული პითონის ფუნქციებისათვის

შენიშვნა ეკრანის დამუშავების დიზაინზე. ეკრანები განისაზღვრება, როგორც კოდში არსებული სახელების სია. სიის თითოეულ ჩანაწერს შეიძლება ჰქონდეს მასთან დაკავშირებული-p.webp

ამ ფაილების შინაარსი წარმოიქმნება სხვაგან (ხელით ან სხვა სკრიპტებით), რომელთა გამომუშავება ინახება როგორც-p.webp

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

თუ ანალოგია გვეხმარება, ჩათვალეთ ინტერფეისის დიზაინი, როგორც უკიდურესად უხეში და მარტივი ვებ ბრაუზერი - თითოეული "ეკრანი" მართლაც უბრალო ვებგვერდს ჰგავს, რომელიც შეიძლება შედგებოდეს მხოლოდ ერთი png, ერთი txt ფაილის ან ორივეს კომბინაციისგან. მათი შინაარსი დამოუკიდებელია და მხოლოდ მომხმარებლის ინტერფეისით არის დახატული, როგორც ბრაუზერი დახატავს ვებ გვერდს.

აქ მოცემულია ძირითადი ბიბლიოთეკების ბმულები, რომლებიც აქ გამოვიყენე:

www.pygame.org/news

pypi.org/project/pyky040/

pypi.org/project/noise/

ნაბიჯი 20: სტატისტიკის ეკრანი

სტატისტიკის ეკრანი
სტატისტიკის ეკრანი

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

ნაბიჯი 21: ინვენტარის ეკრანი

ინვენტარის ეკრანი
ინვენტარის ეკრანი

რაღაც, რაც ყოველთვის სასარგებლოა Pi პროექტებთან, არის ძირითადი ინფორმაციის ჩვენების საშუალება, როგორიცაა IP მისამართი, DHCP'd და ა.შ. მე დავწერე პატარა Linux სკრიპტი ამ ინფორმაციის შესაგროვებლად და უბრალოდ გადამისამართება სათანადოდ დასახელებულ ტექსტურ ფაილზე (.txt), რომელსაც UI სისტემა იღებს და აჩვენებს. ამ გზით, თუ მე ოდესმე სხვა ადგილას ვიქნები, შემიძლია გავანთავისუფლო სკრიპტი და ავიღო ახალი.txt ფაილი განახლებული IP მისამართით და ა.

ნაბიჯი 22: რუქის ეკრანი

რუქის ეკრანი
რუქის ეკრანი

ეს ეკრანი იყო ერთ -ერთი ყველაზე რთული ეკრანი, რომელზეც მუშაობდა. Raspberry Pi 0 არ მოყვება GPS მოდულს, მაგრამ მე მინდოდა, რომ რუქას ჰქონოდა მოქმედების ადგილი, სადაც იყო Pi. ჩემი გამოსავალი არის ცალკე სკრიპტი, რომელიც იზიდავს Pi IP მისამართს, იყენებს https://ipinfo.io სავარაუდო ადგილმდებარეობის მოსაძებნად. JSON პასუხი იწერება და შემდეგ მე ვაქცევ კოორდინატებს, ასე რომ შემიძლია ჩამოვაგდო openstreetmap.org ფილა დაახლოებით მდებარეობისთვის.

კრამიტი ჩამოდის მრავალ ფერში, მაგრამ მინდოდა მწვანე მასშტაბის გამოსახულება ემთხვეოდა პიპბოის გარეგნობას და ვერ ვიპოვე ზუსტად ასეთი, ამიტომ დავწერე მწვანე მასშტაბის ფილტრი პითონში ფერების გადასაღებად openstreetmap ფილაზე და შემდეგ ახალი სურათის ქეშირება-p.webp

ზემოაღნიშნული პროცესის დროს ტექსტური ფაილი იქმნება სავარაუდო მდებარეობით და კოორდინატებით, ხოლო რუქის ფილა იქმნება როგორც png. Pipboy UI იზიდავს ორივე ამ ფაილს და გადაფარავს შინაარსს, რათა შექმნას რუქის ეკრანი, რომელიც მუშაობს (IP მისამართის გარჩევადობის სიზუსტით ადგილმდებარეობის მიხედვით).

ნაბიჯი 23: მონაცემთა ეკრანი

მონაცემთა ეკრანი
მონაცემთა ეკრანი

ეს არის მხოლოდ სატესტო ბარათი (სხვა პითონის სკრიპტით გენერირებული და გამომავალი-p.webp

ნაბიჯი 24: რადიო ეკრანი

რადიო ეკრანი
რადიო ეკრანი

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

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

ნაბიჯი 25: საბოლოო აზრები

Image
Image
დასკვნითი ფიქრები
დასკვნითი ფიქრები

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

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

ნაბიჯი 26: გახსენით კოდი Github– ზე

გახსენით კოდი Github– ზე
გახსენით კოდი Github– ზე

მე საბოლოოდ მოვახერხე Github– ზე კოდის გახსნა. ის ხელმისაწვდომია ამ ბმულზე:

გირჩევთ: