Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >[Micropython]TPYBoard v202 智能WIFI远控小车

[Micropython]TPYBoard v202 智能WIFI远控小车

原创
作者头像
阿莉埃蒂
修改于 2020-01-15 10:18:49
修改于 2020-01-15 10:18:49
1.5K00
代码可运行
举报
文章被收录于专栏:MicroPythonMicroPython
运行总次数:0
代码可运行

前言

之前有过用TPYBoard v102制作的各种各样功能的智能小车,比如自动寻迹、自动避障、手机蓝牙遥控等。想着还缺个WIFI控制的,那就用TPYBoard v202做一个吧。

设计思路

WIFI是目前最有广泛运用的一项无线网络传输技术,覆盖范围广,可远程。本次实现了远程WIFI控制,不仅可以在家里操作,还可以接入一些云平台,实现远程操控。具体思路如下:

1、TPYBoard v202作为整个小车的核心控制部分,连接L298N电机驱动模块,实现小车的基本方向控制;

2、TPYBoard v202接入网络,开启Socket服务实现web服务器功能;

3、手机接入同一局域网,可通过浏览器访问控制页面,进行小车控制。

所需器件

- TPYBoard v202开发板 1块

- USB数据线(MicroUSB) 1条

- L298N电机驱动模块 1个

- 小车套件包(底板、电机等) 1个

- 18650电池 2节

- 18650电池盒 1个

程序源

TPYBoard v202 源代码(main.py)

代码语言:python
代码运行次数:0
运行
AI代码解释
复制
import socket                 #导入socket通信库
import machine
from machine import Pin

g4 = Pin(4,Pin.OUT)
g5 = Pin(5,Pin.OUT)
g12 = Pin(12,Pin.OUT)
g13 = Pin(13,Pin.OUT)

def Go():
    g4.value(1)
    g5.value(0)
    g12.value(1)
    g13.value(0)
def Back():
    g4.value(0)
    g5.value(1)
    g12.value(0)
    g13.value(1)

def Left():
    g4.value(1)
    g5.value(0)
    g12.value(0)
    g13.value(0)
def Right():
    g4.value(0)
    g5.value(0)
    g12.value(1)
    g13.value(0)
def Stop():
    g4.value(0)
    g5.value(0)
    g12.value(0)
    g13.value(0)
#-----------------------HTTP Server-----------------------#
#ap模式下,默认ip地址为192.168.4.1
addr = ('192.168.4.1',80) #定义socket绑定的地址,ip地址为本地,端口为80
s = socket.socket()     #创建一个socket对象
s.bind(addr)            #绑定地址
s.listen(5)             #设置允许连接的客户端数量
print('listening on:', addr)
while True:
    cl, addr = s.accept() #接受客户端的连接请求,cl为此链接创建的一个新的scoket对象,addr客户端地址
    print('client connected from:', addr)
    cl_file = cl.makefile('rwb', 0) #返回与socket对象关联的文件对象。rwb:支持二进制模式的读写操作 0:默认值,不支持缓存
    req = b''
    while True:
        line = cl_file.readline() #读取发送过来的数据,直到\r\n换行结束
        if not line or line == b'\r\n':
            break
        req += line
    print("Request:")
    req=req.decode('utf-8').split('\r\n')
    #http header 解析
    req_data=req[0].lstrip().rstrip().replace(' ','').lower()
    print(req_data)
    if req_data.find('favicon.ico')>-1:
        cl.close()
        continue
    else:
        req_data=req_data.replace('get/?','').replace('http/1.1','')
        index = req_data.find('key=')
        value = req_data[index+4:index+6].lstrip().rstrip()
        print('key:',value)
        if value == 'go':
            Go()
        elif value == 'ba':
            Back()
        elif value == 'le':
            Left()
        elif value == 'ri':
            Right()
        else:
            Stop()
    with open("control.html", 'r') as f:
        for line in f:
            cl.send(line)
    #cl.send(response)   #返回html网页的数据
    cl.close()          #关闭socket

硬件的连接

TPYBoard v202

L298N电机驱动

VIN

+5V

GND

GND

G5

IN1

G4

IN2

G13(MO)

IN3

G12(MI)

IN4

L298N电机驱动

两侧电机

OUT1

车头朝前

OUT2

右侧电机

OUT3

车头朝前

OUT4

左侧电机

注:电机不分正负极,怎么接都可以,只不过就是正转和反转的问题。若在调试中电动转动方向不对,你可以修改程序或者将接线调换过来。

L298N电机驱动

电池盒

+12V

正极(红线)

GND

负极(黑线)

注:可在电池正极与电机驱动之间外接一个按键开关模块,这样可以增加一个总开关功能。

网页效果

演示效果

`点击观看视频 <http://mpvideo.qpic.cn/0bf2hqaaeaaaveaa3ui5h5pfapgdai6aaaqa.f10002.mp4?dis_k=75bc9f531e0fe018cfc344a63c5fdc1d&dis_t=1579070805>`_

源码下载

`下载源码 <https://github.com/TPYBoard/TPYBoard-v202/tree/master/12.%E6%99%BA%E8%83%BDWIFI%E8%BF%9C%E6%8E%A7%E5%B0%8F%E8%BD%A6>`_

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
树莓派综合项目2:智能小车(一)四轮驱动
树莓派的小项目中,我首选了智能小车这个项目作为我探索的第一个目标,因为和很多小朋友一样,对遥控小汽车有种喜欢,特别是有过小时候欲求而不得的经历的大人们哈。
张国平
2020/09/27
3.8K0
树莓派综合项目2:智能小车(一)四轮驱动
树莓派基础实验34:L298N模块驱动直流电机实验
  直流电机是一种将直流电能转换为机械能的电动机,因其良好的调速性能而在电力拖动中得到广泛应用,用于驱动各种设备,如电风扇、遥控小车、电动车窗等,也非常适合作为机器人的行走机构。
张国平
2020/09/27
4K0
基于stm32的智能小车(远程控制、避障、循迹)
学完stm32,总是想做点东西“大显身手”一下,智能小车就成了首选项目,其核心只是就是PWM输出,I/O口引脚电平判断。
全栈程序员站长
2022/11/02
3.9K1
树莓派综合项目2:智能小车(三)无线电遥控
《智能小车(一)四轮驱动》中,实现了代码输入对四个电机的简单控制。《智能小车(二)tkinter图形界面控制》中,实现了本地图形界面控制小车的前进后退、转向和原地转圈。
张国平
2020/11/04
2K1
树莓派综合项目2:智能小车(三)无线电遥控
智能避障小车_基于单片机的智能玩具车系统设计
近些年随着国民生活水平的提升,以小车为载体的轮式机器人进入了我们的生活,尤其是在一些布线复杂困难的安全生活区和需要监控的施工作业场合都必须依赖轮式机器人的视频监控技术。因此,基于嵌入式技术的无线通信视频监控轮式机器人应运而生。由于它们与人类工作相比具有成本低廉、安全稳定的优点,目前已经在许多危险作业以及工业场合得到了广泛应用而且轮式机器人不需要像人那样采取过多的保护措施,因此轮式机器人更适合在危险困难的工作环境中工作。然而轮式机器人在行驶中所能碰到的障碍很多,例如前部凸出物的碰触,后部凸出物的拖托,中部凸出物的顶举,特别还有垂直障碍和壕沟等,所以必须对轮式机器人的越障问题进行研究来解决类似问题。
全栈程序员站长
2022/11/19
1.5K0
智能避障小车_基于单片机的智能玩具车系统设计
基于stm32蓝牙智能小车设计
本文描述了一个由STM32微处理器、步进电机、蓝牙,L298N等模块构成的。该系统采用STM32微处理器为核心,在MDK环境下进行编程,通知控制L298N模块IN1~IN4引脚的高低电平进而控制电机的转动方向,使小车产生不同的转动模式。控制小车的转动模式通过蓝牙模块来实现,利用手机蓝牙助手和蓝牙模块相通,进而控制小车的各种运转模式。 代码、蓝牙Android apk地址:https://github.com/daohewang/Bluetooth-intelligent-car
全栈程序员站长
2022/11/02
1.6K0
关于stm32的智能车硬件设计_stm32小车前进程序
开始做小车的时候,手头只有一块F407的核心板,个人只是做着玩的,也没有考虑价格问题,干脆就直接拿来用了。其实F103c8t6的引脚资源和响应都是足够用的,也很便宜,推荐使用,如下图。
全栈程序员站长
2022/11/07
1.1K0
关于stm32的智能车硬件设计_stm32小车前进程序
树莓派综合项目2:智能小车(二)tkinter图形界面控制
树莓派综合项目2:智能小车(一)四轮驱动中,实现了代码输入对四个电机的简单控制,本章将使用Python 的图形开发界面的库——Tkinter 模块(Tk 接口),编写本地运行的图形界面,控制小车的前进后退、转向和原地转圈。
张国平
2020/09/27
3.1K0
树莓派综合项目2:智能小车(二)tkinter图形界面控制
ART-PI-重力感应无线智能小车第二弹-----OneNet+板载wifi控制电机转动
雷德斯 and枕头们,好久不见,大家是不是更优秀了呢,哈哈,工作太忙啦,夜里肝一篇,大家久等啦,话不多说,来,干货!
用户8913398
2021/08/16
7580
ART-PI-重力感应无线智能小车第二弹-----OneNet+板载wifi控制电机转动
arduino连接ps2手柄控制智能小车实践记录-续
首先感谢参考链接: 感谢参考链接:https://www.cnblogs.com/hxxhdaily/p/12592043.html
全栈程序员站长
2022/09/05
1.2K0
arduino连接ps2手柄控制智能小车实践记录-续
基于STM32设计的避障寻迹小车
根据美国玩具协会在一项研究中,过去几年全球玩具销售增长与GDP的世界平均水平大致相同。但全球玩具市场的内部结构已经占据了巨大的位置变化:传统玩具的市场份额正在下降,高科技电子玩具正在蓬勃发展。全球玩具市场的高科技电子游戏2010年的年销售额增长了67%,但传统玩具的年销售额仅增长了1%。
DS小龙哥
2023/03/06
2.2K0
基于STM32设计的避障寻迹小车
ART-PI重力感应无线智能小车第一弹-----ART-PI扩展板设计
雷德斯 and枕头们,小飞哥又又叒好久没更新文章啦,最近实在是太忙啦,大家久等啦,这次是系列文章,一步步教你如何在ART-PI上实现无线重力感应遥控小车。
用户8913398
2021/08/16
6600
ART-PI重力感应无线智能小车第一弹-----ART-PI扩展板设计
圆曾经的小车梦,造一台智能小车(二)
由于手上的物料还没有全部到齐,所以还没法往下干,明天晚上下班回家就到了!上节已经说过会了解多平台的开发,所以今天咱们就来了解一个MCU界大杀手,超级简单的开发神器,人称创客之魂-Arduino。
杨源鑫
2020/05/21
1.3K0
stm32循迹小车详细制作过程(附加完全版代码)「建议收藏」
3、电源 12v锂电池组、配套充电器(推荐下图这种,方便,好接线,12v!12v! 12v!)
全栈程序员站长
2022/11/08
10.9K3
stm32循迹小车详细制作过程(附加完全版代码)「建议收藏」
基于PS2手柄的Arduino遥控小车
本文利用PS2手柄和Arduino开发板制作了一个简易的遥控小车,利用蓝牙进行通信,可以实现前后左右的移动。(原理掌握之后可以自己拓展相关功能)
全栈程序员站长
2022/07/01
2.3K0
基于PS2手柄的Arduino遥控小车
RT-Thread实战笔记-小白一看就会的平衡车DIY教程(附源码)
小伙伴们,停更很久的RT-Thread实战笔记来啦,本章节教大家如何打造一个属于自己的平衡车,废话不多说,来吧,淦!!!
用户8913398
2022/11/16
9030
RT-Thread实战笔记-小白一看就会的平衡车DIY教程(附源码)
毕业设计 – 题目:基于stm32的智能扫地机器人设计与实现
随着人口老龄化的到来和人民对提升生活品质的需要, 人们对在现实生活场景中取代人力的服务机器人有着迫切的需要。 同时, 机电、 自动控制、 计算机、 传感器等技术的发展也为制造服务机器人提供了技术支持。 扫地机器人是服务机器人中技术最成熟和最为广泛使用的机器人。 它可以自动的在室内行走, 通过刷扫和吸尘将地面上的碎屑吸收进垃圾收集装置中, 完成清洁地面的任务,有效的减少了人们清洁地面这种简单重复的家务劳动, 节约了劳动力, 提高了生活品质。 对于许多忙于工作和生的人来说,扫地机器人已经成为家庭必备的产品。
全栈程序员站长
2022/07/22
5.7K0
毕业设计 – 题目:基于stm32的智能扫地机器人设计与实现
基于STM32设计的遥控小车(手机APP+GPS+温湿度+ESP8266)
手机APP: 采用QT设计,程序支持跨平台编译运行(Android、IOS、Windows、Linux都可以编译运行,对应平台上QT的环境搭建,之前博客已经发了文章讲解)
DS小龙哥
2022/01/12
2K0
基于STM32设计的遥控小车(手机APP+GPS+温湿度+ESP8266)
项目复刻 - STM32智能小车 笔记1
原理是4红外对管可以通过红外反射识别出小车和路径(黑色胶带的)的相对位置,来调节转向,实现循迹功能。
笃信好学
2023/03/06
1.2K0
开源MicroPython飞控
飞控不是一下做出来的,下面是一些重要传感器的mpy驱动代码,为飞控项目添砖加瓦。
云深无际
2021/12/01
2.6K0
开源MicroPython飞控
推荐阅读
相关推荐
树莓派综合项目2:智能小车(一)四轮驱动
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验