Mục lục:

Bộ giải phương trình bậc hai 2 nút: 5 bước
Bộ giải phương trình bậc hai 2 nút: 5 bước

Video: Bộ giải phương trình bậc hai 2 nút: 5 bước

Video: Bộ giải phương trình bậc hai 2 nút: 5 bước
Video: Lập trình Python - 15. Bài tập giải phương trình bậc 2 trong Lập trình Python 2024, Tháng mười một
Anonim
Image
Image

Giới thiệu

chào mừng đến với hướng dẫn đầu tiên của tôi!

Tôi bắt đầu dự án này để mở rộng kiến thức lập trình của mình. Thông thường, bạn chỉ cần hợp nhất các mã nguồn khác nhau để tạo ra chương trình bạn cần. Mục tiêu của tôi là viết mã chương trình của riêng tôi để tương tác với một công cụ. Tôi thích tạo ra một công cụ đơn giản để tính toán. Cách đây vài tháng, tôi có hỗ trợ một người bạn giải phương trình bậc hai.

Bazinga! đây là trường hợp sử dụng!

Tôi đã sử dụng lại một hộp kim loại cũ. Tôi thích giao diện và giao diện tối giản của các công cụ. đó là lý do tại sao tôi chỉ muốn sử dụng 2 nút để đưa đầu vào. Đối thủ sẽ được hiển thị bằng một màn hình LCD đơn giản.

Quân nhu

danh sách vật liệu:

hộp

2 nút kiểu Arcade

Arduino Nano, hoặc tương tự

Màn hình LCD 1602 với bộ điều hợp I2C

BẬT / TẮT chuyển đổi

Dây điện

2x điện trở 10k Ohm

khối pin 9v

đầu nối cho pin 9v

breadboard

linh tinh (mảnh gỗ, góc kim loại, dây buộc cáp, vít, vòng đệm)

công cụ:

nhìn thấy

mỏ hàn

máykhoan

máy tính để lập trình

Bước 1: Quay lại toán học

Phần mềm
Phần mềm

Backround toán học

Phương trình bậc hai 2 nút hiển thị các giá trị mà hàm số bậc hai đi qua trục X. Một hàm bậc hai có thể đi qua trục X không bao giờ, một hoặc hai lần.

Có nhiều cách khác nhau để tính toán các giá trị này. Đối với công cụ của tôi, tôi sử dụng công thức PQ (tôi không chắc, liệu biểu thức này có được sử dụng trên toàn thế giới hay không).

Phương trình bậc hai có dạng:

ax² + bx + c = 0

Để tính các điểm giao nhau, hãy chia dạng cho a x² + px + q = 0 với p = b / a; q = c / a

công thức PQ:

x1 = -p / 2 + sqrt ((p / 2) ²-q)

x2 = -p / 2 - sqrt ((p / 2) ²-q)

Kết quả x có thể nhận giá trị 0, 1 hoặc 2. Điều đó phụ thuộc vào giá trị dưới căn bậc hai.

Giá trị> 0 thì Hệ thức PQ có hai nghiệm.

Giá trị = 0 thì Công thức PQ có một nghiệm

là giá trị <0 thì Công thức PQ không có nghiệm. Hàm không vượt qua Trục X.

Bước 2: Phần mềm

Phần mềm

Để lập trình, tôi đã sử dụng Arduino IDE chính thức. Mục tiêu của tôi là tạo ra chương trình phần mềm của riêng tôi. Giao diện của tôi nên có hai nút. Một nút để bước giữa các cấp độ khác nhau, nút thứ hai để thay đổi các giá trị ở các cấp độ khác nhau.

Để giải công thức PQ, tôi tạo cấu trúc ở trên:

Chắc chắn, tôi không phát minh lại bánh xe. Để tạo mã, tôi đã sử dụng mô-đun:

- sự tàn lụi

- trưng bày

Những điểm sau là thách thức lớn nhất:

- Làm thế nào tôi có thể chọn dấu hiệu? Tôi đã giải quyết thách thức này bằng modulo chức năng (liên kết). Mã chia đầu vào cho 2. Đầu vào là một số lẻ thì giá trị sẽ là số âm, ngược lại là số dương.

- Sau khi chạy hết các cấp, tôi phải khai báo tất cả các giá trị về 0.

- Văn bản hiển thị chỉ cần xóa các ký tự gửi. Nếu mã gửi một từ có 4 ký tự, chỉ cần 4 ký tự này sẽ được tải lại. Nếu từ trước đó có nhiều ký tự hơn, các ký tự sẽ ở lại. Để khắc phục điều đó, văn bản được hiển thị sẽ được lấp đầy bằng các khoảng trống. Tất cả 16 ký tự trong một hàng sẽ được tải lại.

Mã cuối cùng được đính kèm.

Bước 3: Phần cứng

Phần cứng
Phần cứng
Phần cứng
Phần cứng
Phần cứng
Phần cứng
Phần cứng
Phần cứng

Phần cứng

Các bộ phận được liệt kê ở trên. Đối với dự án này, phần cứng rất đơn giản. Tôi chỉ cần một bộ vi xử lý Arduino, 2 nút và một màn hình. Được rồi, nếu bạn muốn đặt trong một chiếc hộp, bạn cũng cần một chiếc hộp và nguồn điện.

Tôi sử dụng lại một hộp kim loại cũ. Tôi đã khoan một lỗ trên nút để cắm công tắc cấp điện. Nắp hộp có 3 lỗ. Tôi khoan hai lỗ cho các nút lớn và cắt một cửa sổ để hiển thị. Tôi dán một miếng gỗ nhỏ phía sau tấm bìa để có nhiều thứ hơn để cố định màn hình và các nút. Để nâng cấp giao diện, hộp có nhãn dán.

Đối với nguồn điện, tôi khuyên bạn nên sử dụng pin khối 9V có thể sạc lại. Tôi kết nối pin qua công tắc nguồn với Arduino. Pin được cố định vào hộp bằng một góc kim loại nhỏ. Đầu nối cho pin chỉ được cố định bằng dây cáp.

Bộ vi xử lý là một bản sao của Arduino nano. Đối với trường hợp sử dụng này, hiệu suất là đủ. Attiny 85, ví dụ như bộ vi xử lý Digispark, đã bị từ chối. Arduino được đặt "bảng mạch bánh mì" bên cạnh màn hình.

Màn hình là màn hình LCD 1602. bạn có thể sử dụng 16 ký tự trong hai hàng. Bạn có thể tìm thấy màn hình này trong nhiều máy khác nhau, một công cụ. Có hai cách khác nhau để sử dụng màn hình này. Bạn có thể kết nối màn hình trực tiếp với bộ điều khiển hoặc bạn có thể sử dụng tiện ích bổ sung để giao tiếp với màn hình thông qua I2C. I2C là một giao thức tiêu chuẩn. Tôi đã sử dụng nó, vì nó dễ dàng hơn để kết nối màn hình với bộ điều khiển. Bạn chỉ cần 4 cáp thay vì 16, VCC đến 5V, GND đến GND, SDA đến A4, SCL đến A5. Màn hình được cố định bằng vít vào nắp hộp.

Các nút rất lớn! họ có phong cách trò chơi arcade điển hình. Tôi thích nó! Các nút được kết nối với chân kỹ thuật số 4 và 7. Xin đừng quên Điện trở 10K!

Để mở nắp, chẳng hạn như để đổi pin, tôi đã sử dụng dây cáp dài hơn cắm vào breadboard.

Bước 4: Đấu dây

Đấu dây
Đấu dây

Bước 5: Cải tiến trong tương lai

Cải tiến trong tương lai

Sau khi kết thúc một dự án, bạn luôn tìm ra lỗi hoặc tính năng để cải thiện. Trong dự án này, tôi rất vui vì chỉ cần tìm thấy một vài điểm, tôi sẽ cải thiện cho tương lai.

Đối với lần sau, tôi sẽ cải thiện việc khai thác trong hộp. Tôi đã sửa màn hình, công tắc nguồn và các nút ở phần đầu của dự án này. Cuối cùng, tôi gặp một chút khó khăn khi tìm đủ dung lượng cho pin và bộ vi xử lý trong hộp. Khi tôi đặt nút và màn hình hiển thị bên ngoài nhiều hơn, tôi sẽ không gặp bất kỳ khó khăn nào về không gian cho các bộ phận bên trong hộp.

Hiện tại tôi không có một ca sử dụng nào để giải phương trình bậc hai. Để cải thiện công cụ này, tôi muốn mở rộng công cụ với những thứ toán học hơn nữa, ví dụ như phép tính hoặc công thức cơ bản như công thức nhị phân hoặc câu của Pythagoras.

Đề xuất: