Mục lục:

QuizzPi, một trò chơi đố trên Raspberry Pi với Python: 7 bước (có hình ảnh)
QuizzPi, một trò chơi đố trên Raspberry Pi với Python: 7 bước (có hình ảnh)

Video: QuizzPi, một trò chơi đố trên Raspberry Pi với Python: 7 bước (có hình ảnh)

Video: QuizzPi, một trò chơi đố trên Raspberry Pi với Python: 7 bước (có hình ảnh)
Video: HMI app với raspberry pi và PyQT 2024, Tháng bảy
Anonim
QuizzPi, một trò chơi đố trên Raspberry Pi với Python
QuizzPi, một trò chơi đố trên Raspberry Pi với Python
QuizzPi, một trò chơi đố trên Raspberry Pi với Python
QuizzPi, một trò chơi đố trên Raspberry Pi với Python

QuizzPi là một trò chơi đố kiểu arcade. QuizzPi được sinh ra vì tôi có nhu cầu cho con gái mình một trò giải trí. Cô ấy 7 tuổi và cô ấy đã yêu cầu sử dụng các công nghệ mới, ý tưởng là tạo ra thứ gì đó vừa thú vị vừa mang tính giáo dục.

Yêu cầu của dự án:

  • Dễ sử dụng
  • Cầm tay
  • Dễ dàng nâng cấp bộ câu hỏi và câu trả lời
  • Bảng điểm cao

Nhiều mục có thể cấu hình. Bạn có thể tạo cơ sở dữ liệu câu hỏi / câu trả lời của riêng mình hoặc bạn có thể sử dụng một trong nhiều máy chủ cung cấp cơ sở dữ liệu, nơi bạn quyết định loại câu hỏi khó, khó,… Tôi đã tạo cho con gái mình một cơ sở dữ liệu gồm các câu hỏi lớp một, nhưng chúng tôi có thể thay đổi cấu hình để nhận các câu hỏi đố từ máy chủ oline. Phiên bản có hướng dẫn này lấy các câu hỏi từ một câu hỏi cộng tác và câu hỏi, Cơ sở dữ liệu câu đố mở. Tôi đã chọn câu hỏi kiến thức chung nhưng bạn có thể chọn câu hỏi về phim, thể thao hoặc tôn giáo.

Tôi xin lỗi vì tiếng Anh kém của tôi. Tôi là người Tây Ban Nha nhưng tôi muốn tạo tài liệu hướng dẫn này bằng tiếng Anh để nó có thể tiếp cận với nhiều người hơn.

Đi nào!

Bước 1: Bạn cần một số vật liệu và công cụ…

Bạn Cần Một số Vật liệu và Công cụ…
Bạn Cần Một số Vật liệu và Công cụ…

Chắc chắn bạn có hầu hết vật liệu ở nhà…

  • Raspberry Pi 2/3 với thẻ SD 8Gb trở lên (35 đô la)
  • Raspberry Pi LCD 3.5 inch có vỏ (11 $). Xem (đây là tùy chọn, bạn có thể sử dụng bất kỳ màn hình nào bạn có, bạn chỉ cần sửa đổi hộp QuizzPi cho nó)
  • Ắc quy. Bạn có thể sử dụng một bộ sạc dự phòng hoặc bạn có thể sử dụng một bộ pin 18650 tự làm (5 đô la). Trong trường hợp của tôi, tôi đã sử dụng một pin dự phòng Aukey 5000mah (12 đô la). Nhìn thấy
  • Bốn nút arcade. Tôi có những thứ này ở nhà (3 đô la, 12 nút với giá 10 đô la). Nhìn thấy
  • Một công tắc bật / tắt (0,25 đô la). Nhìn thấy
  • Hai đầu nối USB (0,50 đô la)
  • Một cáp USB / micro USB
  • Một loa rẻ tiền (tùy chọn) (0,25 đô la). Nhìn thấy
  • Một bộ khuếch đại PAM8403 (tùy chọn) (0,80 đô la). Nhìn thấy
  • Một số dây để liên kết các nút, đầu nối usb và công tắc bật / tắt sang chân GPIO (1 $?)
  • Bốn nam châm neodymium hoặc bạn có thể sử dụng bất cứ thứ gì để đóng cửa sau. Nhìn thấy
  • Ván ép. Tôi đã sử dụng ván ép 5mm nhưng bạn có thể sử dụng bất kỳ loại nào bạn có ở nhà (2 đô la)

Bạn cũng cần một số công cụ…

  • Tiện ích hàn
  • Tua vít
  • Súng Hotglue
  • Máy in 3D (tùy chọn)

Đi nào!

Bước 2: Hãy thiết kế một chiếc ốp lưng QuizzPi thú vị…

Hãy thiết kế một hộp đựng QuizzPi thú vị…
Hãy thiết kế một hộp đựng QuizzPi thú vị…
Hãy thiết kế một chiếc ốp lưng QuizzPi thú vị…
Hãy thiết kế một chiếc ốp lưng QuizzPi thú vị…

Điều đầu tiên chúng ta cần là biết chúng ta cần bao nhiêu không gian để bao gồm phần cứng (Raspberry + màn hình + nút + pin + dây). Có tính đến các phần được mô tả trong bước trước, tôi đã tạo thiết kế 3D của vỏ bằng cách sử dụng nhà thiết kế 3D trực tuyến miễn phí Tinkercad (Xem). Nếu bạn muốn in mô hình 3D của vỏ, bạn có thể tải xuống từ tệp đính kèm Ốp lưng QuizzPi.stl.

Vào lúc đó, tôi phải quyết định in mô hình trên máy in 3D của mình hay làm nó từ ván ép. Tôi nghĩ rằng vì con gái tôi, tôi có thể dành thêm một chút thời gian để làm nó từ ván ép. Vì vậy, tôi lấy các kế hoạch từ mô hình 3D và cắt gỗ.

Bước tiếp theo là dán nóng các bộ phận…

Bước 3: Làm Vỏ ván ép…

Làm Vỏ ván ép…
Làm Vỏ ván ép…
Làm Vỏ ván ép…
Làm Vỏ ván ép…
Làm Vỏ ván ép…
Làm Vỏ ván ép…
Làm Vỏ ván ép…
Làm Vỏ ván ép…

Khi tôi đã cắt tất cả các bộ phận ván ép của kế hoạch, bước tiếp theo là dán keo nóng chúng. Trong một số lần tham gia, tôi đưa quân tiếp viện để làm cho chiếc hộp mạnh hơn. Trong khung bezel, tôi dùng bút chì vẽ đường viền của màn hình LCD và cắt nó ra. Tôi tạo bốn lỗ cho các vít. Nếu bạn sử dụng một màn hình khác, bạn phải sửa đổi điều này.

Cửa sau đóng bằng hai nam châm dán vào cánh cửa và hai nam châm dán vào thùng máy, nên tôi tránh sử dụng bản lề.

Vụ án QuizzPi đã hoàn thành…

Bước 4: Đấu dây các Pins GPIO, Gắn Raspberry + LCD…

Đấu dây các chân GPIO, Gắn Raspberry + LCD…
Đấu dây các chân GPIO, Gắn Raspberry + LCD…
Đấu dây các chân GPIO, Gắn Raspberry + LCD…
Đấu dây các chân GPIO, Gắn Raspberry + LCD…
Đấu dây các chân GPIO, Gắn Raspberry + LCD…
Đấu dây các chân GPIO, Gắn Raspberry + LCD…

Chúng ta cần kết nối các nút với Raspberry Pi để nó có thể biết nút nào được nhấn. Các nút được kết nối với chân GPIO. Chúng ta cần bốn chân GPIO IN và một chân GPIO Gnd. Tôi đã sử dụng chân GPIO 31 (GPIO6), 33 (GPIO13), 35 (GPIO19), 37 (GPIO26) và 39 (Gnd) cho các nút màu đỏ, vàng, xanh lục và xanh lam tương ứng. Màn hình này có giao diện SPI. Điều này có nghĩa là nó được kết nối với ngân hàng GPIO, vì vậy trước tiên tôi đặt các dây kết thúc bằng hình vuông trong các chân nút và sau đó tôi kết nối với màn hình LCD.

Bước tiếp theo là gắn vỏ Raspberry + LCD + vào khung bezel. Tôi đã sử dụng các vít riêng của vỏ Raspberry Pi.

QuizzPi đã được gắn kết…

Bước 5: Pin, Các nút, Công tắc và Đầu nối USB…

Pin, Các nút, Công tắc và Đầu nối USB…
Pin, Các nút, Công tắc và Đầu nối USB…
Pin, Nút, Công tắc và Đầu nối USB…
Pin, Nút, Công tắc và Đầu nối USB…
Pin, Các nút, Công tắc và Đầu nối USB…
Pin, Các nút, Công tắc và Đầu nối USB…

Tôi đã sử dụng Tinkercad một lần nữa để thiết kế một chiếc kẹp để giữ pin dự phòng vào vỏ máy. Tôi in clip bằng máy in 3D của mình và ghép vào vỏ bằng súng lục keo nóng. Tôi đính kèm tệp.stl của mô hình bên dưới. Nếu không có quyền truy cập vào máy in 3D, bạn có thể tham gia nguồn điện bằng băng dán.

Bước tiếp theo là kết nối công tắc bật / tắt giữa pin sạc dự phòng và Raspberry Pi. Tôi lấy cáp USB và chỉ cắt dây nguồn, sau đó tôi hàn một đầu dây vào một chân của công tắc bật / tắt và đầu dây còn lại vào chân kia của công tắc bật / tắt. Vì vậy, khi công tắc tắt nguồn không đi qua swtich và Raspberry tắt và khi công tắc bật nguồn sẽ chuyển qua swtich và Raspberry được bật.

Khi pin sạc dự phòng phóng điện là một vấn đề khó khăn khi phải lấy nó ra để sạc, vì vậy tôi không muốn lấy nó ra để sạc. Vấn đề là cổng sạc dự phòng là USC loại C, và tôi chỉ có cáp của sạc dự phòng. Vì vậy, tôi đã hàn hai đầu nối USB cái và đặt vào hộp đựng. Đầu nối bên trong để kết nối cáp ngân hàng điện và đầu nối bên ngoài để kết nối cáp nguồn USB.

Để đặt các nút và đấu dây chúng rất dễ dàng. Các nút có 2 chân, một chân của mọi nút kết nối với cáp chung đi đến chân GPIO nối đất và chân còn lại của nút kết nối với chân GPIO tương ứng của mâm xôi. Sơ đồ đấu dây được thể hiện trong sơ đồ đính kèm.

Hệ thống âm thanh dựa trên PAM8403, một bộ khuếch đại âm thanh giá rẻ. Điều này là cần thiết vì âm thanh nhận được từ giắc cắm của Raspberry Pi không quá mạnh để làm cho một chiếc loa hoạt động. Bạn cần cấp nguồn cho nó với 5v trở lên. Trong các hình ảnh đính kèm, bạn có thể thấy cách đấu dây của bộ khuếch đại và loa. Chúng ta cần một jack 3.5mm đực để kết nối với jack audio / video của Rapberry. Tôi đã hàn 3 dây vào giắc cắm: âm thanh, video và nối đất. Sơ đồ đính kèm cho biết chân cắm là gì nhé mọi người. Sau đó, tôi hàn một dây vào công tắc Bật / Tắt để lấy nguồn và một dây khác với dây nối đất từ cáp ngân hàng điện. Sau đó, tôi kết nối các dây từ loa với các đầu ra của bộ khuếch đại. Phần dễ dàng là phân bổ hệ thống âm thanh trong thùng máy. Bạn có thể thấy trong các hình ảnh.

QuizzPi đã được gắn kết, trong bức ảnh cuối cùng, chúng ta vẫn có thể nhìn thấy các vết bút chì trên gỗ, nhưng đã đến lúc phần mềm… chúng ta hãy bắt đầu tạo một công cụ đố vui nhỏ…

Bước 6: Hình ảnh và lập trình Rasbian Quiz Engine…

Hình ảnh và lập trình Rasbian Quiz Engine…
Hình ảnh và lập trình Rasbian Quiz Engine…
Hình ảnh và lập trình Rasbian Quiz Engine…
Hình ảnh và lập trình Rasbian Quiz Engine…
Hình ảnh và lập trình Rasbian Quiz Engine…
Hình ảnh và lập trình Rasbian Quiz Engine…
Hình ảnh và lập trình Rasbian Quiz Engine…
Hình ảnh và lập trình Rasbian Quiz Engine…

Chúng tôi nhấn nút nguồn. Chẳng có gì xảy ra. Ôi chúa ơi! Nó không hoạt động! Điều gì có thể sai? Bất kỳ cáp nào không có kết nối? Đừng lo lắng, chúng tôi cần cài đặt một hình ảnh trên thẻ SD…

Công cụ bài kiểm tra được viết bằng Python 3, vì vậy chúng tôi cần một hình ảnh Raspbian có cài đặt trình biên dịch Python. Tại thời điểm này, chúng ta phải tính đến loại màn hình mà chúng ta đã cài đặt. Màn hình của tôi là giao diện SPI và người bán cung cấp hình ảnh Raspbian với tất cả các trình điều khiển màn hình đã được cài đặt. Phiên bản Raspbian này cũng có công cụ Python. Bạn có thể tải xuống hình ảnh này trong liên kết này.

Nếu bạn có màn hình HDMI hoặc RCA, bạn có thể tải xuống hình ảnh Raspbian cuối cùng có sẵn trên trang web raspberrypi.org. Chú ý: bạn cần phiên bản Rasbian dành cho máy tính để bàn, vì vậy hãy tránh tải xuống hình ảnh Lite Raspbian. Hình ảnh này chứa trình biên dịch Python.

Để cài đặt hình ảnh vào thẻ SD, chúng ta có thể sử dụng bất kỳ ứng dụng nào. Tôi sử dụng Win32diskimager. Sau đó, chúng tôi lắp thẻ SD vào Raspberry và nhấn nút bật / tắt. Nó hoạt động! Bây giờ chúng ta cần tạo một chương trình Python với công cụ quizz.

Bước tiếp theo là tải xuống các tệp của công cụ bài kiểm tra. Tôi đã đính kèm mã nguồn trong tệp QuizzPi.zip. Tải xuống mã nguồn và tạo một thư mục trong Raspberry Pi:

# mkdir / home / pi / QuizzPi

và giải nén tệp đã tải xuống vào thư mục này.

QuizzPi.zip chứa các tệp này:

  • QuizzPi.py - nó chứa mã
  • Tệp hình ảnh-p.webp" />
  • Tệp âm thanh MP3 - bạn có thể thay đổi để cá nhân hóa
  • losmejores.txt - nó chứa bảng Điểm cao, bạn có thể xóa nó để khởi tạo bảng
  • Hướng dẫn.txt

Tôi sẽ không giải thích đầy đủ về cách tôi đã lập trình mã động cơ bằng Python vì nó khó đối với những người không có kiến thức về lập trình. Họ chỉ cần lưu các tệp trong Raspberry. Những người có kiến thức về lập trình sẽ có thể sửa đổi nó mà không cần bất kỳ lời giải thích nào;)

Các câu hỏi và câu trả lời được lấy từ cơ sở dữ liệu cộng tác Hỏi & Đáp được gọi là Cơ sở dữ liệu câu đố mở, bạn có thể tìm thấy tại đây. Bạn có thể thay đổi danh mục và độ khó của các câu hỏi thay đổi một dòng trong tệp QuizzPi.py:

#Cargo desde URLurl = 'https://opentdb.com/api.php?amount=10&type=multiple'

thay đổi bằng url thu được từ trình cấu hình api

Tôi đã thiết kế màn hình trò chơi bằng Photoshop, bạn có thể sửa đổi chúng. Bạn chỉ phải giữ lại một số khu vực màu trắng trong màn hình câu hỏi, trong màn hình kết quả và màn hình điểm cao do công cụ trò chơi ghi trên đó.

Bạn cũng có thể cá nhân hóa âm thanh của trò chơi. Bạn chỉ phải thay đổi các tệp.mp3 bởi những người khác mà bạn muốn, bạn phải giữ nguyên các tên giống nhau. Bạn có thể nhận được rất nhiều âm thanh từ cơ sở dữ liệu trực tuyến, tôi nhận được mỏ từ Hiệu ứng âm thanh miễn phí.

Bây giờ bạn phải sửa đổi Raspbian của mình để tự động chạy QuizzPi. Bạn có thể đọc bài viết này nơi giải thích cách thực hiện:

Chúng tôi đã hoàn thành !!!

Bước 7: Trình diễn…

Image
Image

Để hoàn thành hướng dẫn này, bạn có thể xem video này. Bạn có thể thấy nó dễ sử dụng và độ khó của câu hỏi phụ thuộc vào bạn…

Chỉnh sửa: video được cập nhật ngay bây giờ với âm thanh!

Cuộc thi Vi điều khiển
Cuộc thi Vi điều khiển

Á quân trong Cuộc thi Vi điều khiển

Đề xuất: