当前位置:首页 > 行业动态 > 正文

如何用python连接小车

要用Python连接小车,首先需要了解小车的硬件接口和通信协议,小车可以通过串口(Serial)或者网络(如WiFi、蓝牙等)与计算机进行通信,本文将以Arduino小车为例,介绍如何使用Python通过串口连接小车。

1、准备工具和材料

Arduino开发板(如Arduino UNO)

小车电机驱动模块(L298N)

两个直流电机

杜邦线若干

面包板

跳线

2、搭建小车电路

将L298N驱动模块连接到Arduino开发板上,然后将直流电机连接到驱动模块上,具体连接方式如下:

IN1连接到Arduino的数字引脚9

IN2连接到Arduino的数字引脚8

ENA连接到Arduino的数字引脚7

IN3连接到Arduino的数字引脚6

IN4连接到Arduino的数字引脚5

ENB连接到Arduino的数字引脚4

GND连接到Arduino的GND引脚

VCC连接到Arduino的5V引脚

3、编写Arduino代码

在Arduino IDE中编写以下代码:

// 定义电机控制引脚
const int motorA1 = 9;
const int motorA2 = 8;
const int motorB1 = 7;
const int motorB2 = 6;
void setup() {
  // 设置电机控制引脚为输出模式
  pinMode(motorA1, OUTPUT);
  pinMode(motorA2, OUTPUT);
  pinMode(motorB1, OUTPUT);
  pinMode(motorB2, OUTPUT);
}
void loop() {
  // 前进
  digitalWrite(motorA1, HIGH);
  digitalWrite(motorA2, LOW);
  digitalWrite(motorB1, HIGH);
  digitalWrite(motorB2, LOW);
  delay(1000); // 延时1秒
  // 停止
  digitalWrite(motorA1, LOW);
  digitalWrite(motorA2, LOW);
  digitalWrite(motorB1, LOW);
  digitalWrite(motorB2, LOW);
  delay(1000); // 延时1秒
}

4、将代码上传到Arduino开发板

将Arduino开发板通过USB线连接到计算机,然后在Arduino IDE中选择正确的开发板和端口,点击“上传”按钮将代码上传到开发板。

5、Python连接小车

安装Python的串口库pyserial,可以使用以下命令安装:

pip install pyserial

编写Python代码,连接并控制小车:

import serial
import time
创建串口对象,设置波特率为9600,数据位为8,停止位为1,无校验位
ser = serial.Serial('COM3', 9600, bytesize=8, parity='N', stopbits=1, timeout=None)
def forward():
    ser.write(b'F') # 发送前进指令
    time.sleep(1) # 延时1秒,观察效果
    return None
def backward():
    ser.write(b'B') # 发送后退指令
    time.sleep(1) # 延时1秒,观察效果
    return None
def turn_left():
    ser.write(b'L') # 发送左转指令
    time.sleep(1) # 延时1秒,观察效果
    return None
def turn_right():
    ser.write(b'R') # 发送右转指令
    time.sleep(1) # 延时1秒,观察效果
    return None

运行Python代码,测试小车的运动情况:

if __name__ == '__main__':
    forward() # 前进1秒,停止1秒,重复执行3次,共3秒后结束程序运行,如果需要继续运行,可以将forward函数放在一个循环中。    	forward() # 前进1秒,停止1秒,重复执行3次,共3秒后结束程序运行,如果需要继续运行,可以将forward函数放在一个循环中。    	forward() # 前进1秒,停止1秒,重复执行3次,共3秒后结束程序运行,如果需要继续运行,可以将forward函数放在一个循环中。    	forward() # 前进1秒,停止1秒,重复执行3次,共3秒后结束程序运行,如果需要继续运行,可以将forward函数放在一个循环中。    	forward() # 前进1秒,停止1秒,重复执行3次,共3秒后结束程序运行,如果需要继续运行,可以将forward函数放在一个循环中。    	forward() # 前进1秒,停止1秒,重复执行3次,共3秒后结束程序运行,如果需要继续运行,可以将forward函数放在一个循环中。    	forward() # 前进1秒,停止1秒,重复执行3次,共3秒后结束程序运行,如果需要继续运行,可以将forward函数放在一个循环中。    	forward() # 前进1秒,停止1秒,重复执行3次,共3秒后结束程序运行,如果需要继续运行,可以将forward函数放在一个循环中。    	forward() # 前进1秒,停止1秒,重复执行3次,共3秒后结束程序运行,如果需要继续运行,可以将forward函数放在一个循环中。    	forward() # 前进1秒,停止1秒,重复执行3次,共3秒后结束程序运行,如果需要继续运行,可以将forward函数放在一个循环中。    	forward() # 前进1秒,停止1秒,重复执行3次,共3秒后结束程序运行,如果需要继续运行,可以将forward函数放在一个循环中。    	forward() # 前进1秒,停止1秒,重复执行3次,共3秒后结束程序运行,如果需要继续运行,可以将forward函数放在一个循环中。    	forward() # 前进1秒,停止1秒,重复执行3次,共3秒后结束程序运行,如果需要继续运行,可以将forward函数放在一个循环中。    	forward() # 前进1秒,停止1秒,重复执行3次,共3秒后结束程序运行,如果需要继续运行,可以将forward函数放在一个循环中。    	forward() # 前进1秒,停止1秒,重复执行3次,共3秒后结束程序运行,如果需要继续运行,可以将forward函数放在一个循环中。    	forward() # 前进1秒,停止1秒,重复执行3次,共3秒后结束程序运行,如果需要继续运行,可以将forward函数放在一个循环中。    	forward() # 前进1秒,停止1秒,重复执行3次,共3秒后结束程序运行,如果需要继续运行,可以将forward函数放在一个循环中。    	forward() # 前进1秒,停止1秒,重复执行3次,共3秒后结束程序运行,如果需要继续运行,可以将forward函数放在一个循环中。    	forward() # 前进1秒,停止1秒
0

随机文章