怎么用树莓派来制作简单的遥控小车

发布时间:2021-11-20 09:39:35 作者:小新
来源:亿速云 阅读:669

这篇文章给大家分享的是有关怎么用树莓派来制作简单的遥控小车的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

准备工作

  1. 树莓派,(本文使用的是Raspberry PI 2 B型,即2B)

  2. 8G以上TF卡 树莓派上可用和不可用的SD卡列表

  3. 四驱小车底(含电机,注:本文中的小车底盘佩戴的是高扭矩直流电机)

  4. 母对母、公对母、公对公(可不用)杜邦线

  5. L298N双HD桥电机驱动板

  6. 无线网卡(最好支持AP的)

  7. 充电电池组(7V以上的,镍氢或者18650充电电池皆可)

系统安装没什么说的,系统烧到SD就可以了,我使用的Raspbian,这货是基于Debian的,配置命令习惯几乎和ubuntu/debian一样,接上网线开机进入系统配置。

底盘组装

线路连接

之前一直没玩过硬件,毕竟我只是一个网工出身的程序猿,第一次拿到L298N研究了好久才明白,还是上图上图。 怎么用树莓派来制作简单的遥控小车

  1. +12V接口 +5V~+35V, 如需要板内取电,则供电范围Vs:+7V~+35V

  2. 电机 OUT1、OUT2 为电机A输出;OUT3、OUT4为电机B输出

  3. IO接口 ENA和ENA分别为A、B电机的使能端,一开始ENA和ENB各自的上下两个针脚是用跳线帽连接起来的,拔掉就可以接线了。 IN1-IN4 为IO控制输入。

弄明白L298N之后,连接就方便多了,

接好之后是这样子:

怎么用树莓派来制作简单的遥控小车

摄像头模块

摄像头是好几年前台式机用的摄像头,分辨率是奇葩的470x640,而不是480x640,mjpg-streamer下,画面是花的,等到画面调正常之后,画面却如放幻灯片一样。我勒个去!摄像头连接到装了openwrt的wndr3800路由器上流畅的没朋友,在树莓派上调来调去却怎么也不行,认命了,放弃放弃,没有摄像头也能当遥控车开。

小车遥控器

终于到了编程部分,为了简单,使用python的RPI.GPIO模块来操作I/O,不过我发现功能蛮少的,没找到调速的API,文档在这里,代码如下,轮子的参数视接的I/O口而定。

<!-- lang: python -->
import RPi.GPIO as gpio


class Wheel(object):
	def __init__(self, in_pin1, in_pin2, enable_pin1, enable_pin2):
		'''
		:param in_pin1 in_pin2: IN1 IN2 or IN3 IN4
		:param enable_pin1 enable_pin2: ENA or ENB
		'''
		self.pin1 = in_pin1
		self.pin2 = in_pin2

		# setup I/O OUT
		gpio.setup(in_pin1, gpio.OUT)
		gpio.setup(in_pin2, gpio.OUT)
		gpio.setup(enable_pin1, gpio.OUT)
		gpio.setup(enable_pin2, gpio.OUT)

		# enable
		gpio.output(enable_pin1, True)
		gpio.output(enable_pin2, True)

	def forward(self):
		gpio.output(self.pin1, True)
		gpio.output(self.pin2, False)

	def backward(self):
		gpio.output(self.pin1, False)
		gpio.output(self.pin2, True)

	def stop(self):
		gpio.output(self.pin1, False)
		gpio.output(self.pin2, False)


class Car(object):
	def __init__(self):
		gpio.setmode(gpio.BOARD)

		self.left_wheel = Wheel(13, 15, 7, 11)
		self.right_wheel = Wheel(16, 18, 22, 29)

	def forward(self):
		self.left_wheel.forward()
		self.right_wheel.forward()

	def backward(self):
		self.left_wheel.backward()
		self.right_wheel.backward()

	def left(self):
		self.left_wheel.stop()
		self.right_wheel.forward()

	def right(self):
		self.left_wheel.forward()
		self.right_wheel.stop()

	def stop(self):
		self.left_wheel.stop()
		self.right_wheel.stop()

	def shutdown(self):
		self.stop()
		gpio.cleanup()

感谢各位的阅读!关于“怎么用树莓派来制作简单的遥控小车”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

推荐阅读:
  1. python3怎么实现网页版树莓派小车控制
  2. 怎么用php制作简单分页

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

树莓派

上一篇:如何分析GDC数据库中的数据的R语言包GDC RNATools

下一篇:树莓派中文乱码怎么办

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》