传感器实验——LCD显示小车状态

  • LCD显示小车状态
    • MR开发板
    • 寻迹小车
    • 1.54寸液晶屏st7789 spi
  • 示例程序
    • 效果

我们生活中的车都有显示设备,既然有了屏幕就别浪费。使用LCD屏直观的显示一下小车的状态吧


LCD显示小车状态

MR开发板

寻迹小车

1.54寸液晶屏st7789 spi

Created with Raphaël 2.3.0导入模块定义控制引脚,输出电平值检测小车状态根据小车状态,在LCD屏幕上显示小车状态yes

示例程序

main.py

import time
from pyb import SPI,Pin,Timer,delay
from ztst7789class import ST7789
import tt32
from car import car
from time import sleep_us,ticks_us,sleep
#定义引脚,低电平时,指示灯亮。
xun1 = Pin(("C3"),Pin.IN)
xun4 = Pin(("C2"),Pin.IN)
xun3 = Pin(("C1"),Pin.IN)
xun2 = Pin(("C0"),Pin.IN)
#---------TFT pin 定义
RES = Pin('C4')
BLK = Pin('B10')
DC = Pin('C5')
CS = Pin('B11')
SCL = Pin('A5')
TFT_MISO_PIN = Pin('A6')
SDA = Pin('A7')bl = Pin(BLK, Pin.OUT)
def lcdinit():   #初始化函数global LCDbl.value(1)  #屏幕背光打开spi = SPI(1,SPI.MASTER,baudrate=7800000,polarity=0,phase=0)LCD = ST7789(spi, cs=Pin(CS), dc=Pin(DC), rst=RES)
def color565(r, g, b):  #255 255 255return (r & 0xf8) << 8 | (g & 0xfc) << 3 | b >> 3
lcdinit()    #初始化
LCD.erase()
LCD.set_font(tt32)  #屏幕字体
while True:pyb.udelay(1000)print('xun1:%d,xun2:%d,xun3:%d,xun4:%d' %(xun1.value(),xun2.value(),xun3.value(),xun4.value()))#检测到黑线时循迹模块相应的指示灯亮,端口电平为(0)#未检测到黑线时循迹模块相应的指示灯灭,端口电平为(1)if(xun1.value()==0):car.left(20)LCD.chars("left",80,100)delay(500)LCD.erase()elif(xun4.value()==0):car.right(20)LCD.chars("right",80,100)delay(500)LCD.erase()else:car.go(40)LCD.chars("go,go",80,100)

car.py

#main.py -- put your code here!
from pyb import Pin, Timer,delay
from time import sleep_us,ticks_us,sleep
cs = Pin('C8',Pin.OUT_PP)    #C8设置为输出引脚输出高电平
cs(1)
ch1 =None
ch2 =None     #初始化
A0= Pin('B12',Pin.OUT_PP)    #右侧马达
A1 = Pin('B13',Pin.OUT_PP)
B0 = Pin('B14',Pin.OUT_PP)    #左侧马达
B1 = Pin('B15',Pin.OUT_PP)#A电机(右)
p1 = Pin('B8')
tim1 = Timer(10, freq=120)
ch1 = tim1.channel(1, Timer.PWM, pin=p1)
#B电机(左)
p2 = Pin('B9')
tim2 = Timer(4, freq=120)
ch2 = tim2.channel(4, Timer.PWM, pin=p2)#小车状态
#小车右侧电机接到A处,且电机红线在A0;
#小车左侧电机接到B处,且电机红线在B1
class car:def go(speed):    #直行状态                ch1.pulse_width_percent(speed)   ch2.pulse_width_percent(speed)A0(1)            A1(0)    #此状态测试A电机正转B0(0)B1(1)    #此状态B电机正转def back(speed):  #倒车ch1.pulse_width_percent(speed)ch2.pulse_width_percent(speed)A0(0)            A1(1)    #此状态测试A电机正转B0(1)B1(0)    #此状态B电机正转def ztstop(): #停止ch1.pulse_width_percent(0)ch2.pulse_width_percent(0)def right(speed):      #右转ch1.pulse_width_percent(0)      #A电机不动ch2.pulse_width_percent(speed)B0(0)B1(1)def left(speed):     #左转ch1.pulse_width_percent(speed)ch2.pulse_width_percent(0)      #B电机不动A0(1)A1(0)

内部文件

效果

传感器实验——LCD显示小车状态相关推荐

  1. 传感器实验——LCD颜色调整

    传感器实验--LCD颜色调整 LCD显示小车状态 MR开发板 1.54寸液晶屏st7789 spi 示例程序 之前为了测试都用的默认颜色,单色体现不出屏幕优势,所以我们现在看看屏幕颜色怎么整吧~ LC ...

  2. 传感器实验——LCD屏幕测试

    传感器实验--LCD屏幕测试 LCD屏幕测试 所选设备 1.54寸液晶屏st7789 spi 工作原理 接线说明 示例程序 小车基本做完了,后面我们在搞事情.现在来测试一下屏幕.用屏幕来做一些事情吧 ...

  3. 传感器实验——寻迹小车

    传感器实验--寻迹小车 防跌落小车实验 所选设备 寻迹小车 巡线原理 示例程序 之前我们用寻迹模块简单的做了一个防止小车高处跌落的功能,但是寻迹并不简单(/滑稽).本次我们使用寻迹来做一个巡线功能.简 ...

  4. 传感器实验——LCD字体

    传感器实验--LCD字体 LCD屏幕测试 所选设备 1.54寸液晶屏st7789 spi 示例程序 默认字体对我们不友好,所以我找了一些字库方便实用哦. LCD屏幕测试 所选设备 主控:MR开发板 1 ...

  5. 【Arduino实验12 1602 LCD显示】

    目录 一.实验目的 二.实验设备与环境 三.实验重点 四.实验难点 五.实验内容 5.1实验任务 5.2实验原理 5.3实验内容 5.4实验结果 5.5思考题 一.实验目的 (1)熟悉1602LCD液 ...

  6. 【正点原子FPGA连载】 第三十章双目OV5640摄像头LCD显示实验 摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Vitis开发指南

    1)实验平台:正点原子MPSoC开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=692450874670 3)全套实验源码+手册+视频下载地址: h ...

  7. 【正点原子FPGA连载】 第二十四章 RTC实时时钟LCD显示实验-摘自【正点原子】领航者ZYNQ之FPGA开发指南_V2.0

    1)实验平台:正点原子领航者ZYNQ开发板 2)平台购买地址:https://item.taobao.com/item.htm?&id=606160108761 3)全套实验源码+手册+视频下 ...

  8. 北邮实验:ARM实验板移植Linux操作系统,LCD显示汉字

    ARM实验板移植Linux操作系统,LCD显示汉字 一. 实验目的 1. 熟悉点阵字库的使用2. 熟悉Linux操作系统的使用3. 熟悉ARM嵌入式系统开发的过程 二. 实验内容 1. pc端编写用* ...

  9. 基于战舰V3的LCD显示实验详解和剖析

    基于STM32的4.3寸TFTLCD的使用 在这里,我们只剖析NT35510部分的代码. LCD显示方向设置函数 代码示例 //设置LCD显示方向 //dir:0,竖屏:1,横屏 void LCD_D ...

最新文章

  1. linux 下使用crontab 定时打包日志并删除已被打包的日志
  2. 音乐处理---H_music.php
  3. TFS的Web门户工作项(七)
  4. 51Nod-1136 欧拉函数【数论】
  5. vuejs滚动条_vuescroll-一款基于vuejs2.x的虚拟滚动条
  6. 正则表达式中的分组的匹配次数的理解
  7. Skip宏块与Direct预测模式浅析
  8. 不足补0 java_Java Android 开发数字不足位数前面补0
  9. Windows安全加固系列
  10. JDBC数据库通用DAO
  11. moments音标_moment是什么意思_ moment的翻译_音标_读音_用法_例句_爱词霸在线词典...
  12. Centos7安装源地址
  13. 微软行星云计算Planetary Computer——previsa南美洲亚马逊雨林森林损坏系统AI智能评估
  14. php mip,php批量清除MIP缓存
  15. 计算机word窗口的组成,推计算机等级考试题库:一级MS Office第三章“Word窗口及其组成”(一)...
  16. 用树莓派做一个实时垃圾分类器|超实用!!
  17. Java---多线程入门
  18. 【LeetCode每日一题】——1042.不邻接植花
  19. 执行方案(Command)
  20. myBatis中通过map集合传入数据查询结果为空

热门文章

  1. ping www.baidu.com时出现正在ping www.a.shifen.com
  2. N1盒子安装 aria2(带AriaNg前端)
  3. 解决Win10更新后无法开启移动热点的问题
  4. [参文]GCN+交通
  5. linux的第一个逻辑分区表示为 ?,/dev/sda5 在 Linux 中表示 答案:第一块SCIS 硬盘上的逻辑分区...
  6. 从轻盈奶茶到拉普山鲜奶茶,罗曼林实现品类突围
  7. 小国王(状压dp经典题)
  8. 【IoT】物联网NB-IoT之电信物联网开放平台对接流程浅析
  9. 稻城亚丁徒步攻略,与你共同感受这片净土
  10. 微信小程序的一些新手示例(¥62)