Mục lục:

Máy tính cơ bản cầm tay: 6 bước (có hình ảnh)
Máy tính cơ bản cầm tay: 6 bước (có hình ảnh)

Video: Máy tính cơ bản cầm tay: 6 bước (có hình ảnh)

Video: Máy tính cơ bản cầm tay: 6 bước (có hình ảnh)
Video: Chơi Game free fire bằng máy tính fx 570 đk sao 🌟.?#shorts #tiktok #trieuview #vietnam #views 2024, Tháng mười hai
Anonim
Máy tính cơ bản cầm tay
Máy tính cơ bản cầm tay
Máy tính cơ bản cầm tay
Máy tính cơ bản cầm tay

Có thể hướng dẫn này mô tả quá trình xây dựng một máy tính cầm tay nhỏ chạy BASIC của tôi. Máy tính được xây dựng dựa trên chip ATmega 1284P AVR, cũng là nguồn cảm hứng cho cái tên ngớ ngẩn cho máy tính (HAL 1284).

Công trình này được lấy cảm hứng từ HEAVILY được lấy cảm hứng từ dự án tuyệt vời được tìm thấy ở đây và Huy hiệu SuperCON BASIC.

Máy tính chạy phiên bản sửa đổi của TinyBasic, mặc dù phần lớn phần mềm dựa trên dự án của dan14. Tất nhiên, bạn có thể làm theo Có thể hướng dẫn này, hoặc thậm chí tốt hơn, cải thiện nó vì tôi đã mắc một vài lỗi.

Đối với dự án này, tôi cũng đã tạo một sổ tay hướng dẫn. Nó đề cập đến một số lỗi và chi tiết cụ thể cho màn hình đã chọn nhưng quan trọng nhất, nó có danh sách các hoạt động CƠ BẢN.

Sau khi điều này được xuất bản, tôi đã làm một video giới thiệu dự án.

Bước 1: Các bộ phận tôi đã sử dụng

Các bộ phận tôi đã sử dụng
Các bộ phận tôi đã sử dụng
Các bộ phận tôi đã sử dụng
Các bộ phận tôi đã sử dụng
Các bộ phận tôi đã sử dụng
Các bộ phận tôi đã sử dụng

Đối với vi mạch chính:

  • ATmega 1284P
  • Tinh thể 16MHz
  • Tụ gốm 2x 22pf
  • Điện trở 10KΩ (Để thiết lập lại kéo lên)
  • Nút 4 chân (Để đặt lại)
  • 470Ω Reistor (Đối với video tổng hợp)
  • Điện trở 1kΩ (Để đồng bộ hóa video tổng hợp)
  • Cầu nối 3 chân (Đối với tín hiệu video)
  • Bộ rung thụ động

Để điều khiển keybaord:

  • ATmega 328P (Giống như những cái được sử dụng trong Arduino Uno)
  • Tinh thể 16MHz
  • Tụ gốm 2x 22pf
  • Điện trở 12x 10KΩ (Để thiết lập lại kéo lên và các nút)
  • Nút 4 chân 51x (Đối với bàn phím thực)

Cho quyền lực:

  • Bộ điều chỉnh điện áp L7805
  • LED 3mm
  • Điện trở 220Ω (Đối với đèn LED)
  • Tụ điện 2x 0,1µF
  • Tụ điện 0,22 µF (Bạn có thể thay thế 0,22 và 0,1 cho một 0,33. Tôi cũng đã được thông báo rằng các giá trị không thực sự quan trọng, nhưng tôi không giỏi với tụ điện)
  • 2x 2-chân jumper (Đối với đầu vào nguồn và cho công tắc chính)

GPIO (Có thể thêm một vài cơ sở khác):

  • Jumper 7 chân
  • 2x 8-pin Jumper
  • Jumper 2 chân (Cho 5V và GND)
  • Cầu nhảy 3-4 chân (Đối với giao tiếp nối tiếp)

Không PCB:

  • Màn hình LCD 4 "với Video tổng hợp (Của tôi có điện áp đầu vào từ 7-30V)
  • Giá đỡ in 3D để hiển thị
  • Một số loại chuyển đổi

Bước 2: Mạch

Mạch
Mạch

Mạch không đẹp lắm và phần lớn vùng vi mạch chính được lấy cảm hứng từ dan14. Điều đó đang được nói, nó là một Arduino khá thẳng về phía trước trên một mạch Breadboard. Bàn phím là một lưới đơn giản và được điều khiển bởi ATmega328. Hai chip AVR giao tiếp thông qua các chân UART Serial.

Cả hình ảnh và tệp Eagle của tôi đều được đính kèm và hy vọng sẽ đủ để tạo lại mạch. Nếu không, vui lòng thông báo cho tôi và tôi sẽ cập nhật Tài liệu hướng dẫn.

Bước 3: PCB

PCB
PCB
PCB
PCB

PCB có 2 lớp và được tạo ra bằng cách sử dụng Auto Route (Ôi, thật là một ** lỗ hổng!). Nó có các nút và đèn LED báo nguồn ở phía trước và phần còn lại ở mặt sau. Tôi đã có PCB của mình được làm bằng JCL PCB, và họ đã làm một công việc tuyệt vời với nó. Các tệp cần thiết để tạo lại PCB phải nằm trong tệp Eagle từ trước đó.

Tôi sẽ đề nghị bạn thiết kế lại PCB, vì tôi có một số điều tôi muốn làm khác đi. Nếu bạn thích thiết kế của tôi, tôi vẫn còn (tính đến thời điểm viết bài) bốn bảng chưa sử dụng mà tôi sẵn sàng bán.

Bảng có bốn lỗ khoan mà tôi đã sử dụng để lắp Màn hình LCD.

Bước 4: Tải lên mã

Tải lên mã
Tải lên mã
Tải lên mã
Tải lên mã
Tải lên mã
Tải lên mã

Tất nhiên, cả 1284 và 328 đều cần mã và mã mà tôi đã sử dụng có thể được tìm thấy tại đây: https://github.com/PlainOldAnders/HAL1284 trong ArduinoSrc / src. Tôi chỉ đơn giản sử dụng Arduino IDE để sửa đổi và tải lên mã nhưng trước khi điều đó có thể được thực hiện, bạn sẽ cần ghi bộ nạp khởi động trên IC:

ATMega328:

Cái này thì dễ, theo nghĩa là có rất nhiều hỗ trợ về cách ghi bộ nạp khởi động và tải mã lên vi mạch này. Tôi thường làm theo hướng dẫn này, chủ yếu là vì tôi luôn quên các chi tiết cụ thể.

Mã cho 328 (trong ArduinoSrc / keypad) khá đơn giản. Nó hoàn toàn dựa vào thư viện Adafruit_Keypad-master-. Trong trường hợp có bất kỳ thay đổi nào về lib, tôi đã bao gồm phiên bản mà tôi đã sử dụng trên trang github của mình trong ArduinoSrc / lib.

ATmega1284:

Điều này là một chút khó khăn cho tôi khi tôi lần đầu tiên nhận được IC. Tôi bắt đầu bằng cách tải bộ nạp khởi động từ đây và làm theo hướng dẫn cài đặt. Để ghi bộ nạp khởi động, tôi chỉ cần làm điều tương tự như với 328 và nhận trợ giúp từ đây. Đối với cả hai IC, tôi chỉ sử dụng Arduino Uno để ghi bộ nạp khởi động và tải lên mã (đã gỡ bỏ IC khỏi Arduino Uno khi tải lên).

Mã (trong ArduinoSrc / HAL1284Basic) quá phức tạp đối với tôi nhưng tôi đã có thể sửa đổi một số phần của mã:

Tôi đã thêm một vài lệnh (những lệnh được đánh dấu [A] trong manual.pdf) và tôi cũng đã thay đổi các lệnh khác:

Giai điệu: Lệnh âm báo chỉ sử dụng chức năng âm báo của Arduino trước đó, nhưng khi sử dụng thư viện TVout, điều này khiến bộ rung không hoạt động bình thường. Tôi đã thay đổi nó để sử dụng chức năng âm báo của TVout, nhưng điều này có nghĩa là chân âm báo CÓ phải là chân 15 (đối với atmega1284)

Giao tiếp nối tiếp: Vì bàn phím là bàn phím DIY, nó sử dụng giao tiếp nối tiếp để đọc các ký tự. Vì atmega1284 được sử dụng ở đây, có hai đường giao tiếp nối tiếp có sẵn và khi "sercom" được bật, mã cũng cho phép ghi qua cổng nối tiếp (từ máy tính hoặc bất cứ thứ gì).

Độ phân giải: Màn hình được sử dụng cho dự án này khá tệ và cần độ phân giải nhỏ, nếu không hình ảnh sẽ bị nhấp nháy. Nếu sử dụng màn hình tốt hơn, tôi khuyên bạn nên thay đổi độ phân giải trong chức năng thiết lập.

Bước 5: Lắp ráp

cuộc họp
cuộc họp
cuộc họp
cuộc họp
cuộc họp
cuộc họp

Với mã được tải lên và PCB và các bộ phận đã sẵn sàng, bây giờ là lúc để lắp ráp. Tất cả các bộ phận tôi sử dụng đều xuyên qua lỗ, vì vậy việc hàn không quá khó khăn (trái ngược với những thứ hàn xì-SMD ngoài kia). Màn hình được gắn chặt vào bốn lỗ khoan trên PCB bằng giá đỡ in 3D. Nếu sử dụng một màn hình khác, hy vọng bốn lỗ khoan có thể được sử dụng để lắp màn hình này.

Giá đỡ màn hình được sử dụng ở đây, cũng được thiết kế để chứa một công tắc bật tắt (kết nối với jumper "công tắc" trên PCB) và ba nút điều khiển cho màn hình. Giá đỡ được gắn chặt bằng bu lông và miếng đệm bằng nhựa M3.

Đối với phích cắm nguồn, tôi đã sử dụng đầu nối JST PCB, mặc dù giắc cắm thùng trơn sẽ trơn tru hơn một chút. Để cấp nguồn cho bo mạch, tôi đã chuyển đổi giữa nguồn điện 12V hoặc ba pin 18650 mắc nối tiếp. Một cao bồi mượt mà hơn tôi có lẽ có thể thiết kế một giá đỡ pin trơn cho bảng.

Bước 6: Lỗi và công việc trong tương lai

Phím mũi tên: Các phím mũi tên được đặt một cách vô tình và không hoạt động nhiều. Điều này làm cho việc điều hướng trở nên khó khăn

Tệp I / O: Có các khả năng I / O Tệp nhưng chúng không được triển khai. Để chống lại điều này, phần mềm HAL1284Com có thể tải các tệp lên bảng. Cũng có thể tải lên EEPROM.

PEEK / POKE: PEEK và POKE chưa được kiểm tra và tôi không chắc địa chỉ là gì.

Break: Break (Esc) đôi khi gây nhầm lẫn với toàn bộ mã, khi ở trong các vòng lặp vô hạn.

Chân 7: Chân 7 của PWM có thể khó khăn khi cố định DWRITE Cao hoặc AWRITE 255. Nó hoạt động tốt với AWRITE 254.

Đồ ngốc: Sẽ rất lý tưởng nếu bạn cũng có thể tải lên qua UART1 nhưng chỉ có thể tải lên qua UART0, vì vậy việc tải lên sẽ phải được thực hiện bằng cách giải nén vi mạch chính. Màn hình và Bộ điều chỉnh điện áp 5 hơi quá nóng khi chạy trong thời gian dài.

Đề xuất: