7.5 GAME - 10秒ゲーム¶
集中力を試すために、次に私に続いてゲームデバイスを作りましょう。 傾きスイッチと棒を接続して魔法の杖を作成します。この杖を振ると、4桁のセグメントディスプレイがカウントを始め、再度振るとカウントが停止します。勝つためには、表示されるカウントを 10.00 に保つ必要があります。友達とこのゲームで時間の魔法使いが誰かを見つけることができます。
必要な部品
このプロジェクトで必要な部品は以下のとおりです。
一式をまとめて購入する方が確実に便利です、リンクはこちら:
名前 |
このキットのアイテム |
リンク |
---|---|---|
ケプラーキット |
450以上 |
以下のリンクから個々に購入することもできます。
SN |
部品 |
数量 |
リンク |
---|---|---|---|
1 |
1 |
||
2 |
Micro USBケーブル |
1 |
|
3 |
1 |
||
4 |
数本 |
||
5 |
5(4-220Ω、1-10KΩ) |
||
6 |
1 |
||
7 |
1 |
||
8 |
1 |
回路図
この回路は、 5.3 時間カウンター に傾きスイッチを追加したものです。
GP16は、傾きスイッチが垂直のときに高く、傾いたときに低くなります。
配線図
コード
注釈
kepler-kit-main/micropython
のパス下にある7.5_game_10_second.py
ファイルを開くか、このコードをThonnyにコピーして、"Run Current Script"をクリックするかF5キーを押して実行してください。右下隅の"MicroPython(Raspberry Pi Pico)"インタープリターをクリックすることを忘れないでください。
詳細なチュートリアルについては、 コードを直接開いて実行する を参照してください。
import machine
import time
SEGCODE = [0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f]
sdi = machine.Pin(18,machine.Pin.OUT)
rclk = machine.Pin(19,machine.Pin.OUT)
srclk = machine.Pin(20,machine.Pin.OUT)
placePin = []
pin = [10,13,12,11]
for i in range(4):
placePin.append(None)
placePin[i] = machine.Pin(pin[i], machine.Pin.OUT)
def pickDigit(digit):
for i in range(4):
placePin[i].value(1)
placePin[digit].value(0)
def clearDisplay():
hc595_shift(0x00)
def hc595_shift(dat):
rclk.low()
time.sleep_us(200)
for bit in range(7, -1, -1):
srclk.low()
time.sleep_us(200)
value = 1 & (dat >> bit)
sdi.value(value)
time.sleep_us(200)
srclk.high()
time.sleep_us(200)
time.sleep_us(200)
rclk.high()
#time.sleep_us(200)
def display(num):
pickDigit(0)
hc595_shift(SEGCODE[num%10])
pickDigit(1)
hc595_shift(SEGCODE[num%100//10])
pickDigit(2)
hc595_shift(SEGCODE[num%1000//100]+0x80)
pickDigit(3)
hc595_shift(SEGCODE[num%10000//1000])
tilt_switch = machine.Pin(16,machine.Pin.IN)
count_flag = False
def shake(pin):
global timeStart,count_flag
count_flag = not count_flag
if count_flag == True:
timeStart = time.ticks_ms()
tilt_switch.irq(trigger=machine.Pin.IRQ_RISING, handler=shake)
count = 0
while True:
if count_flag == True:
count = int((time.ticks_ms()-timeStart)/10)
display(count)
魔法の杖を振ると、4桁の7セグメントディスプレイがカウントを開始し、再度振るとカウントが停止します。 表示されたカウントが10.00になった場合、あなたの勝ちです。もう一度振るとゲームが続きます。