Spacewar trên vi điều khiển


7

Trước hết tôi cần phải nói rằng tôi gần như không có kinh nghiệm về lập trình vi điều khiển (dành cho một số công cụ Arduino). Tôi đã làm việc với C (và x86 ASM) trong một số dự án cấp thấp (nghĩ về công cụ kernel, hệ thống nhúng) vì vậy tôi nghĩ rằng phần mềm không phải là một vấn đề.

Vì tôi đang cố gắng học một cái gì đó về vi điều khiển, tôi đã tìm ra cách tốt nhất để làm điều đó là tham gia một dự án thú cưng. Tôi đã quyết định và tôi muốn thực hiện Spacewar! trên một vi điều khiển. Nếu nó có thể chạy trên PDP1 trong thập niên 60 thì nên chạy trên vi điều khiển (tôi nghĩ vậy).

Vì vậy, đây là câu hỏi của tôi, bạn có thể giới thiệu bất kỳ bảng phát triển cụ thể nào có cổng VGA để tôi hiển thị (chỉ đen / trắng) trò chơi. Tôi đang dự định sử dụng bàn phím usb cho các điều khiển.

VGA hiển thị (tôi chỉ cần b / w, 640x480 sẽ là quá đủ, tôi sẽ đi thậm chí ít hơn) ngoài tầm với của một bảng giá rẻ (<= 100 $)?

Bất kỳ đề nghị cho hội đồng quản trị? Bất kỳ vấn đề nào khác bạn nghĩ rằng tôi có thể gặp phải?

Cảm ơn bạn!


Mục đích của bạn là tạo ra một bản sao trung thành của Spacewar! hoặc để tìm hiểu về lái xe màn hình VGA?
Toby Jaffey

bản sao trung thực của Spacewar!, nhưng tôi đang cố gắng học càng nhiều càng tốt để VGA sẽ tốt. Ngoài ra, tôi có thể sử dụng các phương pháp khác để gửi dữ liệu đến máy tính xách tay của mình và từ đó mô phỏng màn hình, nhưng điều đó sẽ không hay lắm :)
nvm

2
Tôi nói với Leon Heller về điều này, nhưng trong một vài lần anh ấy đã đề cập đến Parallax Propeller. Chà, tôi có một thỏa thuận la hét trên bảng phát triển của họ, và nó có cổng VGA tích hợp. Từ những video tôi đã xem, tôi sẽ không ngạc nhiên nếu chúng khiến việc gửi tín hiệu video trở nên rất dễ dàng. Kiểm tra nó ra!
Dave

2
Nếu bạn dùng chân vịt, hãy lưu ý rằng giao diện bàn phím PS / 2 và chuột với nó dễ dàng hơn nhiều so với USB.
AndrejaKo

Câu trả lời:


5

Hackvision về cơ bản là một Arduino được thiết kế để phát triển trò chơi retro. Bạn lập trình nó với Arduino IDE thông thường và nó sử dụng thư viện TVout.

TVout là một thư viện Arduino giúp dễ dàng tạo video tổng hợp đơn sắc có độ phân giải thấp cho TV. Tôi đã thiết kế Hackvision về cơ bản là một bo mạch Arduino và bộ điều khiển trò chơi kết hợp và nó có đầu ra âm thanh / video mà bạn kết nối với TV của bạn. TVout, thư viện bộ điều khiển của tôi và các ví dụ về trò chơi giúp bạn dễ dàng bắt đầu viết các trò chơi của riêng mình. Và kể từ khi các trò chơi được viết bằng Arduino IDE bình thường, nó tốt cho người mới bắt đầu. Hackvision sẽ hữu ích cho poster gốc bởi vì tất cả phần cứng được chăm sóc và mã hóa Arduino được hiểu rộng rãi.

http://nootropicdesign.com/hackvision/


bạn có thể cho chúng tôi biết thêm chi tiết kỹ thuật về những gì bạn đã làm. Nghe có vẻ thú vị nhưng mục tiêu của tôi là luôn tránh các câu trả lời cần trang web khác để biết chi tiết, mặc dù không có trang web của bạn, sản phẩm của bạn sẽ không có sẵn, mang theo một túi giun khác.
Kortuk

chỉnh sửa nó trong, làm cho câu trả lời của bạn kỹ lưỡng và đầy đủ hơn!
Kortuk

Theo như nhu cầu của tôi, đây là câu trả lời tôi đã hy vọng. Công việc tuyệt vời, điều này sẽ rất nhiều fuun: D. Phạm vi giá là tuyệt vời, đó là arduino vì vậy nó rất thân thiện, các ví dụ trông rất tuyệt, tôi xin lỗi tôi chỉ có thể đưa ra câu trả lời của bạn một lần.
nvm

1
Ái chà. Thật tệ. ý nghĩa không tốt xấu, nhưng ý nghĩa xấu tốt.
Dave

8

Một MCU phù hợp để triển khai Spacewar là Parallax Propeller tám lõi 32 bit , vì mỗi lõi có giao diện video và VGA. Những gì có vẻ là các trò chơi phức tạp như nhau đã được chuyển đến nó.

Tôi nhớ đã chơi Spacewar trên chiếc DEC PDP-12 nơi tôi từng làm việc nhiều năm trước.


Tôi càng đọc nhiều bài viết của bạn về micro này, tôi càng muốn sử dụng bộ công cụ dev của mình. Parallax gần đây đã có chúng được bán với giá $ 119! Bạn đang sử dụng ViewPort?
Dave

1
Chết tiệt, đừng bận tâm với bộ dụng cụ dev, chỉ cần mua một tấm protoboard và một cái kẹp prop (hoặc một tấm proto-board USB) - Giống như $ 50
Sói Connor

Hoặc, mua một trong những bộ QuickStart $ 20 mới. Họ đã hết hàng tại thời điểm này. Tuy nhiên. Tôi có hai trong số họ. Tôi không sử dụng ViewPort.
Leon Heller

4

Nếu bạn đã có bảng Arduino , thì bạn có thể sử dụng một số thư viện TV out như thế này , thế này hoặc thế này . Như bạn thấy bạn cũng có thể đặt hàng hoặc tự làm những tấm ván giá rẻ này.


bạn có thể cho tôi biết thêm một chút chi tiết về lý do tại sao thư viện tv out lại tuyệt vời không?
Kortuk

Tôi nghĩ rằng việc tạo tín hiệu video trong phần mềm thuần túy với thời gian chính xác mà không cần chip video bên ngoài là điều hấp dẫn và tôi thích nó. Nó có sử dụng. Nếu bạn google xung quanh, bạn sẽ thấy màu sắc cũng đạt được theo cách này và với ram bên ngoài, nó không chỉ là một thanh màu mà còn là nhân vật truyền hình hoặc VGA thực và trình tạo đồ họa. Một cách sử dụng AVR hấp dẫn khác là thiết bị USB trong phần mềm thuần túy.
avra

2

Nếu bạn có quyền truy cập vào một phạm vi tương tự, tôi khuyên bạn nên kết nối một vi điều khiển với một vài bộ xử lý tín hiệu tới XY của phạm vi. Nếu bạn cũng có thể điều khiển Z (độ sáng), điều đó sẽ còn tốt hơn nữa; mặt khác, nếu các bộ xử lý tín hiệu của bạn đủ nhanh, bạn có thể chỉ cần để chùm tia chiếu vào các điểm được cho là sáng.


[Chiến tranh vũ trụ! trên máy hiện sóng] ( bộ xử
lý.wiki.ti.com / index.php / từ

1

Tôi không nhất thiết phải gọi một bảng có giao diện video là vi điều khiển. Tôi chưa (chưa) biết đủ về cách spacewar giao tiếp với màn hình, bạn có thể thử một cách tiếp cận tiểu hành tinh trong đó chương trình tạo ra một danh sách các hướng dẫn cho công cụ đồ họa vector mà chính nó là bộ xử lý các lệnh gọi và chương trình con, v.v. gửi danh sách các hướng dẫn video qua cổng nối tiếp đến máy chủ lưu trữ, như thiết bị đầu cuối câm, hiển thị video.

Một cách tiếp cận khác có thể là chỉ cần có được một tiến bộ gameboy, ARM7 16 MHz, có màn hình, có nút bấm. Chi phí khoảng $$30or$$ 40 trên ebay. Tại những nơi như realhot ware.com, bạn có thể nhận được một hộp mực flash hoặc dễ dàng hơn để sử dụng thẻ sd (mini, micro hoặc full size). Cửa hàng xung quanh một số khó sử dụng hơn những người khác. Tôi cũng khuyên bạn chỉ nên lấy cáp liên kết trò chơi để bạn có thể cắt nó và tạo hai cáp nối tiếp, sử dụng cái gì đó như thế này có lẽ

http://www.sparkfun.com/products/718

hoặc đây là cái tôi thường sử dụng

http://www.sparkfun.com/products/449

Viết một bộ tải khởi động và khởi động nó ra khỏi hộp mực, sau đó bạn có thể tải các chương trình qua nối tiếp vào ram và chạy chúng ở đó, tiết kiệm rất nhiều thời gian để rút hộp mực ra sau đó gắn thẻ sd sau đó gắn nó sao chép tệp mới, ngắt kết nối nó vào hộp mực trong gba boot và chờ, thất bại, bắt đầu lại. Với bộ tải khởi động nối tiếp, bạn có thể tắt và bật hoặc làm theo hướng dẫn trang của devr và thêm nút đặt lại.

Có lẽ đáng để chi tiêu chỉ một vài đô la và sử dụng một gba sp. Bạn nhận được một màn hình ngược sáng và một dây nguồn để luôn luôn cắm nó. Một NDS sẽ hoạt động từ quan điểm của một nhà phát triển và hộp mực nhưng đau đớn hơn GBA vì bị ướt chân. có trong cả hai trường hợp, bạn chỉ có thể rơi vào một trong những hộp cát hiện có và thực sự không học được gì về phần nhúng của nó. Tôi sẽ không bận tâm làm bất cứ điều gì được nhúng trong trường hợp đó chỉ cần viết một ứng dụng trên máy tính của bạn và được thực hiện với nó.

Nếu bạn không thích đường dẫn gba, bạn có thể xem xét một bộ vi điều khiển và mua một màn hình riêng biệt, earthlcd hoặc sparkfun hoặc một nơi nào đó như thế, rất dễ để đi qua. Các oled trên bảng stellaris eval có lẽ là quá nhỏ, nhưng oled sẽ thực sự mát mẻ. Bạn cũng có thể nhìn vào một số bảng fpga, chúng thường có những thứ như cổng vga hoặc điều khiển LCD, v.v. và bạn có thể đặt mico8 hoặc microblaze hoặc bộ xử lý khác vào đó. Có một dự án lớn hơn là chỉ viết phần mềm cho một bảng eval, nhưng đưa bạn vào danh mục vi điều khiển có cổng vga.

Tôi đã không xem xét các chi tiết nhưng việc thêm một cái gì đó như thế này vào một số bảng vi điều khiển khác có thể cung cấp cho bạn gói bạn đang tìm kiếm

http://www.sparkfun.com/products/10329

Hoặc có lẽ là một bảng stellaris với usb otg, và có được một số loại trình điều khiển video dựa trên usb.

Bạn đang sử dụng làm nguồn cơ bản của bạn là gì? Bản thân tôi đã thực hiện một bản dịch nhị phân tĩnh của các tiểu hành tinh, đầu tiên là một bản mô phỏng sau đó là bản dịch từ nguồn pdp1 / âm thanh nhị phân giống như một dự án rất thú vị.


nếu bạn có một nds đặt xung quanh và nhận được một gba, tôi khuyên bạn nên sử dụng ez flash 3 trong 1, hãy chắc chắn rằng nó có kích thước GBA. Để bắt đầu, bạn có thể lập trình nó ban đầu trên nds (bạn cũng cần một hộp mực slot 1, bất kỳ thứ gì cũng sẽ có rất nhiều cái 20 đô la), sau đó khi bạn có bộ tải khởi động, bạn có thể lập trình lại nó từ gba, công ty có một thư viện mã nguồn mở để thực hiện các nhiệm vụ này.
old_timer
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.