Mục lục:
Video: Garden Train - Arduino Wireless NMRA DCC: 4 bước (có hình ảnh)
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:33
Hơn nữa với hướng dẫn trước đây với DCC trên hệ thống đường sắt chết, tôi đã phát triển thêm ý tưởng với Trạm chỉ huy DCC cầm tay có bàn phím và màn hình LCD. Trạm chỉ huy chứa tất cả mã hóa cần thiết cho các lệnh NMRA DCC, tuy nhiên thay vì kết nối với đường ray, dữ liệu được chuyển bằng mô-đun vô tuyến RF24L01 + đến một bộ thu gắn trong xe tải hoặc dưới loco - bất cứ nơi nào phòng cho phép.
Tất nhiên, locos của bạn phải được gắn bộ giải mã khả năng chịu tải phù hợp với động cơ máy.
Bước 1: Thiết kế hệ thống
Arduino Pro Mini là trung tâm của thiết kế. Sử dụng Fritzing để phát triển mạch và sản xuất PCB.
Tôi đã có thể sử dụng cùng một PCB cho cả máy phát và máy thu do đó tiết kiệm được một số chi phí.
Máy phát có các kết nối cho bàn phím và LCD trong khi máy thu không yêu cầu những kết nối này và sử dụng cầu H để cung cấp đầu ra DCC cho loco.
Một sự phát triển hơn nữa bao gồm các kết nối cho cầu nối H lớn hơn nếu được yêu cầu cho các locos mạnh hơn.
PCF8574 có thể bị xóa nếu bạn sử dụng màn hình LCD đi kèm với ba lô cho phép kết nối SCA / SCL trên Arduino để cấp nguồn cho màn hình chỉ bằng 2 dây. = Khoảng £ 10,00 mỗi cái. + pin
Arduino Pro Mini. x 2 = £ 4,00
Bàn phím màng 4x3 = £ 3,00
Màn hình LCD 20 x 4 = £ 7,00
PCF5874 = £ 1,80
NRF24L01 +. mô-đun radio x 2 = £ 5,80
Sản xuất PCB với giá 10 lần giảm giá (hoặc có thể sử dụng bảng Vero) = £ 24 hoặc £ 4,80 cho 2 lần giảm giá
3,3 v Regulator = £ 0,17 (gói 25 từ RS Comp)
Bộ điều chỉnh 5v LM7805 = £ 0,30
Cầu H SN754410ne = 3,00 bảng
Pin AA 2700 maH có thể sạc lại Lloytron x 12 = £ 22,00. (pin được đánh giá maH thấp hơn sẽ rẻ hơn)
Tụ điện, bình, chân, đầu nối, v.v. = khoảng £ 2,00
Bao vây 190x110x60 mm = £ 8,00
Máy phát - bộ sạc điện thoại / pin = £ 2,00
Bước 2: Máy phát
Sơ đồ mạch được hiển thị nơi các chân D2 đến D8 trên Arduino Pro Mini được kết nối với bàn phím. Chiết áp 100k ohm được kết nối với chân Analog A0 để điều chỉnh tốc độ. Các chân SDA và SCL tạo thành chip PCF8574 được kết nối với chân A4 và A5 trên Arduino Pro Mini bằng cách hàn dây vào các chân ở lớp trên cùng của Pro Mini.
Bản phác thảo Arduino được đính kèm để tải xuống.
Tôi đã sử dụng màn hình LCD 20 x 4 cho phép 4 dòng thông tin với 20 ký tự mỗi dòng. Bàn phím cung cấp menu sau:
1 đến 9 = địa chỉ loco * = hướng 0 = đèn # = Menu chức năng cho các phím từ 1 đến 8
Mô tả cơ bản về Arduino Pro Mini sketch: Dòng mã này sắp xếp thông báo DCC ở định dạng HEX. struct Message msg [MAXMSG] = {
{{0xFF, 0, 0xFF, 0, 0, 0, 0}, 3}, // tin nhắn không hoạt động
{{locoAdr, 0, 0, 0, 0, 0, 0}, 3} // địa chỉ 3 byte
};
Để lưu các cài đặt cho mỗi loco, một loạt các mảng được thiết lập như sau:
int la [20]; // mảng chứa số loco
int sa [20]; // mảng để giữ giá trị tốc độ
int fda [20]; // mảng để chứa dir
int fla [20]; // mảng giữ đèn
int f1a [20]; // mảng chứa fun1…..
int f8a [20]; // mảng chứa fun8
Để cho phép các hướng dẫn DCC được sửa đổi khi chúng tôi thực hiện:
Để biết hướng dẫn về tốc độ: void sửa đổi_speed (struct Message & x) {
x.data [0] = locoAdr;
x.data [1] = 0x40; // locoMsg với 28 bước tốc độ}
Đối với hướng dẫn chức năng:
void sửa đổi_group1 (struct Message & x) {
x.data [0] = locoAdr;
x.data [1] = 0x80; // locoMsg với lệnh nhóm một 0x80}
Vòng lặp chính của bản phác thảo:
void loop (void) {if (read_locoSpeed ()) {assembly_dcc_msg_speed ();
send_data_1 (); // gửi dữ liệu qua mạng không dây
chậm trễ (10);
send_data_3 (); // hiển thị dữ liệu trên màn hình LCD
send_data_4 (); // hiển thị dữ liệu trên màn hình nối tiếp}
if (read_ function ()) {
assembly_dcc_msg_group1 ();
send_data_1 ();
chậm trễ (10);
send_data_3 (); }}
Cập nhật dữ liệu khi tốc độ thay đổi:
boolean read_locoSpeed () Điều này sẽ phát hiện địa chỉ loco mới, thiết lập tốc độ hoặc hướng và sửa đổi 'dữ liệu' HEX cho phù hợp. Ở đây tôi đã chỉ định 28 bước tốc độ và để đáp ứng tiêu chuẩn NMRA S 9.2, dữ liệu tốc độ phải được tìm thấy từ bảng tra cứu trong 'speed_step ()'
void speed_step () {switch (locoSpeed) {
case 1: data | = 0x02; nghỉ;
trường hợp 2: dữ liệu | = 0x12; nghỉ;
trường hợp 3: dữ liệu | = 0x03; nghỉ;
………
trường hợp 28: dữ liệu | = 0x1F; nghỉ; }}
Cập nhật dữ liệu khi các chức năng thay đổi:
boolean read_ Chức năng ()
if (fla [locoAdr] == 0) {data = 0x80;
} // đèn đầu tắt
if (fla [locoAdr] == 1) {
dữ liệu = 0x90;
} // đầu đèn sáng
Đối với mỗi chức năng:
if (f2a [locoAdr] == 0) {data | = 0; }. // Chức năng 2 tắt
if (f2a [locoAdr] == 1) {
dữ liệu | = 0x02; // Hàm 2 trên} 'dữ liệu' được xây dựng bằng cách kết hợp ['| =' ghép theo bitwise hoặc] mã HEX cho mỗi Hàm.
Bước 3: Người nhận
Sơ đồ mạch được hiển thị nơi các chân 5 và 6 của Arduino Pro Mini được sử dụng để cung cấp tín hiệu DCC được cung cấp cho cầu H. Các cặp cầu H được mắc song song để tăng công suất dòng điện. Tùy thuộc vào dòng điện do loco rút ra, một bộ tản nhiệt có thể được yêu cầu gắn vào thiết bị DIP 16 chân, hoặc một cầu H hạng nặng có thể được kết nối bên ngoài.
Bản phác thảo Arduino được đính kèm để tải xuống. Tín hiệu DCC được tạo ra từ một đồng hồ chạy ở 2MHZ
void SetupTimer2 () thực hiện công việc này.
Đồng hồ bao gồm 'xung ngắn' (58us) cho '1' trong dữ liệu DCC và 'xung dài' (116us) cho '0' trong dữ liệu DCC.
Khoảng trống vòng lặp, lấy dữ liệu từ radio và nếu tìm thấy một chuỗi hợp lệ, dữ liệu sẽ được chuyển đổi thành dữ liệu DCC.
void loop (void) {if (radio.available ()) {bool done = false; done = radio.read (inmsg, 1); // đọc dữ liệu đã nhận
char rc = inmsg [0]; // đặt ký tự đã đọc vào mảng này
if (rc! = 0) {. // nếu ký tự không bằng 0
inString.concat (rc); // xây dựng thông báo}
if (rc == '\ 0') {// nếu ký tự là '/ 0' cuối tin nhắn
Serial.println (inString); // in thông báo đã lắp ráp
dây(); // hủy cấu trúc thông báo chuỗi để nhận hướng dẫn DCC
} } }
Bước 4: Chạy Locos
Để tránh gián đoạn dữ liệu do chạy nhiều đoàn tàu trên cùng một đường ray, bạn phải ngắt kết nối các điểm tiếp xúc giữa các bánh xe và đường ray cho mỗi xe tải và xe tải được sử dụng.
Tận hưởng những chuyến tàu chạy miễn phí bất kể điều kiện đường ray - thật là khác biệt! Không phức tạp, không bắt đầu dừng và không cần làm sạch.
Pin tôi đã sử dụng là loại LLoytron AA x 12. Có thể sạc lại được. Tôi đã chế tạo một bộ sạc đặc biệt dành cho chúng có thể sạc 6 pin cùng một lúc. (xem có thể hướng dẫn)
Đề xuất:
Xin chào Train! ATtiny 1614: 8 bước (có hình ảnh)
Xin chào tàu! ATtiny 1614: Đối với lớp Học viện Fab của tôi, tôi phải tạo một bảng với bộ vi điều khiển, nút và đèn LED. Tôi sẽ sử dụng Eagle để tạo ra nó
Điều khiển từ xa Bluetooth bằng gỗ cho Lego Duplo Train: 3 bước (có hình ảnh)
Điều khiển từ xa Bluetooth bằng gỗ cho tàu Lego Duplo: Các con tôi yêu thích chiếc xe lửa Lego Duplo nhỏ này, đặc biệt là đứa con út của tôi, người đang gặp khó khăn trong việc giao tiếp bằng lời nói, vì vậy tôi muốn tạo cho con một thứ gì đó có thể giúp con chơi với tàu mà không phụ thuộc vào người lớn hoặc điện thoại / máy tính bảng. Một cái gì đó
Máy ảnh hồng ngoại hình ảnh nhiệt tự làm: 3 bước (có hình ảnh)
Máy ảnh hồng ngoại hình ảnh nhiệt tự làm: Xin chào! Tôi luôn tìm kiếm các Dự án mới cho các bài học vật lý của mình. Hai năm trước, tôi đã xem một báo cáo về cảm biến nhiệt MLX90614 từ Melexis. Loại tốt nhất chỉ với 5 ° FOV (trường nhìn) sẽ phù hợp với máy ảnh nhiệt tự chế
Tự làm cảm biến hình ảnh và máy ảnh kỹ thuật số: 14 bước (có hình ảnh)
Tự làm cảm biến hình ảnh và máy ảnh kỹ thuật số: Có rất nhiều hướng dẫn trực tuyến về cách xây dựng máy ảnh phim của riêng bạn, nhưng tôi không nghĩ rằng có bất kỳ hướng dẫn nào về việc xây dựng cảm biến hình ảnh của riêng bạn! Cảm biến hình ảnh có sẵn từ rất nhiều công ty trực tuyến và việc sử dụng chúng sẽ giúp thiết kế
Ánh sáng video thân mật / Ánh sáng chụp ảnh cầm tay: 7 bước (với hình ảnh)
Ánh sáng video thân mật / Ánh sáng chụp ảnh cầm tay: Tôi biết bạn đang nghĩ gì. Bằng cách " thân mật, " Ý tôi là chiếu sáng cận cảnh trong các tình huống ánh sáng khó - không nhất thiết dành cho " các tình huống thân mật. &Quot; (Tuy nhiên, nó cũng có thể được sử dụng cho việc đó …) Là một nhà quay phim thành phố New York - hoặc