简述

本文主要描述使用树莓派和L298N制作一个简单的遥控小车,遥控器使用简单的WEB来实现。

准备工作

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

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

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

L298N双HD桥电机驱动板

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

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

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

换上中科大的源,再apt-get update一次;

为root用户设置密码;

配置无线网卡有两中方案,编辑/etc/network/interface,网上教程蛮多的:

自动连接到路由器,家里有无线路由器,小车在WIFI覆盖的地方;

树莓派上搭建WIFI热点,信号更好,可以在小区里面开,顺便勾搭妹子,哦哦哦,不对,应该是淘气小孩。唯一需要注意的是网卡芯片。

底盘组装

拼装没啥难度,亚克力板上的牛皮纸沾得简直是丧心病狂,马蛋,废了好一会儿功夫才撕干净(⊙﹏⊙)b;

马达那货就比较坑了,没有带线是裸机的,手中也恰巧没有电烙铁,当时我就懵逼啦。好吧,手中还有多余的公对公杜邦线,拔掉其中一头的接头,打火机烧一下(小时候学会的神技),拔掉一部分把铜线拧紧。最后铜线穿过马达接口的小洞里面,再拧紧。哎丫,没有胶带,最后用透明胶凑合凑合,绑紧。repeat 4次。

线路连接

之前一直没玩过硬件,毕竟我只是一个网工出身的程序猿,第一次拿到L298N研究了好久才明白,还是上图上图。

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

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

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

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

OUT1 OUT2 连接小车左侧前后两个电机(并联),之前电机接出来的杜邦线公头直接往接口里面塞(好羞羞),拧紧螺丝;同理,OUT3 OUT4 连接小车右侧前后两个电机;

便宜的镍氢电池组电源正负极分别连接12V、GND,电池组的接头是JST母头,比较好连接;

5V和GND连接到树莓派上的5V和GND用于供电。

ENA、ENB、IN1-IN4连接到树莓派I/O端口上。

接好之后是这样子:

摄像头模块

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

小车遥控器

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

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()

最后用Flask模块实现Web(android真的好久都没摸了,偷笑),这需要在树莓派装Flask模块,在安装的时候发现树莓派的python环境是不完整的。这个代码就不贴了,直接上仓库地址。

html控制树莓派小车,用树莓派来制作简单的遥控小车相关推荐

  1. 89c51控制小车运行c语言,STC89C52单片机蓝牙遥控小车代码

    所用模块: 1.蓝牙模块 2.超声波模块 3.LCD1602模块 4.L298N模块 5.寻迹模块 主要功能: 1.蓝牙可以遥控小车 2.超声波可以测距避障 3.小车可以寻黑线 使用逻辑: 串口初始化 ...

  2. 基于树莓派的遥控小车

    一.引言 最近在准备一个计算机类比赛,需要用树莓派做成一个智能乒乓球捡球车,做过一些人工智能项目的也知道,所谓人工智能,只有人工,没有智能(实力吐槽),只要你知道实现的原理,做很多人工智能的东西都能得 ...

  3. 不限距离4g/5g信号远程遥控小车

    4g/5g不限距离遥控小车(1) 4g/5g不限距离遥控小车(2) 最开始学习编程也是源于一个想法, 无线遥控小车和飞机操作范围都是在几十米, 远的几百米, 再远的几公里, 那能不能把手机放在小车或飞 ...

  4. 玩转树莓派---详解树莓派的系统烧录,基础使用及基于树莓派制作手势控制的小车(附详细代码及演示效果)

    目录 一.写在前面 二.系统实现: Author:qyan.li Date:2022.6.10 Topic:详解树莓派的使用及基于树莓派制作手势控制的小车 Reference:如何给树莓派安装操作系统 ...

  5. 树莓派制作遥控小车教程

    树莓派制作遥控小车教程 一.成品图 二.准备材料: 三.开始制作 1.接线 2.写程序 一.成品图 二.准备材料: 1.树莓派 2.充电宝 3.小车套件(底盘,车轮,电机,电池座) 4.导线,杜邦线 ...

  6. [树莓派] 轻松制作一个遥控小车(C++,Socket)

    最近闲来无事,便开始倒腾一些小玩具.我想从比较简单的开始入手,就先是树莓派遥控小汽车吧! 本文用来分享和总结经验.从0开始,小白级教程. 一.必备材料: 1.树莓派 1 个(什么版本都可以) 2.智能 ...

  7. 树莓派打造一个适合音乐制作的系统(效果器部分)

    我打算挂载LV2插件将树莓派作为效果器使用,之前我们已经创建好了I2S二进二出声卡,请详见树莓派打造一个适合音乐制作的系统(声卡部分)_huanghaoAudio的博客-CSDN博客 1.下载安装LV ...

  8. 1.树莓派、Python、STM32、上位机、局域网、PC智能遥控小车(含源码)

    整体功能:电脑上观看小车前方画面,通过电脑方向键控制小车前后运动.左右转弯,如前进后退键,按下前进或后退,松开停车,左右同理 关键技术部分:PC端:使用pygame编写上位机,作为服务器 树莓派端:图 ...

  9. 树莓派循迹+图片识别(模板匹配)小车 C++

    文末有有道翻译的版本,翻译的不准确的地方再来对照英文就清楚了 另外需要注意的是,在拟合到目标图像的四个角的位置后,对原图像进行投影变换再二值化进行模板匹配(而不是对二值化图像直接进行投影变换)效果要好 ...

  10. 利用Python实现键盘操控小车、通过树莓派GPIO使用python操控小车(树莓派小车、树莓派+Python+LN298操控小车)

    (树莓派小车.树莓派+Python+LN298操控小车) 一.Python代码获取键盘实时键位 二.树莓派自带GPIO控制电机 大功告成!编写不易,大家成功后点个关注or赞谢谢~~ 一.Python代 ...

最新文章

  1. Some Rules from wrting your own dsl with ruby
  2. ssl *** 思科支持设备型号
  3. Surviving the Release Version
  4. LabVIEW串口接收实例
  5. ArcGIS实验教程——实验十八:叠置分析(Overlay Analysis)
  6. 剑指offer(刷题41-50)--c++,Python版本
  7. 每天一道算法题(39)——含有重复字符的全排列
  8. 洛谷 P1377 [TJOI2011]树的序 解题报告
  9. Udp通讯(零基础)
  10. 【树莓派】做一个备份镜像
  11. 如何自定义容器网络?- 每天5分钟玩转 Docker 容器技术(33)
  12. python的os库的remove可以删除只带有只读属性的_扩展库os中的方法remove()可以删除带有只读属性的文件。(2.0分)_学小易找答案...
  13. 工具:SQL Server软件使用指南
  14. 利用ansys计算机械结构最小安全系数教程,安全系数
  15. lowB三人组---冒泡排序原理和实现
  16. linux服务器使用certbot免费安装ssl证书
  17. 套接字基础与UDP通信
  18. python使用pillow生成纯透明png图片
  19. 学习资料怎么打印,能用手机直接打印学习资料
  20. iOS 开发 : 14个技巧助你适配 iOS10

热门文章

  1. 用迅雷下载百度网盘的文件
  2. USB转串口芯片CH340
  3. 改变图片强调可修改r,如s.val[i]*scale*r
  4. 多功能扫描仪设备 可识别护照
  5. html渐变生成,css gradient 在线渐变生成工具
  6. C语言_【学习笔记】二元一次方程的虚根
  7. 刀塔自走棋无限寻找服务器怎么办,刀塔自走棋无法连接服务器怎么办_刀塔自走棋无法连接服务器解决办法_玩游戏网...
  8. matlab和cuda版本对应适配关系
  9. js实现网页在线聊天功能(四)
  10. 双线跟BGP线路区别