第一课

点亮led

#外设LED闪烁
from machine import Pin
import time
led = Pin(22,Pin.OUT)
while True:led.on()time.sleep(1)led.off()time.sleep_ms(500)led.value(1)time.sleep_us(1000000)led.value(0)time.sleep(0.5)

流水灯

from machine import Pin
import timeled0 = Pin(21,Pin.OUT)
led1 = Pin(22,Pin.OUT)
led2 = Pin(23,Pin.OUT)while True:led0.value(1) #点亮ledtime.sleep(1)led0.value(0) #熄灭ledtime.sleep(1)led1.value(1)time.sleep(1)led1.value(0)time.sleep(1)led2.value(1)time.sleep(1)led2.value(0)time.sleep(1)

从1数到3

from machine import Pin
import timeled0 = Pin(32,Pin.OUT)
led1 = Pin(33,Pin.OUT)
led2 = Pin(25,Pin.OUT)while True:led0.on()time.sleep(0.5)led1.on()time.sleep(0.5)led1.on()time.sleep(0.5)led0.off()led1.off()led2.off()

按键控制led

import machineled = machine.Pin(32,machine.Pin.OUT)
button = machine.Pin(0,machine.Pin.IN)while True:if(button.value()==0):led.value(0)else:led.value(1)

第二课

## pwm

>>> from machine import PWM,Pin
>>> p22 = Pin(22,Pin.OUT)
>>> pwm = PWM(p22)
>>> pwm
PWM(22, freq=100, duty=736)
>>> pwm.freq(500)
>>> pwm.duty(512)
>>> pwm
PWM(22, freq=500, duty=512)

呼吸灯

from machine import Pin,PWM
import timep22 = Pin(22,Pin.OUT)
#构建PWM对象pwm_LED
pwm_led = PWM(p22,)
#设置pwm_led频率
pwm_led.freq(100) #1/T表示时间
#占空比
duty=0 #占空比为0是电压为0.灯泡不亮
while True:while duty<1008:duty=duty+16time.sleep_ms(10)   #延时10mspwm_led.duty(duty)while duty>0:duty=duty-16time.sleep_ms(10)pwm_led.duty(duty)

练习题

import machineled = machine.Pin(32,machine.Pin.OUT)
button = machine.Pin(0,machine.Pin.IN)while True:if(button.value()==0):led.value(0)else:led.value(1)

边沿出发中断

### boot 按键按下led状态与前一次按键相反from machine import Pin
import timeled = Pin(2,Pin.OUT)
button = Pin(21,Pin.IN,Pin.PULL_UP)mode = 0
def handler_interrupt(pin):global modeled.value(not led.value())if(mode<4):mode = mode + 1else:mode = 0print(mode)def get_mode():button.irq(trigger=Pin.IRQ_FALLING,handler=handler_interrupt)return modewhile 1:if get_mode():breakwhile 1:mode = get_mode()if mode==1:#tracing()print("tracing mode")elif mode==2:#avoid_obstacle()print("avoid obstacle mode")else:#stop()print("stop mode")

第三课

motor

from machine import Pin,PWM
import timedef gpio_init():global motor1global motor2motor1 = Pin(15,Pin.OUT)motor2 = Pin(2,Pin.OUT)#led = Pin(22,Pin.OUT)def simple_motor():gpio_init()motor1.value(0)motor2.value(1)#led.on()def spin_clockwise():motor1.value(0)motor2.value(1)def spin_anticlockwise():motor1.value(1)motor2.value(0)def stop():motor1.value(0)motor2.value(0)def smart_motor():gpio_init()spin_clockwise()time.sleep(10)spin_anticlockwise()time.sleep(10)stop()

car

from machine import Pin
import time# 设置管脚PIN
motro_left1  = Pin(15,Pin.OUT)
motro_left2  = Pin(2,Pin.OUT)
motro_right1  = Pin(16,Pin.OUT)
motro_right2  = Pin(4,Pin.OUT) #方向函数
def turn_left():motro_left1.value(0) # 输出高电平motro_left2.value(0)motro_right1.value(1) # 输出高电平motro_right2.value(0)
def turn_right():motro_left1.value(1) # 输出高电平motro_left2.value(0)motro_right1.value(0) # 输出高电平motro_right2.value(0)
def forward():motro_left1.value(1) # 输出高电平motro_left2.value(0)motro_right1.value(1) # 输出高电平motro_right2.value(0)
def backward():motro_left1.value(0) # 输出高电平motro_left2.value(1)motro_right1.value(0) # 输出高电平motro_right2.value(1)
def stop():motro_left1.value(0) # 输出高电平motro_left2.value(0)motro_right1.value(0) # 输出高电平motro_right2.value(0)def smart_car():forward()time.sleep(5)stop()turn_left()time.sleep(1)stop()turn_right()time.sleep(1)stop()backward()time.sleep(5)stop()

红外使用

from machine import Pin
from time import sleepinfared = Pin(5,Pin.IN)
led = Pin(22,Pin.OUT)
while True:if infared.value()==0:   # 检测到障碍物print('检测到障碍物')led.on()else:print('没有检测到障碍物')led.on()sleep(1)

第四课

pwm_motor

from machine import Pin,PWM
import timedef setup():global motor1global motor2motor1 = PWM(Pin(15,Pin.OUT),freq=20000, duty=0)motor2 = PWM(Pin(2,Pin.OUT),freq=20000, duty=0)
def fast():motor1.duty(1023)motor2.duty(0)
def slow():motor1.duty(768)motor2.duty(0)
def acw():motor1.duty(0)motor2.duty(768)
def stop():motor1.duty(0)motor2.duty(0)def smart_motor():setup()slow()time.sleep(10)fast()time.sleep(10)acw()time.sleep(10)stop()

pwm_car

from machine import Pin, PWM
from utime import sleep# 设置管脚PIN
left1_pin  = 15
left2_pin   = 2
right1_pin  = 16
right2_pin  = 4def motor_setup():global motro_left1global motro_left2global motro_right1     global motro_right2motro_left1 = PWM(Pin(left1_pin), freq=20000, duty=0)  # 创建motor pwm对象,设置为输出模式 motro_left2 = PWM(Pin(left2_pin),freq=20000, duty=0)motro_right1 = PWM(Pin(right1_pin),freq=20000, duty=0)   motro_right2 = PWM(Pin(right2_pin),freq=20000, duty=0)#方向函数
def turn_left():motro_left1.duty(400) # 输出高电平motro_left2.duty(0)motro_right1.duty(780) # 输出高电平motro_right2.duty(0)
def turn_right():motro_left1.duty(780) # 输出高电平motro_left2.duty(0)motro_right1.duty(400) # 输出高电平motro_right2.duty(0)
def fast_forward():motro_left1.duty(1000) # 输出高电平motro_left2.duty(0)motro_right1.duty(1000) # 输出高电平motro_right2.duty(0)
def slow_forward():motro_left1.duty(780) # 输出高电平motro_left2.duty(0)motro_right1.duty(780) # 输出高电平motro_right2.duty(0)
def backward():motro_left1.duty(0) # 输出高电平motro_left2.duty(780)motro_right1.duty(0) # 输出高电平motro_right2.duty(780)
def stop():motro_left1.duty(0) # 输出高电平motro_left2.duty(0)motro_right1.duty(0) # 输出高电平motro_right2.duty(0)def smart_car():slow_forward()sleep(5)#stop()fast_forward()sleep(5)#stop()turn_left()sleep(1)#stop()turn_right()sleep(1)#stop()backward()sleep(5)stop()

class 5

避障小车

from machine import Pin, PWM
from utime import sleep# 设置管脚PIN
left1_pin  = 15
left2_pin   = 2
right1_pin  = 16
right2_pin  = 4
avoid_left_pin = 26       #寻迹  22
avoid_right_pin = 25       #23def motor_setup():global motro_left1global motro_left2global motro_right1     global motro_right2motro_left1 = PWM(Pin(left1_pin), freq=20000, duty=0)  # 创建motor pwm对象,设置为输出模式 motro_left2 = PWM(Pin(left2_pin),freq=20000, duty=0)motro_right1 = PWM(Pin(right1_pin),freq=20000, duty=0)   motro_right2 = PWM(Pin(right2_pin),freq=20000, duty=0)
#寻迹避障等gpio初始化
def gpio_setup():global avoid_leftglobal avoid_rightavoid_left = Pin(avoid_left_pin,Pin.IN)avoid_right = Pin(avoid_right_pin,Pin.IN)#方向函数
def turn_left():motro_left1.duty(400) # 输出高电平motro_left2.duty(0)motro_right1.duty(780) # 输出高电平motro_right2.duty(0)
def turn_right():motro_left1.duty(780) # 输出高电平motro_left2.duty(0)motro_right1.duty(400) # 输出高电平motro_right2.duty(0)
def fast_forward():motro_left1.duty(1000) # 输出高电平motro_left2.duty(0)motro_right1.duty(1000) # 输出高电平motro_right2.duty(0)
def slow_forward():motro_left1.duty(780) # 输出高电平motro_left2.duty(0)motro_right1.duty(780) # 输出高电平motro_right2.duty(0)
def backward():motro_left1.duty(0) # 输出高电平motro_left2.duty(780)motro_right1.duty(0) # 输出高电平motro_right2.duty(780)
def stop():motro_left1.duty(0) # 输出高电平motro_left2.duty(0)motro_right1.duty(0) # 输出高电平motro_right2.duty(0)def avoid_obstacle():if avoid_left.value()==0 and avoid_right.value()==1 :       #前方任何一个红外遇到黑色(障碍物)backward()print('backward')sleep(1)turn_right()print('turn right')sleep(0.5)slow_forward()print('forward')elif avoid_left.value()==1 and avoid_right.value()==0 :       #前方任何一个红外遇到黑色(障碍物)backward()print('backward')sleep(1)turn_left()print('turn left')sleep(0.5)slow_forward()print('forward')elif avoid_left.value()==0 and avoid_right.value()==0 :       #前方任何一个红外遇到黑色(障碍物)backward()print('backward')sleep(1)slow_forward()print('forward')else:slow_forward()print('forward')if __name__=='__main__':motor_setup()gpio_setup()while True:avoid_obstacle()

按键控制寻迹避障小车

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# ----极光编程----
#  文件名:motor.py
#  版本:V2.0
#  author: Jessy
#  说明:智能小车实验
#####################################################
from machine import Pin, PWM
from utime import sleep# 设置管脚PIN
left1_pin  = 15
left2_pin   = 2
right1_pin  = 16   #5
right2_pin  = 4
avoid_left_pin = 5       #寻迹  22
avoid_right_pin = 17      #23
follow_left_pin = 19     #避障
follow_right_pin = 18
mode_pin = 21
redLED_pin = 22
blueLED_pin = 23#motor初始化
def motor_setup():global motro_left1global motro_left2global motro_right1     global motro_right2motro_left1 = PWM(Pin(left1_pin), freq=20000, duty=0)  # 创建motor pwm对象,设置为输出模式 motro_left2 = PWM(Pin(left2_pin),freq=20000, duty=0)motro_right1 = PWM(Pin(right1_pin),freq=20000, duty=0)   motro_right2 = PWM(Pin(right2_pin),freq=20000, duty=0)# 初始化寻迹避障模块GPIO口
def gpio_setup():global avoid_leftglobal avoid_rightglobal follow_leftglobal follow_rightglobal mode_buttonglobal led_redglobal led_blueavoid_left = Pin(avoid_left_pin,Pin.IN)avoid_right = Pin(avoid_right_pin,Pin.IN)follow_left = Pin(follow_left_pin,Pin.IN,Pin.PULL_UP)follow_right = Pin(follow_right_pin,Pin.IN,Pin.PULL_UP)mode_button = Pin(mode_pin,Pin.IN,Pin.PULL_UP)led_red = Pin(redLED_pin,Pin.OUT)led_blue = Pin(blueLED_pin,Pin.OUT)#方向函数
def turn_left():motro_left1.duty(380) # 输出高电平 400motro_left2.duty(0)motro_right1.duty(680) # 输出高电平motro_right2.duty(0)
def turn_right():motro_left1.duty(680) # 输出高电平motro_left2.duty(0)motro_right1.duty(380) # 输出高电平motro_right2.duty(0)
def fast_forward():motro_left1.duty(1000) # 输出高电平motro_left2.duty(0)motro_right1.duty(1000) # 输出高电平motro_right2.duty(0)
def slow_forward():motro_left1.duty(780) # 输出高电平motro_left2.duty(0)motro_right1.duty(780) # 输出高电平motro_right2.duty(0)
def backward():motro_left1.duty(0) # 输出高电平motro_left2.duty(780)motro_right1.duty(0) # 输出高电平motro_right2.duty(780)
def stop():motro_left1.duty(0) # 输出高电平motro_left2.duty(0)motro_right1.duty(0) # 输出高电平motro_right2.duty(0)def tracing():slow_forward()if follow_left.value()==1 and follow_right.value()==0:turn_left()print('Black line is detected on the left,turn left')elif follow_left.value()==0 and follow_right.value()==1:turn_right()print('Black line is detected on the ritht,turn right')else:slow_forward()print('forward')def avoid_obstacle():if avoid_left.value()==0 and avoid_right.value()==1 :       #前方任何一个红外遇到黑色(障碍物)backward()print('backward')sleep(1)turn_right()print('turn right')sleep(0.5)slow_forward()print('forward')elif avoid_left.value()==1 and avoid_right.value()==0 :       #前方任何一个红外遇到黑色(障碍物)backward()print('backward')sleep(1)turn_left()print('turn left')sleep(0.5)slow_forward()print('forward')elif avoid_left.value()==0 and avoid_right.value()==0 :       #前方任何一个红外遇到黑色(障碍物)backward()print('backward')sleep(1)slow_forward()print('forward')else:slow_forward()print('forward')
def led_show():if mode==1: #寻迹模式led_red.on()led_blue.off()elif mode==2: #避障模式led_red.off()led_blue.on()else:led_red.off()led_blue.off()#通过红外模块获取方向
#红外传感器,二极管不断发射红外线,遇到白色反射回来,红外接收管饱和,输出低电平,否则输出高电平
#    (black line:1,white line:0)def handler_interrupt(pin):global modeif(mode<2):mode = mode + 1else:mode = 0print("mode:",mode,end='\t')
def get_mode():mode_button.irq(trigger=Pin.IRQ_FALLING,handler=handler_interrupt)return mode#主程序
mode = 0
motor_setup()
gpio_setup()
# 按键监听
while True:if get_mode():breakwhile True:mode = get_mode()if mode==1:tracing()led_show()print("tracing mode",end="\t")elif mode==2:avoid_obstacle()led_show()print("avoid obstacle mode",end="\t")else:stop()led_show()breakprint("break",end="\t")

红外遥控小车

1、将一下代码下载至esp32开发板并命名为:myIRremote.py

# from machine import Pin
# import configs
import os
import machine
import utime
import micropython
import ujson
from machine import Pin, PWM
micropython.alloc_emergency_exception_buf(100)'''
无重复:
[9047, 4488, 554, 573, 558, 626, 556, 599, 558, 598, 558, 599, 557, 600, 532,
625, 532, 624, 558, 1672, 582, 1624, 554, 1698, 534, 1693, 533, 1697, 558, 1648,
555, 1696, 559, 1670, 557, 1671, 558, 598, 559, 1670, 558, 599, 582, 550, 582,
598, 559, 1671, 532, 623, 557, 600, 586, 1614, 562, 624, 557, 1645, 584, 1672,
558, 1671, 559, 573, 557, 1696, 557]
有重复
[9072, 4492, 535, 601, 535, 600, 581, 571, 588, 596, 559, 572, 586, 596, 535,
622, 534, 597, 586, 1669, 581, 1669, 535, 1696, 585, 1644, 534, 1696, 559, 1670,
534, 1696, 558, 1673, 559, 1645, 610, 572, 560, 1670, 534, 629, 554, 570, 587,
573, 558, 1696, 559, 598, 533, 624, 558, 1671, 533, 623, 560, 1643, 588, 1642,
561, 1696, 533, 623, 560, 1671, 559, 39230, 9049, 2246, 583, 95490, 9027, 2265,
534, 95509, 9023, 2268, 559, 95482, 9014, 2269, 533, 95514, 9019, 2268, 585, 95443,
9041, 2268, 559, 95467, 9043, 2271, 531, 95495, 9043, 2247, 581, 95490, 9020,
2243, 559, 95517, 9043, 2246, 558, 95492, 9042, 2244, 559, 95492, 9017, 2268, 534,
95490, 9046, 2269, 537, 95516, 9041, 2243, 535, 95517, 9089, 2152, 579, 95489,
9044, 2244, 585, 95492, 9025, 2269, 585]
'''class IR(object):CODE = {162: "1", 98: "2", 226: "3", 34: "4", 2: "5", 194: "6", 224: "7", 168: "8", 144: "9",152: "0", 104: "*", 176: "#", 24: "up", 74: "down", 16: "left", 90: "right", 56: "ok"}def __init__(self, gpioNum):self.irRecv = machine.Pin(gpioNum, machine.Pin.IN, machine.Pin.PULL_UP)self.irRecv.irq(trigger=machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING,handler=self.__logHandler)self.ir_step = 0self.ir_count = 0self.buf64 = [0 for i in range(64)]self.recived_ok = Falseself.cmd = Noneself.cmd_last = Noneself.repeat = 0self.repeat_last = Noneself.t_ok = Noneself.t_ok_last = Noneself.start = 0self.start_last = 0        self.changed = Falsedef __logHandler(self, source):thisComeInTime = utime.ticks_us()# 更新时间curtime = utime.ticks_diff(thisComeInTime, self.start)self.start = thisComeInTimeif curtime >= 8500 and curtime <= 9500:self.ir_step = 1returnif self.ir_step == 1:if curtime >= 4000 and curtime <= 5000:self.ir_step = 2self.recived_ok = Falseself.ir_count = 0self.repeat = 0elif curtime >= 2000 and curtime <= 3000:  # 长按重复接收self.ir_step = 3self.repeat += 1elif self.ir_step == 2:  # 接收4个字节self.buf64[self.ir_count] = curtimeself.ir_count += 1if self.ir_count >= 64:self.recived_ok = Trueself.t_ok = self.start #记录最后ok的时间self.ir_step = 0elif self.ir_step == 3:  # 重复if curtime >= 500 and curtime <= 650:self.repeat += 1# elif self.ir_step == 4:  # 结束码,若果没有结束码有可能收到重复码再从step=1开始#     if curtime >= 500 and curtime <= 650:#         self.ir_step = 0def __check_cmd(self):byte4 = 0for i in range(32):x = i * 2t = self.buf64[x] + self.buf64[x+1]byte4 <<= 1if t >= 1800 and t <= 2800:byte4 += 1user_code_hi = (byte4 & 0xff000000) >> 24user_code_lo = (byte4 & 0x00ff0000) >> 16data_code = (byte4 & 0x0000ff00) >> 8data_code_r = byte4 & 0x000000ffself.cmd = data_codedef scan(self):        # 接收到数据if self.recived_ok:self.__check_cmd()self.recived_ok = False#数据有变化if self.cmd != self.cmd_last or self.repeat != self.repeat_last or self.t_ok != self.t_ok_last:self.changed = Trueelse:self.changed = False#更新self.cmd_last = self.cmdself.repeat_last = self.repeatself.t_ok_last = self.t_ok#对应按钮字符s = self.CODE.get(self.cmd)return self.changed, s, self.repeat, self.t_ok

2、以下为main函数

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# ----极光编程----
#  文件名:motor.py
#  版本:V2.0
#  author: Jessy
#  说明:智能小车实验
#####################################################
from machine import Pin, PWM
import machine
from utime import sleep
from myIRremote import IR# 设置管脚PIN
left1_pin  = 13
left2_pin   = 12
right1_pin  = 14   #5
right2_pin  = 27
avoid_left_pin = 26       #寻迹  22
avoid_right_pin = 25      #23
follow_left_pin = 33     #避障
follow_right_pin = 32
mode_pin = 35
IRremote_pin = 34
redLED_pin = 15
blueLED_pin = 2
yellowLED_pin = 4
#buzzer_pin = 33#motor初始化
def motor_setup():global motro_left1global motro_left2global motro_right1     global motro_right2motro_left1 = PWM(Pin(left1_pin), freq=20000, duty=0)  # 创建motor pwm对象,设置为输出模式 motro_left2 = PWM(Pin(left2_pin),freq=20000, duty=0)motro_right1 = PWM(Pin(right1_pin),freq=20000, duty=0)   motro_right2 = PWM(Pin(right2_pin),freq=20000, duty=0)# 初始化寻迹避障模块GPIO口
def gpio_setup():global avoid_leftglobal avoid_rightglobal follow_leftglobal follow_rightglobal mode_buttonglobal led_redglobal led_blueglobal led_yellowavoid_left = Pin(avoid_left_pin,Pin.IN)avoid_right = Pin(avoid_right_pin,Pin.IN)follow_left = Pin(follow_left_pin,Pin.IN,Pin.PULL_UP)follow_right = Pin(follow_right_pin,Pin.IN,Pin.PULL_UP)mode_button = Pin(mode_pin,Pin.IN,Pin.PULL_UP)led_red = Pin(redLED_pin,Pin.OUT)led_blue = Pin(blueLED_pin,Pin.OUT)led_yellow = Pin(yellowLED_pin,Pin.OUT)
#方向函数
def turn_left():motro_left1.duty(380) # 输出高电平 400motro_left2.duty(0)motro_right1.duty(680) # 输出高电平motro_right2.duty(0)
def turn_right():motro_left1.duty(680) # 输出高电平motro_left2.duty(0)motro_right1.duty(380) # 输出高电平motro_right2.duty(0)
def fast_forward():motro_left1.duty(1000) # 输出高电平motro_left2.duty(0)motro_right1.duty(1000) # 输出高电平motro_right2.duty(0)
def middle_forward():motro_left1.duty(840) # 输出高电平motro_left2.duty(0)motro_right1.duty(840) # 输出高电平motro_right2.duty(0)
def slow_forward():motro_left1.duty(780) # 输出高电平motro_left2.duty(0)motro_right1.duty(780) # 输出高电平motro_right2.duty(0)
def backward():motro_left1.duty(0) # 输出高电平motro_left2.duty(780)motro_right1.duty(0) # 输出高电平motro_right2.duty(780)
def stop():motro_left1.duty(0) # 输出高电平motro_left2.duty(0)motro_right1.duty(0) # 输出高电平motro_right2.duty(0)def tracing():slow_forward()if follow_left.value()==1 and follow_right.value()==0:turn_left()print('Black line is detected on the left,turn left')elif follow_left.value()==0 and follow_right.value()==1:turn_right()print('Black line is detected on the ritht,turn right')else:slow_forward()print('forward')def avoid_obstacle():if avoid_left.value()==0 and avoid_right.value()==1 :       #前方任何一个红外遇到黑色(障碍物)backward()print('backward')sleep(1)turn_right()print('turn right')sleep(0.5)slow_forward()print('forward')elif avoid_left.value()==1 and avoid_right.value()==0 :       #前方任何一个红外遇到黑色(障碍物)backward()print('backward')sleep(1)turn_left()print('turn left')sleep(0.5)slow_forward()print('forward')elif avoid_left.value()==0 and avoid_right.value()==0 :       #前方任何一个红外遇到黑色(障碍物)backward()print('backward')sleep(1)slow_forward()print('forward')else:slow_forward()print('forward')def ir_control():stop()machine.freq(160000000)state = 0ir = IR(IRremote_pin)changed, s, repeat, ir_ok = ir.scan()if changed == True:if repeat >= 2:if s == 'up' and state != 1:state = 1slow_forward()          print("state1"," up")elif s == 'down' and state != 2:state = 2backward()        print("state2"," down")elif s == 'left' and state != 3:state = 3turn_left()         print("state3"," left")elif s == 'right' and state != 4:state = 4turn_right()       print("state4"," right")else:if state != 0:state = 0stop()         print("state0")sleep(0.2)def led_show():if mode==1: #寻迹模式led_red.on()led_blue.off()led_yellow.off()elif mode==2: #避障模式led_red.off()led_blue.on()led_yellow.off()elif mode==3:led_red.off()led_blue.off()led_yellow.on()else:led_red.off()led_blue.off()led_yellow.off()#通过红外模块获取方向
#红外传感器,二极管不断发射红外线,遇到白色反射回来,红外接收管饱和,输出低电平,否则输出高电平
#    (black line:1,white line:0)def handler_interrupt(pin):global modeif(mode<3):mode = mode + 1else:mode = 0print("mode:",mode,end='\t')
def get_mode():mode_button.irq(trigger=Pin.IRQ_FALLING,handler=handler_interrupt)return mode#主程序
mode = 0
motor_setup()
gpio_setup()
while True:if get_mode():breakwhile True:mode = get_mode()if mode==1:tracing()led_show()print("tracing mode",end="\t")elif mode==2:avoid_obstacle()led_show()print("avoid obstacle mode",end="\t")elif mode==3:ir_control()led_show()print("IRremote control mode",end="\t")else:stop()led_show()breakprint("break",end="\t")
![在这里插入图片描述](https://img-blog.csdnimg.cn/931c4031aa9b4564979f4a711e8dc932.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5res5a2Q,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
![在这里插入图片描述](https://img-blog.csdnimg.cn/e0ded69e1b804645b6689f1f0c2c66d0.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5res5a2Q,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)

基于ESP32的microPython开发的智能小车相关推荐

  1. 基于stm32cubeMX的stm32f103c8t6的HAL库开发的智能小车------小车接线和材料准备

    我的第一辆智能小车 提示:小编也是初学者,本文适用于想完成一个基础智能四轮车的初学者,大佬还请勿喷,欢迎各位指出错误的地方 暑假在家无聊,刚好也在学习STM32的HAL库,就想着做个小车巩固自己学到的 ...

  2. 用启明云端基于ESP32模块的开发板来快速了解天猫精灵

    为什么要了解天猫精灵呢? 在物联网时代,单纯的"互联"已经无法满足需求,需要让万物"智联"才能发挥它的应用价值.AI语音的简单.易用特性将成为万物"智 ...

  3. 毕业论文 | 基于安卓手机蓝牙控制的智能小车设计(源代码)

    博主github:https://github.com/MichaelBeechan 博主CSDN:https://blog.csdn.net/u011344545 预告:源代码.论文.电路图设计链接 ...

  4. android智能小车 论文,基于安卓手机蓝牙控制的智能小车设计毕业设计(论文).doc...

    编 号: 审定成绩: 毕业设计(论文) 设计(论文)题目: 学院:学 生 姓 名 :专 业 :班 级 :学 号 :指 导 教 师 :答辩组 负责人 : 填表时间:年月 摘 要 随着物联网的兴起,And ...

  5. 基于ESP32学习MicroPython(三): 流水灯案例

    一.工作目标 通过ESP32 Pico和ESPBlock完成流水灯案例 二.环境准备 ESP32 Pico主板(已安装支持MicroPython固件) ESPBlock扩展板 Micro-USB线 母 ...

  6. stm32 micropython vscode_在vscode里基于Pymakr插件进行esp32的micropython开发

    1. 安装vscode里面的插件 安装pymakr插件前,需要安装Node.js,这里我安的是推荐的12.18.3LTS. 可以按默认路径安装,下面的提示注意勾上 按提示操作,然后会自动启动windo ...

  7. (1)esp32的micropython开发

    1.esp32的了解 ESP32 是 Espressif 开发的一系列低成本.低功耗的片上系统 (SoC) 微控制器,包括 Wi-Fi 和蓝牙无线功能以及双核处理器. 在基于以上图的基础上就可以相对准 ...

  8. 35、基于51单片机自动灭火避障智能小车 消防灭火小车系统设计

    摘要 智能作为现代的新发明,是以后的发展方向,他可以按照预先设定的模式在一个环境里自动的运作,不需要人为的管理,可应用于科学勘探等等的用途.智能小车就是其中的一个体现,本次设计的多功能智能灭火避障小车 ...

  9. 89c51控制小车运行c语言,基于STC89C52单片机和STM32的智能小车控制系统

    摘要:针对智能车的控制系统, 选用STC89C52作为整个系统的主控芯片, 并进行硬件电路设计;以NREF24L01作为无线接收模块, 选取E18-D80NK-N红外光电传感器作为避障模块的核心器件; ...

最新文章

  1. 企业开发与社交开发相辅相成
  2. LoadRunner 测试Tuxedo的问题
  3. 不孕不育怎么办?AI帮你提高成功率
  4. java 定义类变量初始化吗_Java的变量有哪些类型?变量如何定义?如何初始化?请说明理由并举例_学小易找答案...
  5. php简单的用户留言板实现内容(1-23)
  6. 开源项目怎么变成自己的_将产品变成开源项目的深入指南
  7. python连接不上数据库_详解pycharm连接不上mysql数据库的解决办法
  8. Matlab之数据处理
  9. 数据仓库流程和代码说明
  10. LeetCode刷题——26. 删除排序数组中的重复项
  11. 开发者选项看html,手机怎么打开开发者选项?开发者模式开启方法
  12. dlut1216-位运算(异或)水题
  13. 写作业用白光还是暖白光?分享色温4000K暖白光的护眼台灯
  14. 用一组方程表示一个平面
  15. STM32——NFC门禁模块(RC522)
  16. 孙子兵法与管理演讲全文
  17. 业精于勤荒于嬉,行成于思毁于随
  18. 2020usnews加拿大计算机排名,2020年USNews排名之加拿大大学排名及其介绍
  19. smart计算机英语作文,介绍smart cars英语作文【精选】
  20. OpenCore黑苹果之拯救者14(HD4600)开启HDMI音频

热门文章

  1. 线条的样式solid dotted dashed
  2. Mac Navicat连接MySQL8.0.11出错:2003 - Can't connect to MySQL server on ……(61 Connection refused)
  3. ps抠图都有哪些方面,有哪些相关教程呢
  4. Bootstrap-02 (前台开发框架)
  5. 创建一个最简单的win32应用程序
  6. 1146 Topological Order
  7. 音频合并的步骤有哪些
  8. 【一些好听的英文歌曲】
  9. How to build openssl with fips module on Linux and Windows?
  10. Guitar Pro 功能介绍之RSE引擎