Mục lục:

Arduino Hangman ở Morse: 9 bước
Arduino Hangman ở Morse: 9 bước

Video: Arduino Hangman ở Morse: 9 bước

Video: Arduino Hangman ở Morse: 9 bước
Video: Arduino based Morse Code tutor - Ham radio projects. 2024, Tháng mười một
Anonim
Arduino Hangman ở Morse
Arduino Hangman ở Morse

Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách thiết lập Arduino của riêng bạn để chơi Hangman bằng cách gửi mã Morse với đèn pin đơn giản hoặc chức năng đèn pin từ điện thoại của bạn.

Tất cả những gì bạn cần làm theo là: Một bảng Arduino. 10 đèn LED, dây để kết nối tất cả. Văn bản: Một phần tử Piezo (để thêm âm thanh).

Bước 1: Thiết lập đèn LED

Thiết lập đèn LED
Thiết lập đèn LED

Trò chơi Morse này sẽ sử dụng 4 đèn để chỉ 4 chữ cái trong từ cần đoán và 5 đèn để chỉ số mạng mà người chơi phải đoán, vì vậy trước hết bạn sẽ phải kết nối 9 đèn LED -đèn theo cách thông thường, như có thể thấy trong hình.

Bước 2: Thêm cảm biến ánh sáng tạm thời

Chúng tôi không thể ném tiền vào các cửa hàng điện tử, vì vậy tôi quyết định giữ cho dự án này rẻ, bằng cách sử dụng đèn LED đơn giản làm cảm biến ánh sáng tạm thời.

Tất cả những gì bạn cần làm là kết nối mặt cộng của đèn LED với một trong các cổng analog của bạn (trong trường hợp của tôi là A0) và mặt trừ với mặt đất của bạn.

Bước 3: Thêm từ điển của bạn

Thêm từ điển của bạn
Thêm từ điển của bạn

Điều đầu tiên, hãy bắt đầu bằng cách thêm một loại từ điển để dịch các chữ cái sang mã Morse tương ứng của chúng. Để làm điều này, chúng ta chỉ cần tạo một mảng 26 x 5, với ô đầu tiên của mỗi mảng phụ có chữ cái và 4 ô tiếp theo có mã Morse tương ứng hoặc một khoảng trắng nếu không còn mã. Vì vậy, ví dụ với chữ s, vị trí đầu tiên có 's', vị trí thứ hai, thứ ba và thứ tư có dấu '.' và vị trí cuối cùng có ''.

Bước 4: Làm cho đèn sáng lên theo mặc định

Làm cho đèn sáng lên theo mặc định
Làm cho đèn sáng lên theo mặc định
Làm cho đèn sáng lên theo mặc định
Làm cho đèn sáng lên theo mặc định

Trong bước này, chúng tôi đảm bảo đèn sáng khi chương trình bắt đầu và Morse ký tự mà chúng đại diện khi người dùng đã đoán đúng chúng (mã cho điều này sẽ được viết trong bước 6). Chúng tôi cũng đảm bảo rằng chỉ có nhiều đèn chiếu sáng cho mạng sống của người chơi.

Trước đó, hãy đảm bảo rằng bạn có một mảng với số cổng và số nguyên được đặt thành 0 để biểu thị thời gian đèn sẽ bật, tắt và phần nào của đèn LED Morse hiện đang hiển thị.

Bước 5: Thêm đầu vào

Thêm đầu vào
Thêm đầu vào

Bây giờ chúng ta sẽ viết mã để kiểm tra xem đầu phát có chiếu sáng đèn LED được kết nối với cổng A0 tương tự của chúng ta hay không và liệu họ có dịch nó sang chữ cái chính xác hay không.

Để đảm bảo kết quả đọc là chính xác, chúng tôi tính trung bình cứ 20 lần đọc bằng đèn LED và sử dụng con số đó để theo dõi xem đèn tắt hay bật. Để thực hiện việc này, khi bắt đầu chương trình, chúng tôi đặt NUM_AVG thành số lần chúng tôi muốn nó kiểm tra ánh sáng trước khi tính trung bình. Con số này càng cao thì việc đọc càng chính xác, nhưng nó cũng có thể gây ra sự chậm trễ.

msBtnPressed đại diện cho khoảng thời gian mà đèn đã sáng.lastPressed là một boolean theo dõi xem trong vòng lặp trước đó đèn có sáng hay không.

Bước 6: Xử lý đầu vào

Xử lý đầu vào
Xử lý đầu vào
Xử lý đầu vào
Xử lý đầu vào

Đối với bước này, chúng ta sẽ xem xét những việc cần làm sau khi đã đủ thời gian để cho rằng sẽ không có thêm Morse nào nữa và chúng ta cần kiểm tra xem Morse đã gửi dưới dạng một bức thư hay không và liệu nó có phải là một bức thư chính xác hay không.

Để làm điều này, chúng ta cần đặt chuỗi wordToGuess thành từ mà chúng ta muốn người chơi đoán. Cá nhân tôi có một trình tạo số ngẫu nhiên để đặt nó thành một từ ngẫu nhiên khi bắt đầu, nhưng bạn cũng có thể chỉ cần đặt nó thành một từ duy nhất.

Chúng ta cũng cần đảm bảo rằng bộ đếm tăng lên theo từng vòng lặp, nếu không thì toàn bộ chương trình sẽ không làm được gì cả. Hơn nữa, tôi đã thêm chức năng trì hoãn, để đảm bảo có một vòng lặp mỗi mili giây.

Tái bút: Tất cả các hàm Serial.println chỉ dành cho mục đích thử nghiệm. Chúng có thể bị xóa sau khi hoàn thành.

GoodTimer và badTimer chỉ đơn giản là các giá trị nếu bạn định sử dụng phần tử Piezo để thêm âm thanh. Nếu bạn muốn làm như vậy, bạn cũng phải thêm mã vào hình thứ hai, nơi phát âm thanh.

Bước 7: Xác định các chữ cái được đoán chính xác

Morsing những chữ cái được đoán chính xác
Morsing những chữ cái được đoán chính xác

Như đã hứa trước đó, trong bước này, chúng ta sẽ tạo ra các đèn đại diện cho các chữ cái đã đoán đúng Morse chữ cái của chúng.

Đối với điều này, tôi đã viết hai hàm: morseThis và nextLetter, nó sử dụng các số mà chúng tôi đã đặt trước đó trong mảng bộ định thời của chúng tôi và thay đổi chúng tùy thuộc vào phần nào của mã Morse mà nó hiện đang chiếu.

Nếu bộ hẹn giờ đến thời điểm mà đèn sẽ sáng, nó chỉ cần bật đèn và chạy mã để đặt bộ hẹn giờ mới để tắt và bật lại đèn. tắt, nó tắt đèn và sau đó đặt mã đại diện cho phần tiếp theo của bức thư. Nếu không có phần tiếp theo, nó sẽ đặt lại thành phần đầu tiên.

Bước 8: Xem xét thiết lập và đặt lại của chúng tôi

Xem lại Thiết lập và Đặt lại của Chúng tôi
Xem lại Thiết lập và Đặt lại của Chúng tôi

Tất nhiên chương trình sẽ không chạy nếu đèn không được đặt ở đầu ra và đầu vào. Tôi cũng thêm một trình tạo số ngẫu nhiên để thêm một từ từ danh sách các từ mà tôi đã đặt trong một mảng có tên là wordsToGuess.

Bên cạnh đó, chúng ta nên thêm chức năng đặt lại và đảm bảo tất cả các giá trị được đặt lại về mặc định.

Bước 9: Tất cả các biến trong một hình ảnh

Tất cả các biến trong một hình ảnh
Tất cả các biến trong một hình ảnh

Cuối cùng, bạn có thể sử dụng điều này để kiểm tra xem bạn đã thiết lập đúng tất cả các biến cần thiết hay chưa.

Bây giờ hãy tận hưởng trò chơi Hangman ở Morse!

Đề xuất: