智能小车,自娱自乐,希望通过该分享帮助更多爱好者们化繁为简,待我完成到第三季,我将会把程序放出来拱大家利用,我准备分三季来实现,APP后台支配在阿里小程序云,通过阿里云MQTT行列步队做事,来完成指令掌握,并实现事宜日志机制。
第一季实现小车的掌握目标
1、实现小车4驱掌握
2、实现摄像头实时查看,借助反向代理来完成内外网的通信
3、实现指令通过阿里云微行列步队MQTT来交互
4、设计APP真个掌握界面实现
第二季实现目标
1、实现摄头云端掌握
2、人脸检测
3、打原谅器
4、热体红外+超声波测距+湿度温度
第三季实现目标
思考中。。
第一季开拓准备
硬件
开拓准备
硬件
树莓派3b+小车底座L298N电机驱动模块杜邦线充电宝6v~50V电源树莓派专用摄像头 Raspberry Pi Camera软件
阿里小程序云运用MJPG-Streamerfrp阿里云微行列步队MQTT支付宝小程序开拓者工具硬件连接
整体效果
树莓派上电,将充电宝用usb线将树莓派于其连接,可看到树莓派赤色指示灯常亮,绿色指示灯闪烁。如果创造赤色指示灯忽然熄灭或者亮点很低,请检讨充电宝输出电压以及电流是否太低插入树莓派摄像头,把稳不要插反,排线金属侧正对插排口金属侧,插入后扣紧排口
gpio与电机驱动模块in口连接。这边我们选择GPIO5、GPIO6、GPIO12、GPIO13、GPIO19、GPIO16、GPIO26、GPIO20 (GIPIO与针脚值不一致,对应针脚位置请参考下图,针脚39,40的位置在USB口阁下) 与驱动模块的IN1~IN8连接 (连接顺序请自行调度,驱动模块IN1的数字量输入掌握OUT1输出,OUT1-OUT2如果连接同一个电机的输入和输出端,那么IN1-IN2对应输入数字旗子暗记[1,0]则代表提高,[0,1]代表退却撤退,[0,0]或者[1,1]代表停滞,以此类推IN1~IN8,OUT1~OUT8)环境支配
阿里云运用
云运用是面向小程序运用处景,为开拓者供应的一键构建后端运用运行环境、后端做事支配、运维监控等能力的一站式小程序支配做事。
我们须要申请一个云运用充当小程序的做事器以及fpc做事器。现在阿里推出繁星操持,可以免费申请2个月的测试环境以及一个月的生产环境,无需申请,直接在运用界面新建新利用,创建详情请参考文档
在掌握台获取做事器ip、用户名(默认root)、密码(须要修正默认密码,然后重启做事器),通过SSH工具连接,用于支配下面步骤
MJPG-Streamer
MJPG-Streamer是一个命令行运用程序,它将JPEG帧从一个或多个输入插件复制到多个输出插件。它可用于通过基于IP的网络将JPEG文件从网络摄像头流式传输到各种类型的查看器,如Chrome,Firefox,Cambozola,VLC,mplayer和其他能够吸收MJPG流的软件。
开启树莓派摄像头树莓派摄像头总线是默认没开启的,请在命令行中开启,进入后,选择camera项,再选择enable,然后重启sudo raspi-config安装必要的库
sudo apt-get updatesudo apt-get install subversionsudo apt-get install libjpeg8-devsudo apt-get install imagemagicksudo apt-get install libv4l-devsudo apt-get install cmakesudo apt-get install gitgit开源的project到本地,编译
sudo git clone https://github.com/jacksonliam/mjpg-streamer.gitcd mjpg-streamer/mjpg-streamer-experimentalmake allsudo make install办理V4L driver不支持的问题
sudo wget http://www.linux-projects.org/listing/uv4l_repo/lrkey.asc &&sudo apt-key add ./lrkey.asc
修正sources.list,在末端添加源,并安装uv4l uv4l-raspicam,然后重启
sudo nano /etc/apt/sources.list#末端添加,保存deb http://www.linux-projects.org/listing/uv4l_repo/raspbian/ wheezy mainsudo apt-get updatesudo apt-get install uv4l uv4l-raspicamsudo reboot
重启之后:
sudo pkill uv4lsudo apt-get updatesudo apt-get install uv4l-uvcsudo apt-get install uv4l-xscreensudo apt-get install uv4l-mjpegstreamsudo reboot
再一次重启之后开启视频流做事
sudo modprobe bcm2835-v4l2./mjpg_streamer -i \"大众./input_uvc.so -d /dev/video0 -n -y -f 25 -r 640x480\"大众 -o \公众./output_http.so -n -w /usr/local/www\"大众
然后打开浏览器输入:http://raspberry-ip-address:8080/?action=stream
该当就可以看到Raspberry Pi Camera采集的动态视频了,延迟大概不超过0.8秒吧。
frp
frp是一个快速反向代理,可帮助您将NAT或防火墙后面确当地做事器暴露给Internet。截至目前,它支持tcp&udp以及http和https协议,个中要求可以通过域名转发到内部做事。
做事端支配 frps在购买的做事端(有公网IP)支配frps,用于穿透树莓派本地的视频流wget --no-check-certificate https://raw.githubusercontent.com/clangcn/onekey-install-shell/master/frps/install-frps.sh -O ./install-frps.shchmod 700./install-frps.sh./install-frps.sh install
然后一贯回车(默认配置),知道全部安装完成。安装成功截图
启动frps
frps start
查看frps版本号
frps -v
我这边安装的是version 0.20.0,客户端也要安装对应版本的
树莓派支配frpc由于我们做事器支配frps的版本是version 0.20.0,以是我们本地也要支配相同的版本wget https://github.com/fatedier/frp/releases/download/v0.20.0/frp_0.20.0_linux_arm.tar.gztar zxvf frp_0.20.1_linux_arm.tar.gzcd frp_0.14.1_linux_armvi frpc.ini
修正 frpc.ini 文件
# frpc.ini[common]#做事器IPserver_addr = x.x.x.x#做事器fpcs做事对应端口Bind portserver_port = 5443 #做事端tokenoken = 你的做事端token[ssh]type = tcplocal_ip = 127.0.0.1local_port = 22remote_port = 6000#[]内名称不能重复,标签浸染[web_raspberry_web]type = http#端口号 对应本机视频web做事器的端口local_port = 8080#配置穿透外网访问域名,可设置多个custom_domains = raspberry.你的域名.com
修恰好frpc.ini后,启动frpc客户端。如果想在后台运行,可在命令后加 &
./frpc -c frpc.ini
申请域名解析
将你的的域名主机记录 raspberry A 记录解析到你的做事器IP x.x.x.x
做事器支配 Nginx
Nginx (engine x) 是一个高性能的HTTP和反向代理web做事器,同时也供应了IMAP/POP3/SMTP做事。
Ubuntu16.04安装及配置nginx
安装gcc g++的依赖库apt-get install build-essentialapt-get install libtool安装pcre依赖库
sudo apt-get updatesudo apt-get install libpcre3 libpcre3-dev安装zlib依赖库
apt-get install zlib1g-dev
4.安装ssl依赖库
apt-get install openssl
安装nginx
#下载最新版本:wget http://nginx.org/download/nginx-1.16.0.tar.gz#解压:tar -zxvf nginx-1.11.3.tar.gz#进入解压目录:cd nginx-1.11.3#配置:./configure --prefix=/usr/local/nginx #编辑nginx:make把稳:这里可能会报错,提示“pcre.h No such file or directory”,详细详见:http://stackoverflow.com/questions/22555561/error-building-fatal-error-pcre-h-no-such-file-or-directory须要安装 libpcre3-dev,命令为:sudo apt-get install libpcre3-dev#安装nginx:sudo make install#启动nginx:sudo /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf把稳:-c 指定配置文件的路径,不加的话,nginx会自动加载默认路径的配置文件,可以通过 -h查看帮助命令。#查看nginx进程:ps -ef|grep nginx
在浏览器输入 http://raspberry.你的域名.com:8080
涌现页面则nginx支配成功
配置测试页面
新建一个index.html文件,用于测试页面,内容如下
<html> <head> <meta name=\公众generator\"大众 content=\"大众HTML Tidy for HTML5 (experimental) for Windows https://github.com/w3c/tidy-html5/tree/c63cc39\"大众 /> <meta http-equiv=\"大众Content-Type\"大众 content=\"大众text/html;\"大众 charset=\"大众UTF-8\"大众 /> <meta name=\"大众viewport\"大众 content=\"大众width=device-width, initial-scale=1.0, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0\"大众 /> <meta http-equiv=\"大众refresh\公众 content=\公众3\"大众 /> <title>树莓派实时监控站</title> </head> <body> <center> <font size=\公众20\"大众 face=\公众微软雅黑\"大众 color=\公众#0074CD\"大众> <b>树莓派<br> 实时监控站</b> </font> <hr /> frameLabelStart--frameLabelEnd <!--修正此处--> <br /> <p> <font size=\"大众5\公众 color=\公众#269C5D\"大众> <b>Design by James</b> </font> </p> <p> <font size=\"大众5\"大众 color=\"大众#269C5D\公众> <i>a Web Monitoring Based on Raspberry Pi</i> </font> </p> </center> </body></html>
将该文件更换在nginx配置的web路径的index.html文件,例如/var/www/index.html
在浏览器输入 http://raspberry.你的域名.com:8080
考试测验一下能否访问,如果成功涌现树莓派实时监控页面,则web页面支配成功
阿里云微行列步队MQTT
微行列步队 MQTT 是阿里云推出的一款面向移动互联网以及物联网领域的轻量级中间件,针对移动互联网以及物联网 IoT 场景的传输特点,支持了包括 MQTT、STOMP、GB-808、新能源国标等主流利信协议
创建做事打开MQTT掌握台,须要登录阿里云账号,若没账号请自行申请。登录后请根据阿里云mqtt解释书创建mqtt做事。创建完毕后如下图,紧张用到参数有 实例id、公网接入点、存储实例、Topic、Group海创物联开拓平台支配
海创开拓平台是海创科技有限公司开拓的一款快速编程平台,该平台开拓的组件能快速与PLC、GPIO、各式设备进行通讯,有丰富的API支持,基本你们想到的事情它都能干,非常适宜做物联网的网关掌握中央
导入程序打开海创物联开拓平台的掌握页 http://树莓派ip:1880/#flow/fd2b8cdb.5b63b复制以下代码,打开开拓平台,点击右上角菜单,选择导入-剪切板,然后粘贴保存,即可看到事情区新增了一个新的流程,该流程用于接管MQTT命令掌握小车
[{\公众id\"大众:\"大众9e9c968e.24e348\"大众,\公众type\公众:\"大众rpi-gpio out\"大众,\"大众z\"大众:\公众d99269c6.a2d0b8\公众,\公众name\"大众:\"大众\"大众,\"大众pin\"大众:\公众29\"大众,\"大众set\"大众:true,\"大众level\公众:\公众0\"大众,\"大众freq\"大众:\"大众\公众,\公众out\公众:\"大众out\"大众,\"大众x\"大众:720,\公众y\"大众:140,\公众wires\"大众:[]},{\公众id\"大众:\"大众37f46ac8.666436\"大众,\公众type\"大众:\"大众rpi-gpio out\公众,\"大众z\"大众:\"大众d99269c6.a2d0b8\"大众,\"大众name\公众:\公众\"大众,\"大众pin\"大众:\"大众31\"大众,\"大众set\"大众:true,\"大众level\"大众:\公众0\公众,\"大众freq\公众:\"大众\"大众,\公众out\"大众:\"大众out\"大众,\公众x\公众:720,\"大众y\"大众:180,\公众wires\"大众:[]},{\"大众id\公众:\"大众5f130d8f.f55d84\公众,\"大众type\"大众:\"大众function\公众,\"大众z\"大众:\"大众d99269c6.a2d0b8\公众,\公众name\"大众:\"大众掌握\"大众,\公众func\公众:\"大众switch(msg.payload)\n{\n case '0':return [{payload:0},{payload:0},{payload:0},{payload:0},{payload:0},{payload:0},{payload:0},{payload:0}];\n case '1':return [{payload:0},{payload:1},{payload:0},{payload:1},{payload:0},{payload:1},{payload:0},{payload:1}];\n case '2':return [{payload:1},{payload:0},{payload:1},{payload:0},{payload:1},{payload:0},{payload:1},{payload:0}];\n case '4':return [{payload:0},{payload:0},{payload:0},{payload:0},{payload:1},{payload:0},{payload:1},{payload:0}];\n case '3':return [{payload:1},{payload:0},{payload:1},{payload:0},{payload:0},{payload:0},{payload:0},{payload:0}];\n}\n\"大众,\公众outputs\"大众:8,\公众noerr\"大众:0,\"大众x\"大众:510,\公众y\"大众:320,\公众wires\公众:[[\"大众9e9c968e.24e348\公众,\"大众676a7be6.b97e14\"大众],[\"大众37f46ac8.666436\公众,\"大众676a7be6.b97e14\"大众],[\"大众2e8cc1ec.6369ce\"大众,\公众676a7be6.b97e14\公众],[\公众c7700a0b.47b378\公众,\"大众676a7be6.b97e14\公众],[\公众676a7be6.b97e14\"大众,\"大众482e8885.76d548\"大众],[\公众676a7be6.b97e14\"大众,\"大众62b4d0fc.a93f3\"大众],[\"大众676a7be6.b97e14\公众,\"大众fd3c406.31fc4c\公众],[\"大众676a7be6.b97e14\"大众,\"大众6ac88490.ba21bc\"大众]]},{\公众id\"大众:\"大众2e8cc1ec.6369ce\公众,\"大众type\公众:\"大众rpi-gpio out\公众,\公众z\"大众:\"大众d99269c6.a2d0b8\公众,\公众name\"大众:\"大众\"大众,\公众pin\"大众:\"大众32\公众,\公众set\"大众:true,\公众level\"大众:\公众0\"大众,\公众freq\公众:\"大众\"大众,\"大众out\"大众:\"大众out\"大众,\"大众x\公众:720,\"大众y\公众:240,\"大众wires\"大众:[]},{\公众id\"大众:\"大众c7700a0b.47b378\公众,\"大众type\"大众:\"大众rpi-gpio out\"大众,\"大众z\"大众:\公众d99269c6.a2d0b8\公众,\公众name\公众:\"大众\"大众,\"大众pin\"大众:\公众33\"大众,\"大众set\"大众:true,\"大众level\"大众:\"大众0\公众,\公众freq\"大众:\"大众\"大众,\"大众out\公众:\"大众out\"大众,\"大众x\"大众:720,\"大众y\公众:280,\"大众wires\"大众:[]},{\"大众id\"大众:\"大众8e757771.a599e8\"大众,\"大众type\"大众:\公众inject\"大众,\"大众z\"大众:\"大众d99269c6.a2d0b8\"大众,\"大众name\"大众:\"大众\"大众,\"大众topic\"大众:\公众停滞\公众,\"大众payload\"大众:\"大众0\"大众,\"大众payloadType\"大众:\公众str\"大众,\公众repeat\公众:\公众\公众,\"大众crontab\公众:\"大众\"大众,\公众once\公众:false,\公众onceDelay\公众:0.1,\"大众x\"大众:250,\公众y\"大众:260,\公众wires\"大众:[[\公众5f130d8f.f55d84\"大众]]},{\"大众id\"大众:\"大众89e33a84.467878\"大众,\"大众type\公众:\公众inject\"大众,\"大众z\"大众:\公众d99269c6.a2d0b8\公众,\公众name\"大众:\"大众\"大众,\"大众topic\"大众:\"大众提高\"大众,\"大众payload\公众:\公众1\公众,\公众payloadType\"大众:\"大众str\公众,\"大众repeat\"大众:\"大众\公众,\公众crontab\"大众:\"大众\公众,\公众once\"大众:false,\"大众onceDelay\公众:0.1,\公众x\"大众:250,\公众y\"大众:320,\"大众wires\公众:[[\"大众5f130d8f.f55d84\"大众]]},{\公众id\"大众:\"大众e521ba16.452cc8\公众,\"大众type\"大众:\公众inject\公众,\公众z\"大众:\"大众d99269c6.a2d0b8\"大众,\公众name\公众:\"大众\"大众,\"大众topic\公众:\"大众退却撤退\"大众,\公众payload\"大众:\公众2\"大众,\公众payloadType\"大众:\公众str\公众,\公众repeat\"大众:\"大众\公众,\"大众crontab\"大众:\公众\"大众,\公众once\公众:false,\公众onceDelay\"大众:0.1,\"大众x\"大众:250,\"大众y\"大众:380,\公众wires\"大众:[[\"大众5f130d8f.f55d84\"大众]]},{\公众id\"大众:\"大众676a7be6.b97e14\"大众,\公众type\"大众:\"大众debug\公众,\"大众z\"大众:\"大众d99269c6.a2d0b8\公众,\"大众name\"大众:\公众\公众,\"大众active\"大众:false,\"大众tosidebar\"大众:true,\"大众console\"大众:false,\公众tostatus\"大众:false,\"大众complete\公众:\"大众false\"大众,\公众x\"大众:750,\"大众y\"大众:580,\"大众wires\公众:[]},{\公众id\"大众:\"大众482e8885.76d548\公众,\"大众type\"大众:\"大众rpi-gpio out\"大众,\"大众z\"大众:\"大众d99269c6.a2d0b8\"大众,\"大众name\"大众:\"大众\公众,\公众pin\公众:\"大众35\公众,\公众set\公众:true,\公众level\"大众:\"大众0\"大众,\"大众freq\"大众:\"大众\公众,\"大众out\公众:\公众out\"大众,\"大众x\"大众:720,\"大众y\"大众:340,\"大众wires\"大众:[]},{\公众id\"大众:\公众62b4d0fc.a93f3\"大众,\"大众type\公众:\"大众rpi-gpio out\"大众,\"大众z\公众:\"大众d99269c6.a2d0b8\"大众,\"大众name\公众:\"大众\"大众,\"大众pin\"大众:\公众36\"大众,\公众set\"大众:true,\公众level\"大众:\"大众0\"大众,\"大众freq\"大众:\公众\"大众,\"大众out\"大众:\"大众out\"大众,\"大众x\公众:720,\公众y\"大众:380,\"大众wires\"大众:[]},{\公众id\"大众:\公众fd3c406.31fc4c\公众,\"大众type\"大众:\"大众rpi-gpio out\"大众,\公众z\"大众:\公众d99269c6.a2d0b8\"大众,\"大众name\公众:\"大众\公众,\"大众pin\"大众:\"大众37\公众,\公众set\"大众:true,\"大众level\公众:\"大众0\"大众,\"大众freq\公众:\"大众\"大众,\公众out\"大众:\公众out\"大众,\"大众x\公众:720,\"大众y\"大众:440,\"大众wires\"大众:[]},{\公众id\"大众:\"大众6ac88490.ba21bc\"大众,\公众type\公众:\"大众rpi-gpio out\公众,\公众z\公众:\"大众d99269c6.a2d0b8\公众,\"大众name\公众:\"大众\"大众,\公众pin\"大众:\"大众38\"大众,\"大众set\公众:true,\"大众level\"大众:\"大众0\公众,\公众freq\公众:\"大众\公众,\"大众out\公众:\"大众out\公众,\"大众x\"大众:720,\"大众y\"大众:480,\公众wires\"大众:[]},{\"大众id\"大众:\公众6473261a.673168\"大众,\公众type\"大众:\"大众inject\公众,\"大众z\"大众:\"大众d99269c6.a2d0b8\"大众,\"大众name\"大众:\"大众\"大众,\"大众topic\公众:\公众左转\"大众,\公众payload\公众:\"大众3\"大众,\"大众payloadType\"大众:\"大众str\公众,\"大众repeat\公众:\公众\公众,\"大众crontab\"大众:\"大众\"大众,\"大众once\公众:false,\"大众onceDelay\"大众:0.1,\"大众x\"大众:250,\"大众y\"大众:440,\"大众wires\"大众:[[\"大众5f130d8f.f55d84\"大众]]},{\公众id\"大众:\"大众73eb851c.b88ddc\公众,\"大众type\"大众:\公众inject\"大众,\"大众z\"大众:\"大众d99269c6.a2d0b8\公众,\"大众name\公众:\"大众\"大众,\公众topic\"大众:\公众右转\"大众,\"大众payload\"大众:\"大众4\"大众,\"大众payloadType\公众:\公众str\"大众,\"大众repeat\"大众:\"大众\公众,\"大众crontab\"大众:\"大众\"大众,\"大众once\"大众:false,\"大众onceDelay\"大众:0.1,\"大众x\公众:250,\公众y\公众:480,\公众wires\"大众:[[\"大众5f130d8f.f55d84\"大众]]},{\"大众id\"大众:\"大众bf85c267.64f96\公众,\公众type\"大众:\公众mqtt in\"大众,\"大众z\"大众:\"大众d99269c6.a2d0b8\"大众,\"大众name\公众:\"大众\"大众,\公众topic\"大众:\"大众\"大众,\公众qos\公众:\"大众2\"大众,\"大众broker\公众:\"大众bf40108b.620c2\公众,\公众x\公众:235,\"大众y\公众:160,\公众wires\"大众:[[\公众5f130d8f.f55d84\"大众,\公众8a1c007d.34912\公众]]},{\"大众id\公众:\公众8a1c007d.34912\公众,\"大众type\公众:\"大众debug\公众,\"大众z\"大众:\"大众d99269c6.a2d0b8\"大众,\公众name\"大众:\公众\"大众,\公众active\公众:false,\"大众tosidebar\"大众:true,\公众console\公众:false,\公众tostatus\公众:false,\公众complete\"大众:\"大众false\"大众,\公众x\公众:435,\"大众y\"大众:180,\"大众wires\公众:[]},{\"大众id\"大众:\"大众c1f327d8.b01818\"大众,\公众type\"大众:\"大众inject\"大众,\公众z\公众:\"大众d99269c6.a2d0b8\公众,\"大众name\"大众:\公众\"大众,\"大众topic\"大众:\"大众\"大众,\"大众payload\"大众:\"大众\公众,\"大众payloadType\"大众:\"大众date\公众,\公众repeat\"大众:\公众\"大众,\"大众crontab\"大众:\"大众\"大众,\公众once\"大众:false,\"大众onceDelay\"大众:0.1,\"大众x\"大众:240,\公众y\"大众:40,\公众wires\"大众:[[\"大众c4d9812a.7b54b\"大众]]},{\"大众id\"大众:\公众c4d9812a.7b54b\公众,\"大众type\"大众:\公众mqtt out\"大众,\"大众z\公众:\"大众d99269c6.a2d0b8\"大众,\"大众name\公众:\"大众\公众,\"大众topic\"大众:\公众\"大众,\公众qos\公众:\"大众\"大众,\"大众retain\公众:\公众\"大众,\"大众x\公众:415,\公众y\"大众:40,\公众wires\公众:[]},{\公众id\公众:\公众bf40108b.620c2\"大众,\"大众type\公众:\"大众mqtt-broker\"大众,\"大众z\公众:\"大众\公众,\公众name\公众:\公众\"大众,\"大众broker\"大众:\公众\公众,\"大众port\"大众:\"大众1883\公众,\公众clientid\公众:\"大众\公众,\公众usetls\"大众:false,\"大众compatmode\"大众:true,\"大众keepalive\公众:\"大众60\公众,\"大众cleansession\"大众:true,\"大众birthTopic\公众:\公众\公众,\"大众birthQos\公众:\公众0\"大众,\"大众birthPayload\"大众:\"大众\公众,\"大众closeTopic\"大众:\公众\"大众,\"大众closeQos\"大众:\"大众0\"大众,\"大众closePayload\"大众:\"大众\"大众,\"大众willTopic\公众:\公众\"大众,\"大众willQos\公众:\"大众0\"大众,\公众willPayload\"大众:\公众\"大众}]
导入后效果如下
修正节点属性导入的流程不能直策应用,须要修正一些节点属性配置。
双击mqtt out节点,在属性窗点击做事器右侧的那个小标签按钮进入mqtt做事配置。填好做事器(阿里mqtt实例的外网http接入点)、端口号(默认1883)、客户端id(\公众Group ID@@@任意id\"大众 客户端ID在每个实例每个主题中只能唯一,重复情形下后面连接的自动被阿里断开)、用户名(这边我们利用的是署名鉴权模式,Token鉴权模式参考文档\"大众Signature|Access Key|实例 ID\"大众)、密码(参考阿里的署名机制,快捷天生署名请点击署名校验),点击保存返回mqtt属性配置页,填写主题(阿里的Topic ID),QOS选择1(至少上传一次)。mqtt in节点类似,由于接管是用于掌握小车,以是QOS选择2(仅分发一次),以下是配置详情
PIN掌握着电机驱动模块从而掌握小车的动作,提高(四个轮子提高)、退却撤退(四个轮子退却撤退)、左转(右侧轮子转)、右转(左侧轮子转)。假设相邻的两个OUT口连接一个电机,那么驱动模块的掌握逻辑为
IN1IN2~数字旗子暗记10电机提高数字旗子暗记01电机退却撤退数字旗子暗记00电机停滞数字旗子暗记11电机停滞
根据该逻辑配置function节点(示例已包含,请根据自己的接法设置GPIO口的旗子暗记输出)
支配调试点击菜单栏的支配按钮对程序支配,程序正式运行
单击定时器后mqtt out节点会将测试利用的韶光戳上传到阿里的mqtt做事器,然后mqtt in会订阅接管到该,并在右侧调试窗口输出。正式利用数据请输入0、1、2、3
利用mqtt发送正式,操作结果
作者:fengsl