(树莓派小车、树莓派+Python+LN298操控小车)
一、Python代码获取键盘实时键位
二、树莓派自带GPIO控制电机
大功告成!编写不易,大家成功后点个关注or赞谢谢~~
一、Python代码获取键盘实时键位
首先需要调用的几个库----tty,sys,select,termios
在py文件中定义一个获取键位的函数:
#可以自己先试试这个代码,可以直接获取到key值import tty,sys,select,termiosdef getKey(settings):tty.setraw(sys.stdin.fileno())rlist = select.select([sys.stdin],[],[],0.1)if rlist:key = sys.stdin.read(1)else:key = ""termios.tcsetattr(sys.stdin,termios.TCSADRAIN,settings)return key
二、树莓派自带GPIO控制电机
接下来利用树莓派自带的 RPi.GPIO库来直接通过引脚输出信号
此处我是直接定义的最简单的操控两个电机运行,只给高低电压。没有使用PWM调速
# -*- coding: utf-8 -*- #通过声明可以在程序中书写中文import RPi.GPIO as GPIO #引入RPi.GPIO库函数命名为GPIOimport tty,sys,select,termiosdef getKey(settings):tty.setraw(sys.stdin.fileno())rlist = select.select([sys.stdin],[],[],0.1)if rlist:key = sys.stdin.read(1)else:key = ""termios.tcsetattr(sys.stdin,termios.TCSADRAIN,settings)return key# BOARD编号方式,基于插座引脚编号GPIO.setmode(GPIO.BOARD)#将GPIO编程方式设置为BOARD模式#接口定义,注意对照树莓派的引脚图INT1 = 11INT2 = 12INT3 = 13INT4 = 15#输出模式GPIO.setup(INT1,GPIO.OUT)GPIO.setup(INT2,GPIO.OUT)GPIO.setup(INT3,GPIO.OUT)GPIO.setup(INT4,GPIO.OUT)#前进def Forward():GPIO.output(INT1,GPIO.HIGH)GPIO.output(INT2,GPIO.LOW)GPIO.output(INT3,GPIO.HIGH)GPIO.output(INT4,GPIO.LOW)#后退def Back():GPIO.output(INT1,GPIO.LOW)GPIO.output(INT2,GPIO.HIGH)GPIO.output(INT3,GPIO.LOW)GPIO.output(INT4,GPIO.HIGH)#右转def Right():GPIO.output(INT1,GPIO.HIGH)GPIO.output(INT2,GPIO.LOW)GPIO.output(INT3,GPIO.LOW)GPIO.output(INT4,GPIO.LOW)#左转 def Left():GPIO.output(INT1,GPIO.LOW)GPIO.output(INT2,GPIO.LOW)GPIO.output(INT3,GPIO.HIGH)GPIO.output(INT4,GPIO.LOW)#停止 def Stop():GPIO.output(INT1,GPIO.LOW)GPIO.output(INT2,GPIO.LOW)GPIO.output(INT3,GPIO.LOW)GPIO.output(INT4,GPIO.LOW)while(1):setting = termios.tcgetattr(sys.stdin)InPut = getKey(setting)if InPut == "w":Forward()elif InPut == "s":Stop()elif InPut == "x":Back()elif InPut == "a":Left()elif InPut == "d":Right()else:print("Input Error,Please give a true index!!")break
树莓派引脚图如下:
注意:这个地方插引脚的时候要看灰色的数字口,不是看GPIO多少.比如代码中定义的11,12端口,那么对应图中的引脚的话就是GPIO17和GPIO18.
大功告成!编写不易,大家成功后点个关注or赞谢谢~~
利用Python实现键盘操控小车 通过树莓派GPIO使用python操控小车(树莓派小车 树莓派+Python+LN298操控小车)