查看: 455|回复: 7

[分享] blinker控制小车1.0附源码

[复制链接]
  • TA的每日心情
    奋斗
    2020-10-14 19:55
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2020-10-14 20:15 | 显示全部楼层 |阅读模式
    本帖最后由 lslcxlsl 于 2020-10-14 21:18 编辑

    小车硬件配置:WeMos(esp8266主板),
    L298N电机控制板,
    一个2路继电器,
    小蚁摄像头,
    移动充电宝,
    一个12v电池,
    履带车底盘

    接线方法:esp82266 上D5,D6,D7,D8 接到L298N的控制接口上,56,78 两组成对接,
    esp82266 上D2,D4 接继电器的两路控制接口上
    小车配置了一个小蚁网络摄像头,可以用手机观看视频和对讲,可以用来看家,代码定义了8个按钮,其中 4,5是控制摄像头电源和led电源,应为摄像头不是夜视的,晚上需要加个灯
    接电的方法是我是先接L298N然后通过它的5v输出接esp8266,虽然可以12v直接接esp8266我怕长时间用减少主板寿命。然后接了一个继电器,控制摄像头,和led灯这样摄像头电路和主板电路分开保证电源稳定,用L298N输出5v电源带不起来摄像头。下面是我代码

    1. #define BLINKER_WIFI

    2. #include <Blinker.h>

    3. char auth[] = "8bb519c05ee0";
    4. char ssid[] = "abc";
    5. char pswd[] = "chenxu123";

    6. // 新建组件对象
    7. BlinkerButton Button1("btn-a");
    8. BlinkerButton Button2("btn-l");
    9. BlinkerButton Button3("btn-r");
    10. BlinkerButton Button6("btn-p");
    11. BlinkerButton Button7("btn-ll");
    12. BlinkerButton Button8("btn-rr");
    13. BlinkerNumber Number1("num-abc");
    14. BlinkerButton Button4("btn-led");
    15. BlinkerButton Button5("btn-led1");

    16. int counter = 0;
    17. #define L_DIR_PIN       D5
    18. #define L_PWM_PIN       D6
    19. #define R_DIR_PIN       D7
    20. #define R_PWM_PIN       D8
    21. #define TIME_TAP       100

    22. #define LED0_PIN       D2
    23. #define LED1_PIN       D4

    24. void blinker_car_init()
    25. {
    26.     pinMode(L_DIR_PIN, OUTPUT);
    27.     pinMode(L_PWM_PIN, OUTPUT);
    28.     pinMode(R_DIR_PIN, OUTPUT);
    29.     pinMode(R_PWM_PIN, OUTPUT);
    30.     pinMode(LED0_PIN, OUTPUT);
    31.     pinMode(LED1_PIN, OUTPUT);
    32.     digitalWrite(L_DIR_PIN, LOW);
    33.     digitalWrite(L_PWM_PIN, LOW);
    34.     digitalWrite(R_DIR_PIN, LOW);
    35.     digitalWrite(R_PWM_PIN, LOW);
    36.     digitalWrite(LED0_PIN, LOW);
    37.     digitalWrite(LED1_PIN, LOW);
    38. }
    39. // 按下按键即会执行该函数
    40. void button1_callback(const String & state) {
    41.     BLINKER_LOG("get button state: ", state);
    42.     if(state=="tap"){
    43.       digitalWrite(L_DIR_PIN,HIGH);
    44.       digitalWrite(R_DIR_PIN,HIGH);
    45.     //  digitalWrite(LED0_PIN,HIGH);
    46.       delay(TIME_TAP);
    47.       digitalWrite(L_DIR_PIN,LOW);
    48.       digitalWrite(R_DIR_PIN,LOW);
    49.    //   digitalWrite(LED0_PIN,LOW);
    50.     }
    51.     if(state=="press"){
    52.       digitalWrite(L_DIR_PIN,HIGH);
    53.       digitalWrite(R_DIR_PIN,HIGH);
    54.     //  digitalWrite(LED0_PIN,HIGH);      
    55.     }
    56.     if(state=="pressup"){
    57.       digitalWrite(L_DIR_PIN,LOW);
    58.       digitalWrite(R_DIR_PIN,LOW);
    59.      // digitalWrite(LED0_PIN,LOW);      
    60.     }   
    61. }

    62. void button6_callback(const String & state) {
    63.     BLINKER_LOG("get button state: ", state);
    64.     if(state=="tap"){
    65.       digitalWrite(L_PWM_PIN,HIGH);
    66.       digitalWrite(R_PWM_PIN,HIGH);
    67.     //  digitalWrite(LED0_PIN,HIGH);
    68.       delay(TIME_TAP);
    69.       digitalWrite(L_PWM_PIN,LOW);
    70.       digitalWrite(R_PWM_PIN,LOW);
    71.    //   digitalWrite(LED0_PIN,LOW);
    72.     }
    73.     if(state=="press"){
    74.       digitalWrite(L_PWM_PIN,HIGH);
    75.       digitalWrite(R_PWM_PIN,HIGH);
    76.     //  digitalWrite(LED0_PIN,HIGH);      
    77.     }
    78.     if(state=="pressup"){
    79.       digitalWrite(L_PWM_PIN,LOW);
    80.       digitalWrite(R_PWM_PIN,LOW);
    81.      // digitalWrite(LED0_PIN,LOW);      
    82.     }   
    83. }

    84. void button7_callback(const String & state) {
    85.     BLINKER_LOG("get button state: ", state);
    86.     if(state=="tap"){
    87.       digitalWrite(L_PWM_PIN,HIGH);
    88.       delay(TIME_TAP);
    89.       digitalWrite(L_PWM_PIN,LOW);
    90.     }
    91.     if(state=="press"){
    92.       digitalWrite(L_PWM_PIN,HIGH);     
    93.     }
    94.     if(state=="pressup"){
    95.       digitalWrite(L_PWM_PIN,LOW);
    96.     }   
    97. }

    98. void button8_callback(const String & state) {
    99.     BLINKER_LOG("get button state: ", state);
    100.     if(state=="tap"){
    101.       digitalWrite(R_PWM_PIN,HIGH);
    102.       delay(TIME_TAP);
    103.       digitalWrite(R_PWM_PIN,LOW);
    104.     }
    105.     if(state=="press"){
    106.       digitalWrite(R_PWM_PIN,HIGH);
    107.     }
    108.     if(state=="pressup"){
    109.       digitalWrite(R_PWM_PIN,LOW);
    110.     }   
    111. }

    112. void button2_callback(const String & state) {
    113.     BLINKER_LOG("get button state: ", state);
    114.     if(state=="tap"){
    115.       digitalWrite(L_PWM_PIN,HIGH);
    116.       digitalWrite(R_DIR_PIN,HIGH);
    117. //     digitalWrite(LED1_PIN,HIGH);
    118.       delay(TIME_TAP);
    119.       digitalWrite(L_PWM_PIN,LOW);
    120.       digitalWrite(R_DIR_PIN,LOW);
    121.    //   digitalWrite(LED1_PIN,LOW);      
    122.     }
    123.     if(state=="press"){
    124.       digitalWrite(L_PWM_PIN,HIGH);
    125.       digitalWrite(R_DIR_PIN,HIGH);
    126.      // digitalWrite(LED1_PIN,HIGH);      
    127.     }
    128.     if(state=="pressup"){
    129.       digitalWrite(L_PWM_PIN,LOW);
    130.       digitalWrite(R_DIR_PIN,LOW);
    131.      // digitalWrite(LED1_PIN,LOW);      
    132.     }   
    133. }
    134. void button3_callback(const String & state) {
    135.     BLINKER_LOG("get button state: ", state);
    136.     if(state=="tap"){
    137.       digitalWrite(L_DIR_PIN,HIGH);
    138.       digitalWrite(R_PWM_PIN,HIGH);
    139.       delay(TIME_TAP);
    140.       digitalWrite(L_DIR_PIN,LOW);
    141.       digitalWrite(R_PWM_PIN,LOW);
    142.     }
    143.     if(state=="press"){
    144.       digitalWrite(L_DIR_PIN,HIGH);
    145.       digitalWrite(R_PWM_PIN,HIGH);
    146.     }
    147.     if(state=="pressup"){
    148.       digitalWrite(L_DIR_PIN,LOW);
    149.       digitalWrite(R_PWM_PIN,LOW);
    150.     }   
    151. }
    152. void button4_callback(const String & state) {
    153.     BLINKER_LOG("get button state: ", state);
    154.     if (state=="on") {
    155.         digitalWrite(LED0_PIN, HIGH);
    156.         // 反馈开关状态
    157.         Button4.print("on");
    158.     } else if(state=="off"){
    159.         digitalWrite(LED0_PIN, LOW);
    160.         // 反馈开关状态
    161.         Button4.print("off");
    162.     }
    163. }
    164. void button5_callback(const String & state) {
    165.     BLINKER_LOG("get button state: ", state);
    166.     if (state=="on") {
    167.         digitalWrite(LED1_PIN, HIGH);
    168.         // 反馈开关状态
    169.         Button5.print("on");
    170.     } else if(state=="off"){
    171.         digitalWrite(LED1_PIN, LOW);
    172.         // 反馈开关状态
    173.         Button5.print("off");
    174.     }
    175. }

    176. // 如果未绑定的组件被触发,则会执行其中内容
    177. void dataRead(const String & data)
    178. {
    179.     BLINKER_LOG("Blinker readString: ", data);
    180.     counter++;
    181.     Number1.print(counter);
    182. }

    183. void setup() {
    184.     // 初始化串口
    185.     Serial.begin(115200);

    186.     BLINKER_DEBUG.stream(Serial);

    187.     // 初始化有LED的IO
    188.     blinker_car_init();
    189.     pinMode(LED_BUILTIN, OUTPUT);

    190.     // 初始化blinker
    191.     Blinker.begin(auth, ssid, pswd);
    192.     Blinker.attachData(dataRead);
    193.     Button1.attach(button1_callback);
    194.     Button2.attach(button2_callback);
    195.     Button3.attach(button3_callback);
    196.     Button4.attach(button4_callback);
    197.     Button5.attach(button5_callback);
    198.     Button6.attach(button6_callback);
    199.     Button7.attach(button7_callback);
    200.     Button8.attach(button8_callback);
    201. }

    202. void loop() {
    203.     Blinker.run();
    204. }
    复制代码






    2.jpg
    1.jpg
    小车电路图.png

    blinker0.rar

    1.17 KB, 下载次数: 3

    小车源码

  • TA的每日心情
    奋斗
    2020-10-18 18:25
  • 签到天数: 24 天

    [LV.4]偶尔看看III

    发表于 2020-10-14 21:11 | 显示全部楼层
    好赞,周末整一个玩玩
  • TA的每日心情
    开心
    2020-10-15 11:26
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2020-10-15 11:34 | 显示全部楼层
    这,底盘去哪整的?
  • TA的每日心情
    奋斗
    2020-10-14 19:55
  • 签到天数: 3 天

    [LV.2]偶尔看看I

     楼主| 发表于 2020-10-15 14:47 | 显示全部楼层
    steve_liu 发表于 2020-10-15 11:34
    这,底盘去哪整的?

    在淘宝上买的
  • TA的每日心情
    擦汗
    2019-7-29 00:08
  • 签到天数: 47 天

    [LV.5]常住居民I

    发表于 2020-10-16 01:50 | 显示全部楼层
    电机板的 5V 输出,被 LZ 接在了开发板的 VIN (9-12V)插座上,LZ是认真的么
  • TA的每日心情
    奋斗
    2020-10-14 19:55
  • 签到天数: 3 天

    [LV.2]偶尔看看I

     楼主| 发表于 2020-10-17 15:23 | 显示全部楼层
    t3486784401 发表于 2020-10-16 01:50
    电机板的 5V 输出,被 LZ 接在了开发板的 VIN (9-12V)插座上,LZ是认真的么

    我是这么接的
  • TA的每日心情
    奋斗
    2020-10-22 20:55
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2020-10-22 20:50 | 显示全部楼层
    本帖最后由 lqcsg 于 2020-10-22 20:58 编辑

    最近也在做远程移动监控小车。360°旋转云台+对讲监控摄像头,4驱麦轮,正在研究超声波测距,自动刹车
    Screenshot_20201022_205125.jpg
    052d0c1f95cad1c858d7873e703e6709c93d511a.jpg
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    热门推荐

    关于使用DHT11库编译错误的补救资源
    关于使用DHT11库编译错误
    有些小伙伴使用从ArduinoIDE的库管理下载的DHT11库的时候可能会遇到编译错误的问题,
    我的ESP8266继电器也不工作
    我的ESP8266继电器也不工
    代码是下的某音上的爆改车间主任控制灯泡的那一集 #define BLINKER_WIFI #define BLIN
    各位大佬还请帮忙一看
    各位大佬还请帮忙一看
    最近在用Arduino读取一个惯导传感器数据,已经通过USB—TTL在电脑端验证过传感器是可
    arduinoUNO 用两个PIN控制一个spi设备(RFID)
    arduinoUNO 用两个PIN控制
    我已经测试,MRFC522的chipSelectPin 是正常的。当pin为低电平时可以正enable并都读写
    Arduino物联网开发实例教程
    Arduino物联网开发实例教
    [md] **blinker用户交流群 301438087 (仅限github已Star的用户加群)** ## bli
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
    快速回复 返回顶部 返回列表