1. Một loạt các chip 74HC595 sẽ hoạt động tuyệt vời. Các chip khác cũng hoạt động tốt và có lẽ tốt hơn một chút được liệt kê tại:
Chip SIPO nào tốt hơn, 74HC4094 hoặc 74HC595 hay thứ gì khác?
2. Arduino là một lựa chọn tuyệt vời để tạo mẫu, đặc biệt nếu bạn cảm thấy thoải mái khi sử dụng gcc. Có lẽ nó sẽ nhanh hơn để sử dụng một bây giờ. Than ôi, tôi nghi ngờ bạn sẽ sớm viết mã cho màn hình POV này cần nhiều RAM hơn Arduino có sẵn - tại thời điểm đó, (a) sử dụng một hoặc nhiều thủ thuật để giảm RAM cần thiết, hoặc (b) thêm một số RAM ngoài, hoặc (c) chuyển mã sang một số vi điều khiển khác có nhiều RAM hơn (có lẽ là ATMEGA1284?).
Parallax Propeller là một lựa chọn tuyệt vời cho màn hình POV độ phân giải cao - nó có thứ tự RAM bên trong lớn hơn (RAM 32 KB) so với ATmega238 trong Arduino. (Có điều gì tôi có thể làm để hỗ trợ chuyển gcc sang Propeller không?)
Một số người thích "pixel vuông". Tôi chắc rằng bạn đã biết rằng khoảng cách xung quanh đường xích đạo của một quả cầu dài gấp đôi khoảng cách từ cực đến cực (đường xích đạo của Trái đất dài hơn một chút so với hai lần). Vì bạn có 64 pixel từ cực nam đến cực bắc, bạn có thể chọn tải lại một "dòng" pixel dọc 2 * 64 = 128 lần trên mỗi vòng quay để có được 128 "pixel vuông" ở đường xích đạo. Cách đơn giản nhất để làm điều đó là lưu trữ toàn bộ khung hình không nén trong RAM. Điều đó đòi hỏi 64 * 128 pixel * 3 bit / pixel = 24 576 bit = 3 072 byte, cộng với một vài byte RAM cho các biến chương trình khác. Than ôi, Atmel ATmega328 trong Arduino chỉ có 2 048 byte RAM.
Màn hình POV trước đósử dụng các bộ vi điều khiển với mức độ lớn hơn (!) RAM so với mức này. Vì vậy, mọi người đã phát triển một loạt các thủ thuật mà bạn có thể sử dụng để khắc phục điều này. Một mẹo nhỏ: Chỉ chiếu sáng một nửa "mặt trước" của quả cầu trong thời gian bạn có thể nhìn thấy đèn LED, sau đó tắt tất cả các đèn LED (hoặc để chúng ở một số màu không đổi) trong nửa "phía sau" mà bạn không thể trực tiếp xem đèn LED. Điều đó làm giảm một nửa dung lượng RAM bạn cần, do đó, nó phù hợp với Arduino. Nếu bạn không thích thủ thuật đó, có những thủ thuật khác bạn có thể sử dụng ít rõ ràng hơn. Một mẹo khác: Lưu trữ hình ảnh trong bộ nhớ chương trình flash. Arduino có đủ bộ nhớ chương trình flash để lưu trữ vài khung hình 072 byte. Một mẹo khác: sử dụng văn bản ASCII để lưu trữ văn bản bạn muốn hiển thị, sau đó sử dụng bộ nhớ chương trình flash để lưu trữ "ROM trình tạo ký tự" dữ liệu. Tôi khá chắc chắn có những thủ thuật POV khác ...
3. Nếu tôi đang chế tạo nó, tôi sẽ cung cấp năng lượng cho chip Arduino và 74HC595 từ một nguồn cung cấp năng lượng lớn và cung cấp năng lượng cho động cơ quay POV từ một nguồn cung cấp năng lượng riêng biệt.
Chỉ sau khi tôi làm việc xong, tôi mới xem xét một hệ thống cung cấp điện tách biệt phức tạp hơn. (Về nguyên tắc, nếu bạn có nguồn cung cấp năng lượng chuyển đổi "đỏ" riêng biệt có + V chỉ được kết nối với chip 74HC595, lần lượt chỉ được kết nối với đèn LED màu đỏ, bạn có thể điều chỉnh độc lập điện áp đầu ra của nó để giảm thiểu tổng công suất và nhiệt lượng của hệ thống. Nhưng có vẻ phức tạp không cần thiết.)
4. và 5. Có lẽ cách đơn giản nhất để Arduino điều khiển màn hình POV là xâu chuỗi tất cả 24 chip 74HC595 trong một chuỗi dài, sau đó sử dụng thư viện Arduino SPI . Điều đó đòi hỏi 192 xung đồng hồ để xung nhịp trong cột dữ liệu mới và sau đó là xung trên RCLK (còn gọi là xung khung, SS, v.v.) để bắt đầu hiển thị dữ liệu mới đó. Theo một hướng dẫn giao diện Arduino với SPI , tốc độ xung nhịp SPI nhanh nhất là tốc độ hệ thống / 4. Vì vậy, Arduino 16 MHz có thể đưa ra SPI CLK 4 MHz. Nếu bạn nâng cấp nó với tinh thể 20 MHz, bạn có thể nhận được SPI CLK là 5 MHz. Nếu bạn có thể có được chương trình của mình đủ nhanh để theo kịp với phần cứng SPI, bạn có thể đưa ra một cột mới, tốt nhất là ở xung 5 MHz / 193, do đó tốc độ tối đa về mặt lý thuyết là 25 907 cột / giây.
Với tốc độ làm mới phim hoạt hình tiêu chuẩn là 24 khung hình / giây (đáng chú ý là nhấp nháy - bạn muốn thứ gì đó tốt hơn) và ở 128 cột / khung hình để có được các pixel "vuông" ở xích đạo (bạn có thể muốn nhiều hơn để có độ phân giải tốt hơn) , cung cấp 24 khung hình / giây * 128 cột / khung = 3072 cột / giây.
Có gần một mức độ lớn của phòng thở giữa "tốc độ bạn muốn": 3072 cột / giây và "tốc độ hoàn toàn không thể trên phần cứng Arduino": 25 908 cột / giây. Hy vọng rằng cung cấp cho bạn đủ phòng.
Một số người nghĩ rằng bạn có thể có tốc độ làm mới cột nhanh hơn bằng cách sắp xếp lại các chip 74HC595 thành 2 hoặc nhiều chuỗi và tải song song tất cả các chuỗi. Một số người giống như vậy - họ thấy các chân không được sử dụng trên Arduino và họ rất muốn sử dụng chúng cho việc gì đó . Nhưng nó có thể phản tác dụng - phần cứng SPI chỉ được kết nối với một bộ chân trên Arduino và do đó, các chuỗi được nối với bất kỳ chân nào khác phải được tải bằng phần mềm "bit-banging" giả lập, sẽ luôn chậm hơn và chậm hơn sử dụng nhiều thời gian CPU hơn phần cứng SPI tích hợp.