Სარჩევი:

Space Invaders საათი (ბიუჯეტზე!): 6 ნაბიჯი (სურათებით)
Space Invaders საათი (ბიუჯეტზე!): 6 ნაბიჯი (სურათებით)

ვიდეო: Space Invaders საათი (ბიუჯეტზე!): 6 ნაბიჯი (სურათებით)

ვიდეო: Space Invaders საათი (ბიუჯეტზე!): 6 ნაბიჯი (სურათებით)
ვიდეო: ჯეიმს კამერონი — გენიოსი, რომელმაც შექმნა რევოლუცია კინოში | ყველაფერი "ავატარისა" რეჟისორის შესახებ 2024, ივლისი
Anonim
Image
Image
შეაგროვეთ ნაწილები
შეაგროვეთ ნაწილები

ცოტა ხნის წინ ვნახე GeckoDiode– ს მაგარი შენობა და მაშინვე მომინდა საკუთარი თავის აშენება. ინსტრუქცია არის Space Invaders Desktop Clock და გირჩევთ, რომ წაიკითხოთ ამის წაკითხვის შემდეგ.

პროექტი თითქმის მხოლოდ ადაფრუტიდან ამოღებული ნაწილებისგან შეიქმნა, 3D ბეჭდვით გარსით და ლაზერული მოჭრით. მშენებლობის ღირებულების დამატება ხდება ძალიან ძვირი! (დაახლოებით 100 ფუნტი ან მეტი). პრობლემა ის არის, რომ თუ თქვენ არ ფლობთ 3D პრინტერს, თქვენ უნდა გადაიხადოთ თქვენი მოდელის დასაბეჭდად, ან შეიძინოთ ebay– ის მახინჯი გარსაცმები, რომელიც ხშირად ძალიან პატარაა, ძალიან ვიწრო, მოკლე ან პირიქით.

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

თუ თქვენ გიყვართ უცნაური საათების ყურება, გადახედეთ ჩემს Steampunk Voltmeter Clock- ს, რომელიც იყენებს იგივე სამშენებლო მასალებს შიგთავსისთვის:-)

ნაბიჯი 1: შეაგროვეთ ნაწილები

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

ინსტრუმენტები (მე ვფიქრობ, რომ ეს უკვე გექნებათ)

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

ელექტრონიკა (ელექტრონიკის ღირებულება = 13.05 ფუნტი)

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

  • Dupont / Jumper კაბელები - 0.99 ფუნტი
  • DS1307 რეალურ დროში საათის მოდული - 0.99 ფუნტი (მე გირჩევთ მიიღოთ DS3231 ნაცვლად იქ, სადაც არის შესაძლებელი)
  • არდუინო ნანო + USB კაბელი - 2.23 ფუნტი
  • 8 Ohm Mylar სპიკერი - 0.99 ფუნტი
  • SPST მომენტალური ღილაკი - 1.49 ფუნტი
  • 5.5 მმ DC ლულის ბუდე - 1.26 ფუნტი
  • 5v, 0.5A DC დენის წყარო - 2.83
  • MAX7219 წერტილოვანი მატრიცის ჩვენება - 3.76 ფუნტი

დანართი (შიგთავსის ღირებულება = 17.19 ფუნტი)

  • 60 მმ კვადრატული სანიაღვრე მილი - 5.99 ფუნტი (თქვენ გექნებათ ამის ბევრი სხვა პროექტებისთვის)
  • შავი სპრეის საღებავი - 4.85 ფუნტი
  • შავი PVC (ქაფის დაფა) - 2.99 ფუნტი
  • სუპერ წებო - 0.99 ფუნტი
  • 60 მმ ბოლოები - 2.37 ფუნტი

საერთო ღირებულება = 30.24 ფუნტი:-) …….. დღევანდელ დღეს ეს არის 38 აშშ დოლარის ექვივალენტი ნებისმიერი საერთაშორისო მკითხველისთვის.

მე მსიამოვნებს PVC კვადრატულ მილთან მუშაობა. ისინი ადვილად იბურღება, იჭრება, ხატავს და მე ერთი გამოვიყენე ჩემი Steampunk საათისათვის.

ნაბიჯი 2: მოამზადეთ თქვენ სადრენაჟე მილი

მოამზადეთ თქვენ სადრენაჟე მილი
მოამზადეთ თქვენ სადრენაჟე მილი

მონიშნეთ სად გსურთ ნივთების განთავსება

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

მოჭრილი bezel

მე მაქვს PVC ქაფის დაფა, რომელიც განლაგებულია წინა პროექტებიდან. ისინი შესანიშნავია სქემების ჩასადებად ჩასადებად, იყენებენ მას ეპოქსიდის ერთმანეთში შერევისათვის და სხვა ნაჭრებისა და ბობოქრების დასამზადებლად. აიღეთ A4 ან A5 ზომის ნაჭერი და გაჭერით კვადრატული 5 მმ გარსი ან ჩარჩო LED მატრიცის ჩარჩოში. ამით დაიმალება ნებისმიერი გაბრწყინებული ბოლოები, რომლებიც გააკეთეთ მატრიცის კვადრატული ხვრელის ჭრისას. ამისათვის მე დავხატე მცირე შაბლონი Inkscape– ზე და დავბეჭდე (თან ერთვის SVG ფაილი). შემდეგ მე მას ლენტით დავმაგრე ქაფზე და ფრთხილად დავჭერი მის გარშემო ხელნაკეთი დანით. მართალია სწორია, მე გირჩევ ჯერ შიგნიდან გაჭრა, შემდეგ გარედან.

დახატე ყველაფერი

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

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

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

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

რამდენიმე ინფორმაცია კოდის შესახებ

დამსახურებაა GeckoDiode, რადგან მე ავიღე მისი კოდი და შევიცვალე MAX7219 ჩიპთან მუშაობისთვის. Adafruit ვერსია იყენებს I2C ავტობუსს და MAX იყენებს SPI ავტობუსს. ამისათვის გამოვიყენე MaxMatrix ბიბლიოთეკა, რომელიც გადმოვწერე და დავაინსტალირე Arduino IDE– ში. თუ გსურთ გაიგოთ მეტი MaxMatrix– ის შესახებ და როგორ მუშაობს LED მატრიცა პრინციპში, არის ძალიან მოკლე სამეურვეო პროგრამა HowToMechatronics.com– ზე. LED მატრიცა მხოლოდ LED– ების ერთი ფერისგან შედგება და არა მრავალფუნქციური ეკრანისაგან.

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

"int მოდულები = 4;"

ეს არის ნომერი 8x8 მოდულიდან, რომელიც თქვენ ერთმანეთთან დააკავშირეთ თქვენს ეკრანზე. არა LED- ების რაოდენობა ან რა pin- ს იყენებთ მონაცემების გაგზავნისთვის. შემდეგი რაც უნდა გახსოვდეთ არის ის, რომ თუ თქვენი "Sprite" ან რაც მოიცავს ოთხივე მატრიცას, ბაიტის მასივი ასე უნდა განისაზღვროს:

"ბაიტი text_start_bmp = {32, 8,…*ზოგიერთი ბაიტი მონაცემები*…};"

რიცხვები მიუთითებს სტრიქონების და სვეტების რაოდენობას მატრიცაში. ამ დროს ბაიტი სახელწოდებით "text_start_bmp" ნაჩვენებია 32 სვეტზე და 8 სტრიქონზე. რიცხვები ნაჩვენებია მხოლოდ ერთ 8x8 მატრიცაზე, ასე რომ წუთის ნომერი 10 ასე გამოიყურება:

"ბაიტი minute_ten_bmp = {8, 8,…*ზოგიერთი ბაიტი მონაცემები*…};"

დამპყრობლები ფარავს ორ მატრიცას, ამიტომ ბაიტს მიენიჭება 16, 8 ბაიტის მონაცემებში.

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

"matrix.writeSprite (8, 0, minute_zero_bmp);"

ერთი რიცხვი არის X კორექტირება და მეორე არის Y. არ მახსოვს რომელი რომელია ახლა, მაგრამ თუ გსურთ სპრაიტი 1 ზედიზედ ან სვეტით აიწიოთ ზემოთ თქვენ უბრალოდ გაზარდეთ რიცხვი დადებითი ან მინუს. საკმაოდ მარტივია 8x8 მატრიცისთვის, მაგრამ როდესაც თქვენი სპრაიტი მოიცავს ერთზე მეტ მატრიქსს, თქვენ უნდა დაადგინოთ სახლის პოზიცია შესაბამისად. "POP" სპრაიტი ნაჩვენებია ქვემოთ:

"matrix.writeSprite (16, 0, invader_pop_bmp);"

ახლა შენიშნეთ, როგორ არის მთავარი პოზიცია 16 და არა 8? აქ კოდი მიუთითებს, რომ სპრაიტი ნაჩვენებია მარცხნიდან მარჯვნივ პოზიციის რიგიდან/სვეტიდან 16. იგი მიიჩნევს, რომ ორი 8x8 ჩვენება არის ერთჯერადი 16x8 ჩვენება, მიუხედავად იმისა, რომ არის 4! აქედან გამომდინარე, მნიშვნელოვანია ვიფიქროთ იმაზე, თუ რამდენ ეკრანზე იქნება ნაჩვენები სპრაიტი და შესაბამისად შევაფასოთ თითოეული სპრაიტის ბაიტი მასივი. წინააღმდეგ შემთხვევაში გექნებათ ძალიან საინტერესო სპირტი!

DS1307 RTC

მიუხედავად იმისა, რომ DS1307 კარგად მუშაობს Adafruit RTClib.h ბიბლიოთეკასთან, თქვენ არ შეგიძლიათ ხელით განსაზღვროთ დრო, რომელიც მხოლოდ ტკივილია. მე უბრალოდ მივდიოდი ამით, რადგან ეს გულისხმობდა ნაკლები კოდის შეცვლას. DS1307 ადგენს დროს იმ დროის და თარიღის გამოყენებით, როდესაც კოდი შედგენილია თქვენი კომპიუტერის დროიდან. ამის ნაცვლად ისწავლეთ როგორ გამოიყენოთ DS3231 ბიბლიოთეკა და დააყენეთ იგი ერთხელ მომავალში ერთი ან ორი წუთის წინ. მას ასევე აქვს ნაკლები "დრიფტი", ასე რომ ის უკეთესად ინარჩუნებს დროს დროთა განმავლობაში. ორივე მოდული იყენებს I2C ავტობუსს და მე მჯერა, რომ DS3231 შეიძლება გამოყენებულ იქნას RTClib.h– სთან ერთად, თუ მისი გამოყენების გაგრძელება გაინტერესებთ.

ატვირთეთ კოდი

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

ნაბიჯი 4: ელექტრონიკის აწყობა

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

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

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

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

მიმაგრებულია PDF და-p.webp

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

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

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

ნაბიჯი 6: ისიამოვნეთ

მიირთვით
მიირთვით
მიირთვით
მიირთვით

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

გირჩევთ: