智能电子小车:Arduino,元器件控制代码,网页遥控

本文是【马悦宁老师】指导完成的山东大学引航计划公益人工智能科研实训项目。
注:本文所用代码皆已上传至Github上。

智能电子小车

开发环境配置

  • 安装Arduino;
  • 配置:
    • 工具栏开发板选择ESP32 Arduino下的AI Thinker ESP32-CAM;
    • 选择自己的端口;
    • 串口监视器设置115200波特率。

基本电子电路操作

主板

主板实物图:
智能电子小车:Arduino,元器件控制代码,网页遥控_第1张图片
智能电子小车:Arduino,元器件控制代码,网页遥控_第2张图片

  • LED(1_LED):电压/电平高低;
  • 按键button(2_3_BUTTON_GOOD):读取电平;
    智能电子小车:Arduino,元器件控制代码,网页遥控_第3张图片

PWM控制:

  • 电机motor(8_MCPWM_motor):正反转、停、变速,双线AB;
    智能电子小车:Arduino,元器件控制代码,网页遥控_第4张图片

  • 舵机servo(9_MCPWM_servo):0~180 度,单线,①周期,②频率 freq:50Hz(20ms),③占空比duty_cycle:2.5%~12.5%(0.5 ~ 2.5ms)。
    智能电子小车:Arduino,元器件控制代码,网页遥控_第5张图片

    • 调用mcpwm_gpio_init()将两个GPIO初始化为选定单元内的输出信号;
    • 通过mcpwm_config_t结构体为定时器设置频率和初始值占空比;
    • 使用以上设置配置PWM0A和PWM0B,使用上述参数调用mcpwm_init()以使配置有效。

注:先将代码烧入板子里,再连电池电机(舵机可一直连着)。

小车拼装

  • 小车拼装及电子元件预处理(即将电机,舵机等元件安上螺丝等零件以固定到小车上);
  • 自行调试电机舵机:舵机归位,占空比7.5为居中,电机调整占空比来改变速度。
    智能电子小车:Arduino,元器件控制代码,网页遥控_第6张图片
    舵机与电机安装如下:智能电子小车:Arduino,元器件控制代码,网页遥控_第7张图片

网页基本元素和热点

  • 定义GPIO脚;
  • 网页控制LED灯(html_botton_led)及小车(html_botton_motor)
    • 设置名字密码,板子充当路由器,自身产生热点;
  • 网页设置:
    • head:style
    • body:
      • button
      • script:function
  • 初始化函数 setup():
    • WIFI
    • pinMode,digitalWrite
    • server.on()
  • 循环函数loop()
  • 自定义函数void xxx()

摄像头

  • ESP32开发板连两根线:GND、5V,并将摄像头安到开发板上;
    智能电子小车:Arduino,元器件控制代码,网页遥控_第8张图片
    智能电子小车:Arduino,元器件控制代码,网页遥控_第9张图片

  • 连开发板产生的WiFi,通过串口监视器查看网址及网页请求操作,若没有显示,按开发板RESET键:

    • 网页控制小车行动及采集并保存照片到SD卡,即采集数据:
      • 摄像头(IP_Camera
      • 主板(Web_Server_Photo_Manager

智能电子小车:Arduino,元器件控制代码,网页遥控_第10张图片
网页摇控:开发板烧入car_html_manager,摄像头烧入IP_camera_and_record,将摄像头连到开发板上,开发板连上电源、电机和舵机。电脑/手机连上开发板热点后,通过网页(192.168.4.1)设置摄像时长及间隔时间,点击start/stop record进行摄像,start/stop stream为展示实时视频流(不需要),操控小车在跑道上行驶。可在(192.168.4.5)上查看拍摄的图片信息。
智能电子小车:Arduino,元器件控制代码,网页遥控_第11张图片

你可能感兴趣的:(嵌入式硬件,c语言,前端)