[Micropython]TPYBoard v202 智能WIFI远控小车
转载请注明文章来源,更多教程可自助参考docs.tpyboard.com,QQ技术交流群:157816561,公众号:MicroPython玩家汇
前言
----------------------
之前有过用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)
- 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
硬件的连接
----------------------------
网页效果
-------------------------
演示效果
-------------------------
`点击观看视频 <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>`_
[Micropython]TPYBoard v202 智能WIFI远控小车的更多相关文章
- [Micropython]TPYBoard v202 利用单片机快速实现家庭智能控制平台
一提到智能家庭,大家可能首先想到的是各种大佬级公司搞的牛逼产品,或者说是创新产品.想想就觉得很复杂,有的用工控机,有的用树莓派,还有的用arduino,不管用什么,都绕不过服务器进行控制,比如yeel ...
- [Micropython]TPYBoard v202 v102+v202 家庭无线温湿度检测
一.实验器件 1.TPYBoard v102 1块 2.TPYBoard v202 1块 3.Nokia 5110LCD显示屏 1块 4.DHT11温湿度传感器 1个 5.micro USB 数据线 ...
- micropython TPYBoard v202 超声波测距
实验目的 了解超声波模块的工作原理 学习使用超声波模块测量距离 实验器材 TPYBoard v202 1块 超声波模块(HC-SR04)1个 micro USB数据线 1条 杜邦线 若干 超声波模块的 ...
- 小试牛刀 WiFi 远控 + wendu
废话 少说 直接上代码 DH11三根线 信号线 接2 WiFi 模块 r-------t t--------r en&vcc------3.3v 剩下的 共地的啦 double Fahre ...
- 邪恶改装:TPYBoard制作廉价WIFI干扰器
转载请注明:@小五义http://www.cnblogs.com/xiaowuyi 0X01 引言 想不想搞个WIFI干扰器?网上搜集了一下资料,发现用esp8266可以实现简单的干扰功能,包括断网. ...
- Python3实现ICMP远控后门(上)
这几天一直在研究远控木马的一些通信协议,比如TCP,UDP,ICMP,DNS,HTTP等等,对于TCP,UDP这两种就不讲解了,因为太常见了. 大家可能对采用ICMP,DNS的木马不是很熟悉,其实这两 ...
- Python3实现ICMP远控后门(上)_补充篇
ICMP后门(上)补充篇 前言 在上一篇文章Python3实现ICMP远控后门(上)中,我简要讲解了ICMP协议,以及实现了一个简单的ping功能,在文章发表之后,后台很多朋友留言,说对校验和的计算不 ...
- Python3实现ICMP远控后门(中)之“嗅探”黑科技
ICMP后门 前言 第一篇:Python3实现ICMP远控后门(上) 第二篇:Python3实现ICMP远控后门(上)_补充篇 在上两篇文章中,详细讲解了ICMP协议,同时实现了一个具备完整功能的pi ...
- Python3实现ICMP远控后门(下)之“Boss”出场
ICMP后门 前言 第一篇:Python3实现ICMP远控后门(上) 第二篇:Python3实现ICMP远控后门(上)_补充篇 第三篇:Python3实现ICMP远控后门(中)之"嗅探&qu ...
随机推荐
- 如何用简单易懂的例子解释条件随机场(CRF)模型?它和HMM有什么区别?
https://www.zhihu.com/question/35866596/answer/418341940
- H3C 帧中继基本配置命令(续)
- spark mllib docs,MLlib: RDD-based API
MLlib: RDD-based API This page documents sections of the MLlib guide for the RDD-based API (the spar ...
- poj 2993
跟poj 2996反过来了,这里比较麻烦的就是处理白棋和黑棋各棋子对应的位置 还有在最后打印棋盘式|,:,.的时候会有点繁琐(- - ACMer新手 ): 直接看代码吧: #include<cs ...
- [转]vue router基本使用
第一步:安装 cnpm install vue-router --save 路由配置基本语法 router下index.js引入 import Vue from "vue"; im ...
- electron-vue 窗口拖拽及自定义边框,及关闭缩小放大化方法
1.窗口的最小化按钮和关闭按钮以及标题栏自定义,不使用 electron 自身携带的原生标题栏 在src文件夹下main下index.js文件添加 mainWindow = new BrowserWi ...
- 浏览器的内核分别是什么?经常遇到的浏览器的兼容性有哪些?原因,解决方法是什么,常用hack的技巧 ?
* IE浏览器的内核Trident. Mozilla的Gecko.google的WebKit.Opera内核Presto: * png24为的图片在iE6浏览器上出现背景,解决方案是做成PNG8. * ...
- 裁剪nutch 8步骤
裁剪nutch 8步骤
- 游戏《Minecraft》或其他应用程序 实现 自动更新 客户端版本
本渣又来写(水)博客了. 先说一下,我这个解决方案的安全性并不是企业级的,咱们就是一群穷开服的Minecraft玩家. 如果你要投入到企业级应用(容易被黑客攻击的场景),请自己写,思路凑合看看.不然安 ...
- Java虚拟机-字节码执行引擎
概述 Java虚拟机规范中制定了虚拟机字节码执行引擎的概念模型,成为各种虚拟机执行引擎的统一外观(Facade).不同的虚拟机引擎会包含两种执行模式,解释执行和编译执行. 运行时帧栈结构 栈帧(Sta ...