Quiz z bramkami logicznymi

Typ_projektu
microPython
Zdjecie główne
Krótki opis projektu

Jest to prosty program służący nauczycielowi informatyki szkoły podstawowej jako pomoc naukowa.

Ma zapoznać uczniów z podstawowymi informacjami  dotyczącymi bramek logicznych i ich rozpoznawania. Przed wykonaniem ćwiczenia uczniowe i nauczyciel powinni zapoznać się z tabelą bramek logicznych, zamieszczoną w zdjęciach.

 

Niezbędne elementy

-płytka ESP8266
-płytka stykowa
-bramka logiczna OR SN74AC32N (podłączona na rys schematu)
-bramka logiczna AND SN74AHC08N (druga od góry)
-bramka logiczna NAND SN74ACOON (trzecia od góry)
-5 przewodów męsko-męskich

Sprzęt

Dowolny komputer kompatybilny z oprogramowaniem Thonny i co najmniej jednym portem usb.

Opis projektu

Możliwa jest zmiana bramek w trakcie ćwiczenia - wystarczy odpiąć jeden koniec każdego przewodu i przełączyć go w miejsce mu odpowiadające w innej bramce.
Prostota układu umożliwia łatwe złożenie go ponownie przez nauczyciela/uczniów w celu zapoznania uczestników z podstawami tworzenia fizycznych układów mikroprocesorowych.

Napisano krótki kod w języku micropython realizujący ćwiczenie. Kod przypisuje syngały wejścia oraz wyjścia do odpowiednich pinów płytki. Następnie generowane są 4 sekwencje liczb 0, 1 oraz są wyświetlane razem z ich wartościami wyjściowymi po przejściu przez płytkę. Na podstawie widocznych wartości na wejściach i wyjściach użytkownik ma za zadanie poprawnie odgadnąć bramkę, przez którą przechodził sygnał.

Zdjęcia
kod programu
from machine import Pin
import time

# Define the output pins connected to the gate inputs
output_pin_1 = Pin(4, Pin.OUT)  # GPIO 2 for output 1
output_pin_2 = Pin(5, Pin.OUT)  # GPIO 4 for output 2

# Define the input pin connected to the gate output
gate_output_pin = Pin(12, Pin.IN)  # GPIO 5 for gate output connected back to ESP8266

# Define the possible input combinations
input_combinations = [(0, 0), (0, 1), (1, 0), (1, 1)]

# Generate and display input combinations, and their corresponding gate output
gate_outputs = []
for input_combination in input_combinations:
    value_1, value_2 = input_combination

    # Set the output values
    output_pin_1.value(value_1)
    output_pin_2.value(value_2)

    # Wait for a moment
    time.sleep(1)

    # Read the gate output value
    gate_output = gate_output_pin.value()
    gate_outputs.append(gate_output)

    # Display input combination and gate output
    print("Input:", input_combination, "Gate output:", gate_output)

# Recognize the gate based on the number of "0"s and "1"s
num_zeros = gate_outputs.count(0)
num_ones = gate_outputs.count(1)

if num_zeros == 3 and num_ones == 1:
    gate_used = "AND"
elif num_zeros == 1 and num_ones == 3:
    gate_used = "OR"
elif num_zeros == 4:
    gate_used = "NAND"
else:
    gate_used = "Unknown"

# Display the recognized gate and gate output to the user
print("\nGate recognized:", gate_used)

# Quiz: Ask the user to guess the logical gate
user_guess = input("Guess the logical gate (NAND, OR, or AND): ").upper()

# Verify the answer
if user_guess == gate_used:
    print("Correct! The gate used was", gate_used + ".")
else:
    print("Incorrect. The gate used was", gate_used + ".")
staw odpowiedni język programowania (ostatnia ikona powyżej)
Schemat
Tagi
quiz bramki andornand micropython szkoła informatyka