查看: 11013|回复: 13

[原创] [疯狂的四驱车]更新nodemcu的wifi简单控制,和超声波传感器...

[复制链接]
  • TA的每日心情
    奋斗
    2018-7-24 14:23
  • 签到天数: 98 天

    [LV.6]常住居民II

    14

    主题

    419

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2021
    最后登录
    2024-3-23
    发表于 2016-7-6 20:10:38 | 显示全部楼层 |阅读模式
    本帖最后由 samplecode 于 2016-7-13 19:20 编辑

    1.esp8266-12e制作nodemcu IMG_20160706_193728.jpg IMG_20160706_193705.jpg

    在小车收到之前把买的esp8266烧成了nodemcu,学习下lua.
    1.1电路图
    jiexian.png
    我用的usb转串口上的电源供的电。
    1.2烧写用的软件及资料
    链接:https://pan.baidu.com/s/1qYN8HnY 密码:iby1

    烧写固件用的是nodemcu-flasher-master这个。按着箭头方向找到那个文件,系统是32位的进对应的win32.
    0flashfirmware.png

    烧写前先将gpio0和gnd连上


    软件打开后的如上图,连好焊好的硬件,点Flash,读取到MAC就开始烧写了,然后esp8266上的灯就一直闪,烧完就不闪了。
    不点config貌似是从网上下固件,最新的固件没下载下载,只有一个旧的nodemcu_integer_0.9.6-dev_20150704.bin

    点config加载一下固件
    1flashfirmware.png

    再点flash
    flashfirmware.png 3QQ截图20160706184029.png

    进度条走完也就烧完了

    1.3nodemcu的编程环境ESPlorer
    打开esplorer
    1.png
    2.png
    1)打开串口,设置好波特率
    2)回车换行符
    3)lua编程区,可以载入文件,保存文件,编写程序。
    4)程序运行窗口
    。。。
    0.png QQ截图20160706192815.png

    对应的引脚,API说明文档都放到网盘里了。
    pin.jpg

    1.4nodemcu-WiFi控制方式1:简单的httpserver
    原帖地址 http://blog.csdn.net/dingzz/article/details/46876503
    1. wifi.setmode(wifi.STATION)  
    2. wifi.sta.config("wifissid","password")  
    3. print(wifi.sta.getip())  
    4. srv=net.createServer(net.TCP)  
    5. srv:listen(80,function(conn)  
    6.     conn:on("receive", function(client,request)  
    7.         local buf = "";  
    8.         local _, _, method, path, vars = string.find(request, "([A-Z]+) (.+)?(.+) HTTP");  
    9.         if(method == nil)then  
    10.             _, _, method, path = string.find(request, "([A-Z]+) (.+) HTTP");  
    11.         end  
    12.         local _GET = {}  
    13.         if (vars ~= nil)then  
    14.             for k, v in string.gmatch(vars, "(%w+)=(%w+)&*") do  
    15.                 _GET[k] = v  
    16.             end  
    17.         end  
    18.         buf = buf.."<h1> ESP8266 Web Server</h1>";  
    19.         buf = buf.."<p>turn around <a href="?pin=left"><button>left</button></a> <a href="?pin=right"><button>right</button></a></p>";  
    20.         buf = buf.."<p>go go go! <a href="?pin=go"><button>go</button></a> <a href="?pin=back"><button>back</button></a></p>";  
    21.         local _on,_off = "",""  
    22.         if(_GET.pin == "left")then  
    23.              -- uart.write(0,"left\n")
    24.               print("left\n")
    25.         elseif(_GET.pin == "right")then  
    26.               --uart.write(0,"right\n")
    27.               print("right\n")
    28.         elseif(_GET.pin == "go")then  
    29.              -- uart.write(0,"go\n")
    30.               print("go\n")
    31.         elseif(_GET.pin == "back")then  
    32.               --uart.write(0,"back\n")
    33.               print("back\n")
    34.         end  
    35.         client:send(buf);  
    36.         client:close();  
    37.         collectgarbage();  
    38.     end)  
    39. end)  
    复制代码

    打开网页
    web.png
    串口收到的数据
    http.png

    使用nodemcu搭建简单的
    1.5nodemcu-WiFi控制方式2:使用贝壳物联
    原文地址http://www.bigiot.net/help/20.html


    将init.lua中的wifi的ssid和密码换成你的,将kaiguan.lua中的设备id,key,接口id换成你的
    简单测试结果
    手机app端控制
    Screenshot_2016-07-09-19-36-02.png
    控制led亮
    IMG_20160709_193617.jpg
    串口收到的信息
    bkwl.png

    2.供电,驱动
    2.1驱动
    l298n.jpg
    驱动用的这个,芯片给磨了,不知是什么型号,他说是l298n。。。逻辑真值表:电机A:当IN1为高电平IN2为低电平的时候正转(看电机的连线,正反自己调)
    逻辑真值表.jpg
    2.2使用arduino uno简单测试驱动
    1. int in1 = 8;
    2. int in2 = 9;
    3. void runAz(); //电机A正转
    4. void runAf(); //电机A反转
    5. void runAs(); //电机A停止

    6. void setup() {
    7.   pinMode(in1,OUTPUT);
    8.   pinMode(in2,OUTPUT);
    9. }

    10. void loop() {
    11.   runAz();
    12.   delay(3000);
    13.   runAs();
    14.   delay(1000);
    15.   runAf();
    16.   delay(3000);
    17.   runAs();
    18. }
    19. void runAz(){
    20.   digitalWrite(in1,HIGH);
    21.   digitalWrite(in2,LOW);
    22. }
    23. void runAf(){
    24.   digitalWrite(in2,HIGH);
    25.   digitalWrite(in1,LOW);
    26. }
    27. void runAs(){
    28.   digitalWrite(in1,HIGH);
    29.   digitalWrite(in2,HIGH);
    30. }
    复制代码

    3.使用mbed简单调试
    3.1更新mbed的固件
    ARMmbed的网址http://developer.mbed.org/platforms/FRDM-K64F/
    更新mbed固件教程的网址http://developer.mbed.org/handbook/Firmware-FRDM-K64F
    1)首先按住板子上的复位键,然后micro usb线连到opensda那个口就可以进到bootloader模式
    2)下载固件http://developer.mbed.org/media ... 128_k64f_0x5000.bin
    3)将下载好的固件拖拽到bootloader盘下。
    3.2 k64f在mbed上的引脚名称
    对应引脚名称http://developer.mbed.org/teams/Freescale/wiki/frdm-k64f-pinnames
    k64f板的部分引脚是和Arduino兼容的,mbed在线开发环境的使用的语法和arduino差不多
    pin.webp.jpg
    LED (RGB) //灯在mbed里调用时的名称。LED_RED或LED1
    LED_RED = PTB22
    LED_GREEN = PTE26
    LED_BLUE = PTB21
    mbed original LED naming
    LED1 = LED_RED
    LED2 = LED_GREEN
    LED3 = LED_BLUE
    LED4 = LED_RED
    Push buttons //按键
    SW2 = PTC6
    SW3 = PTA4
    USB Pins //usb的串口
    USBTX = PTB17
    USBRX = PTB16
    Arduino Headers //与arduino兼容的引脚名称
    D0 = PTC16
    D1 = PTC17
    D2 = PTB9
    D3 = PTA1
    D4 = PTB23
    D5 = PTA2
    D6 = PTC2
    D7 = PTC3
    D8 = PTA0
    D9 = PTC4
    D10 = PTD0
    D11 = PTD2
    D12 = PTD3
    D13 = PTD1
    D14 = PTE25
    D15 = PTE24
    A0 = PTB2
    A1 = PTB3
    A2 = PTB10
    A3 = PTB11
    A4 = PTC10
    A5 = PTC11
    I2C pins
    I2C_SCL = D15
    I2C_SDA = D14
    DAC0_OUT = 0xFEFE /* DAC does not have Pin Name in RM */

    3.3试试超声波传感器hc-sr04
    mbed还有很多传感器的例程http://developer.mbed.org/components/cat/sensors/
    点传感器图片进去导入工程,试一下能不能用,不能用再改。
    hsr-04.png
    hc-sr04数据手册地址http://www.micropik.com/PDF/HCSR04.pdf
    参数:
    Working Voltage DC 5 V
      Working Current 15mA
    Working Frequency 40Hz
    Max Range 最大 4m
    Min Range 最小 2cm
    MeasuringAngle 15 degree
    Trigger Input Signal 10uS TTL pulse  靠10us高电平触发
    Echo Output Signal Input TTL lever signal and the range in proportion
    Dimension 45*20*15mm

    Test distance (距离)= (high level time(echo高电平时间)×velocity of sound (声速340M/S) / 2
    时序图:
    hc-sr04timer.png
    程序及库所在页面http://developer.mbed.org/components/HC-SR04/
    点importprogram导入工程,然后点Compile编译,将编译好的bin文件复制到Mbed盘下
    program.png
    实测图片
    IMG_20160709_133643.jpg IMG_20160709_133651.jpg



    3.4让小车前进后退k64控制小车前进后退,使用mbed编写的程序,和Arduino一样简单。
    1. #include "mbed.h"
    2. DigitalOut zq1(D13);
    3. DigitalOut zq2(D12);
    4. DigitalOut yq1(D11);
    5. DigitalOut yq2(D10);

    6. DigitalOut zh1(D7);
    7. DigitalOut zh2(D6);
    8. DigitalOut yh1(D5);
    9. DigitalOut yh2(D4);

    10. void zheng();
    11. void fan();
    12. void run();
    13. void stop();
    14. void back();
    15. void left();
    16. void right();

    17. int main() {
    18.     while(1) {
    19.         run();
    20.         wait(2);
    21.         stop();
    22.         wait(2);
    23.         back();
    24.         wait(2);
    25.     }
    26. }

    27. void run(){
    28.     zheng();   
    29. }
    30. void stop(){
    31.     zq1 = 1;
    32.     zq2 = 1;
    33.     yq1 = 1;
    34.     yq2 = 1;
    35.     zh1 = 1;
    36.     zh2 = 1;
    37.     yh1 = 1;
    38.     yh2 = 1;
    39. }
    40. void zheng(){
    41.     zq1 = 1;
    42.     zq2 = 0;
    43.     yq1 = 0;
    44.     yq2 = 1;
    45.     zh1 = 1;
    46.     zh2 = 0;
    47.     yh1 = 0;
    48.     yh2 = 1;
    49. }
    50. void fan(){
    51.     zq1 = 0;
    52.     zq2 = 1;
    53.     yq1 = 1;
    54.     yq2 = 0;
    55.     zh1 = 0;
    56.     zh2 = 1;
    57.     yh1 = 1;
    58.     yh2 = 0;
    59. }
    60. void back(){
    61.     fan();
    62. }
    63. void right(){

    64. }
    65. void left(){
    66.    
    67. }
    复制代码

    拍的小视频



    该会员没有填写今日想说内容.
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2021-9-9 22:51
  • 签到天数: 415 天

    [LV.9]以坛为家II

    79

    主题

    3088

    帖子

    21

    金牌会员

    Rank: 6Rank: 6

    积分
    5181
    最后登录
    2022-5-23
    发表于 2016-7-6 21:01:03 | 显示全部楼层
    本帖最后由 ALTIUM2 于 2016-7-6 21:12 编辑

       赞一个,加加油!
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-5-9 08:12
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    34

    主题

    801

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2268
    最后登录
    2021-8-11
    发表于 2016-7-7 08:09:58 | 显示全部楼层
    赞一个               
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2023-9-17 19:57
  • 签到天数: 2310 天

    [LV.Master]伴坛终老

    107

    主题

    4270

    帖子

    1

    金牌会员

    Rank: 6Rank: 6

    积分
    10481
    最后登录
    2023-9-17
    发表于 2016-7-7 09:41:25 | 显示全部楼层
    nodemcu用Lua开发,不如改成micropython,功能强多了。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2020-1-12 00:23
  • 签到天数: 745 天

    [LV.9]以坛为家II

    27

    主题

    1万

    帖子

    26

    金牌会员

    Rank: 6Rank: 6

    积分
    6868
    最后登录
    2020-7-15
    发表于 2016-7-7 09:46:13 | 显示全部楼层
    看着不错,楼主加油!
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-11-15 10:33
  • 签到天数: 79 天

    [LV.6]常住居民II

    89

    主题

    2169

    帖子

    3

    金牌会员

    Rank: 6Rank: 6

    积分
    1779
    最后登录
    2020-8-22
    发表于 2016-7-7 09:57:44 | 显示全部楼层


    赞一个
    签到
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2017-2-13 08:29
  • 签到天数: 20 天

    [LV.4]偶尔看看III

    531

    主题

    2048

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    210
    最后登录
    2018-8-14
    发表于 2016-7-7 11:09:26 | 显示全部楼层
    加油
    签到 签到
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2017-5-9 08:12
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    34

    主题

    801

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2268
    最后登录
    2021-8-11
    发表于 2016-7-7 13:49:01 | 显示全部楼层
    电池用的什么型号
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2018-7-24 14:23
  • 签到天数: 98 天

    [LV.6]常住居民II

    14

    主题

    419

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2021
    最后登录
    2024-3-23
     楼主| 发表于 2016-7-9 20:18:42 来自手机 | 显示全部楼层
    进度貌似慢了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2018-7-24 14:23
  • 签到天数: 98 天

    [LV.6]常住居民II

    14

    主题

    419

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2021
    最后登录
    2024-3-23
     楼主| 发表于 2016-7-9 20:18:58 来自手机 | 显示全部楼层
    (≧∇≦*)
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-4-20 15:23 , Processed in 0.142491 second(s), 29 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表