Სარჩევი:

ხელის ძირითადი კომპიუტერი: 6 ნაბიჯი (სურათებით)
ხელის ძირითადი კომპიუტერი: 6 ნაბიჯი (სურათებით)

ვიდეო: ხელის ძირითადი კომპიუტერი: 6 ნაბიჯი (სურათებით)

ვიდეო: ხელის ძირითადი კომპიუტერი: 6 ნაბიჯი (სურათებით)
ვიდეო: ლუკა და მარიამი 2024, ნოემბერი
Anonim
ხელის ძირითადი კომპიუტერი
ხელის ძირითადი კომპიუტერი
ხელის ძირითადი კომპიუტერი
ხელის ძირითადი კომპიუტერი

ეს ინსტრუქცია აღწერს ჩემს პროცესს მცირე ხელის კომპიუტერის შექმნის პროცესში, რომელიც მუშაობს BASIC– ზე. კომპიუტერი აგებულია ATmega 1284P AVR ჩიპის გარშემო, რომელმაც ასევე შთააგონა კომპიუტერის სულელური სახელი (HAL 1284).

ეს ნაგებობა მძიმედ არის შთაგონებული აქ ნაპოვნი საოცარი პროექტით და SuperCON BASIC სამკერდე ნიშნით.

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

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

ამის გამოქვეყნების შემდეგ, მე გადავიღე ვიდეო, რომელიც აჩვენებს პროექტს.

ნაბიჯი 1: მე გამოყენებული ნაწილები

ნაწილები, რომლებიც მე გამოვიყენე
ნაწილები, რომლებიც მე გამოვიყენე
ნაწილები, რომლებიც მე გამოვიყენე
ნაწილები, რომლებიც მე გამოვიყენე
ნაწილები, რომლებიც მე გამოვიყენე
ნაწილები, რომლებიც მე გამოვიყენე

ძირითადი IC– სთვის:

  • ATmega 1284P
  • კრისტალი 16 MHz
  • 2x 22pf კერამიკული კონდენსატორი
  • 10KΩ რეზისტორი (გადატვირთვისთვის დახევისკენ)
  • 4 პინიანი ღილაკი (გადატვირთვისთვის)
  • 470Ω Reistor (კომპოზიციური ვიდეოსთვის)
  • 1kΩ რეზისტორი (კომპოზიციური ვიდეო სინქრონიზაციისათვის)
  • 3 პინიანი მხტუნავი (ვიდეო სიგნალისთვის)
  • პასიური ბუზერი

კლავიშთა კონტროლისთვის:

  • ATmega 328P (ისევე როგორც Arduino Uno– ში გამოყენებული)
  • კრისტალი 16 MHz
  • 2x 22pf კერამიკული კონდენსატორი
  • 12x 10KΩ რეზისტორი (გადატვირთვისთვის გაიყვანეთ ზემოთ და ღილაკები)
  • 51x 4 პინიანი ღილაკი (ფაქტობრივი კლავიატურისთვის)

ძალაუფლებისთვის:

  • L7805 ძაბვის რეგულატორი
  • 3 მმ LED
  • 220Ω რეზისტორი (LED- ისთვის)
  • 2x 0.1µF ელექტროლიტური კონდენსატორი
  • 0.22 µF ელექტროლიტური კონდენსატორი (თქვენ შეგიძლიათ შეცვალოთ ეს 0.22 და ერთი 0.1 ერთი 0.33 -ით. მე ასევე მითხრეს, რომ ღირებულებებს ნამდვილად არ აქვს მნიშვნელობა, მაგრამ მე არ ვარ დიდი კონდენსატორებით)
  • 2x 2 პინიანი ჯუმპერი (დენის შეყვანისთვის და ძირითადი გადამრთველისთვის)

GPIO (შესაძლოა დაამატოთ კიდევ რამდენიმე საფუძველი):

  • 7 პინიანი მხტუნავი
  • 2x 8 პინიანი მხტუნავი
  • 2 პინიანი მხტუნავი (5V და GND– ისთვის)
  • 3-4 პინიანი ჯუმპერი (სერიული კომუნიკაციისთვის)

არა PCB:

  • 4 ინჩიანი ეკრანი კომპოზიტური ვიდეოთი (ჩემსას ჰქონდა შეყვანის ძაბვა 7-30 ვ-ს შორის)
  • 3D დაბეჭდილი დამჭერი საჩვენებლად
  • ერთგვარი გადამრთველი

ნაბიჯი 2: წრე

წრე
წრე

წრე არ არის ძალიან ლამაზი და ძირითადი IC რეგიონის უმეტესობა შთაგონებულია dan14- ით. როგორც ითქვა, ეს არის საკმაოდ პირდაპირი არდუინო პურის დაფაზე. კლავიატურა მარტივი ბადეა და მას აკონტროლებს ATmega328. ორი AVR ჩიპი ურთიერთობს UART სერიული ქინძისთავების საშუალებით.

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

ნაბიჯი 3: PCB

PCB
PCB
PCB
PCB

PCB არის 2 ფენიანი და შექმნილია ავტო მარშრუტის გამოყენებით (ოჰ, რა ** ხვრელია!). მას აქვს ღილაკები და დენის მაჩვენებელი LED წინა და დანარჩენი უკანა. მე მქონდა ჩემი PCB დამზადებული JCL PCB– ით და მათ საოცარი სამუშაო გააკეთეს მასში. PCB– ის ხელახლა შესაქმნელად საჭირო ფაილები უნდა იყოს Eagle– ის ფაილებში.

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

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

ნაბიჯი 4: კოდის ატვირთვა

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

როგორც 1284, ასევე 328, რა თქმა უნდა, საჭიროა კოდი და კოდი, რომელსაც მე ვიყენებ, შეგიძლიათ იხილოთ აქ: https://github.com/PlainOldAnders/HAL1284 ArduinoSrc/src. მე უბრალოდ გამოვიყენე Arduino IDE კოდის შეცვლისა და ატვირთვისთვის, მაგრამ სანამ ამის გაკეთება მოხდება, თქვენ დაგჭირდებათ ჩამტვირთავების დაწვა IC- ებზე:

ATMega328:

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

კოდი 328 -ისთვის (ArduinoSrc/კლავიატურის ქვეშ) საკმაოდ მარტივია. ის მთლიანად ეყრდნობა Adafruit_Keypad- სამაგისტრო ბიბლიოთეკას. იმ შემთხვევაში, თუ რამე შეიცვლება lib- ში, მე ჩავრთე ვერსია, რომელიც გამოვიყენე ჩემს github გვერდზე ArduinoSrc/lib.

ATmega1284:

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

კოდი (ArduinoSrc/HAL1284Basic) ჩემთვის ძალიან რთულია, მაგრამ მე შევძელი კოდის ზოგიერთი ნაწილის შეცვლა:

მე დავამატე რამდენიმე ბრძანება (ის, რაც მითითებულია [A] - ში სახელმძღვანელოში. Pdf) და ასევე შევცვალე სხვა ბრძანებები:

ტონი: ტონი ბრძანება უბრალოდ იყენებდა არდუინოს ტონის ფუნქციას ადრე, მაგრამ როდესაც გამოდიოდა ბიბლიოთეკა, ამან გამოიწვია ზუზერის არასწორად მუშაობა. მე შევცვალე ის TVout– ის ტონის ფუნქციის გამოსაყენებლად, მაგრამ ეს ნიშნავს, რომ ტონის პინი უნდა იყოს პინ 15 (atmega1284– ისთვის)

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

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

ნაბიჯი 5: შეკრება

შეკრება
შეკრება
შეკრება
შეკრება
შეკრება
შეკრება

კოდი ატვირთული და PCB და ნაწილები მზად არის, ახლა დროა შეკრების. ყველა ნაწილი, რომელიც მე გამოვიყენე, იყო ხვრელის გავლით, ასე რომ, შედუღება არ იყო ძალიან რთული (განსხვავებით იქ არსებული badass-SMD-soldering-fellas). მონიტორი დამაგრებულია PCB– ის ოთხ საბურღი ხვრელზე, 3D ბეჭდვით დამჭერით. თუ სხვა მონიტორი გამოიყენება, ოთხი საბურღი ხვრელი შეიძლება გამოყენებულ იქნას ამის დასაყენებლად.

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

დენის დანამატისთვის გამოვიყენე JST PCB კონექტორი, თუმცა გლუვი ლულის ბუდე იქნებოდა უფრო გლუვი. დაფის გასაძლიერებლად, მე გადავედი 12V კვების ბლოკზე ან სამ 18650 ბატარეას შორის. ჩემზე უფრო რბილ კოვბოის ალბათ შეეძლო დაემუშავებინა ბატარეის გლუვი დაფა დაფისთვის.

ნაბიჯი 6: შეცდომები და მომავალი მუშაობა

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

ფაილი I/O: არსებობს ფაილის I/O შესაძლებლობები, მაგრამ ეს არ არის განხორციელებული. ამის წინააღმდეგ საბრძოლველად, HAL1284Com პროგრამულ უზრუნველყოფას შეუძლია ფაილების ატვირთვა დაფაზე. ასევე შესაძლებელია ატვირთვა EEPROM– ში.

PEEK/POKE: PEEK და POKE დატესტილია და მე არ ვარ დარწმუნებული რა მისამართებია.

შესვენება: შესვენება (Esc) ზოგჯერ არეულობს მთელ კოდს, უსასრულო მარყუჟებში.

პინ 7: PWM პინ 7 შეიძლება იყოს რთული, როდესაც ცდილობ DWRITE High ან AWRITE 255. ის მშვენივრად მუშაობს AWRITE 254– ით.

იდიოტი: იდეალური იქნება ასევე UART1- ით ატვირთვა, მაგრამ ატვირთვა შესაძლებელია მხოლოდ UART0- ის საშუალებით, ამიტომ ატვირთვა უნდა მოხდეს ძირითადი IC- ის ამოღებით. ეკრანი და ძაბვის რეგულატორი 5 ძალიან ცხელდება დიდი ხნის განმავლობაში მუშაობის დროს.

გირჩევთ: