【无聊的盒子】

  最近,网上也是出现了一种神奇的盒子——无聊的盒子,我将用esp32和python来编译出来。

代码如下:

from machine import Pin
import time
#左反右正+限位开关

motor_1 = Pin(14, Pin.OUT)
motor_2 = Pin(27, Pin.OUT)
KXW1 = Pin(12, Pin.IN,Pin.PULL_UP)
KXW2 = Pin(13, Pin.IN,Pin.PULL_UP)


while True:#死循环
    KXW1_state = KXW1.value()
    KXW2_state = KXW2.value()

    # 如果开关打开,电机正转
    if KXW2_state == 0:
        motor_1.value(1)
        motor_2.value(0)
    # 如果开关关闭,反转电机
    else:
        motor_1.value(0)
        motor_2.value(1)
        
    if KXW1_state == 1:
        motor_1.value(0)
        motor_2.value(0)    

 我自己也升级了它,让它有了性格。

from machine import Pin, PWM, Timer
import time
import _thread
import machine
import random
pin0 = machine.Pin(0, machine.Pin.IN, machine.Pin.PULL_UP)
LED = machine.Pin(2,machine.Pin.OUT)


dj0 = PWM(Pin(27))
dj1 = PWM(Pin(14))
def waitdi(a,b):
    k=Pin(a, Pin.IN, Pin.PULL_UP)
    aa=~b
    while aa!=b:
        bb=k.value()
        if bb!=aa:
            time.sleep_ms(10)
            bb=k.value()
            if bb!=aa:
                aa=bb        
        time.sleep_ms(10)
def djyz(zx,zs):#电机运转函数(电机转向: “zz”  “fz”  “st”,电机转速0-1023)
    if zx=="zz":
        dj0.duty(zs)
        dj1.duty(0) 
    if zx=="fz":
        dj1.duty(zs)
        dj0.duty(0)
    if zx=="st":
        dj1.duty(1023)
        dj0.duty(1023)
n=0
while True:
    waitdi(16,1)
    djyz("st",800)
    print("waitdi...")
    waitdi(16,0)
    djyz("zz",1000)
    print("14on")
    waitdi(16,1)
    djyz("fz",1000)
    print("14off")
    waitdi(18,1)
    print("32on")
    djyz("st",800)
    n+=1
    print(n)
    if n == 5:
        state = random.randint(1,2) #当拨动达到5次时,随机在两个情绪中选择,1为sad,2为angry
        if state == 1:
            print("sad")
            time.sleep(2)
            djyz("zz",900)
            time.sleep(1)
            djyz("fz",900)
            time.sleep(2)
            djyz("zz",900)
            time.sleep(0.5)
            djyz("fz",900)
            djyz("zz",900)
            waitdi(16,1)
            djyz("fz",1000)
            waitdi(18,1)
            djyz("st",800)
        if state == 2:
            for i in range(5):
                print("angry")
                djyz("zz",1000)
                waitdi(16,1)
                djyz("fz",1000)
                waitdi(18,1)
                djyz("zz",1000)
                time.sleep(0.25)
        n=0
    

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值