基于“人工智能和物联网+”的创新产品设计

陈英、万幸、王倩、李华兵、黄敏、强永军、赵鑫、罗万波、朱里红

目录

  • 1 教学录像
    • 1.1 课程负责人-陈英
    • 1.2 主讲教师-罗万波
    • 1.3 主讲教师-万幸
    • 1.4 主讲教师-王倩
    • 1.5 主讲教师-潘绍飞
  • 2 课程标准与学习指南
    • 2.1 课程标准
    • 2.2 学习指南
  • 3 新技术在创新创业中的应用
    • 3.1 3D打印技术简介
    • 3.2 物联网技术简介
    • 3.3 人工智能技术简介
    • 3.4 智能硬件平台选型
  • 4 TPYBoard快速入门
    • 4.1 TPYBoard连接与下载
    • 4.2 TPYBoard参数和引脚图
    • 4.3 Thonny 开发环境
    • 4.4 TPYBoard 板级功能
    • 4.5 TPYBoard GPIO
    • 4.6 TPYBorad 定时器
  • 5 智能小车设计制作
    • 5.1 智能小车舵机与电机驱动设计
    • 5.2 红外防坠落小车设计制作
    • 5.3 红外寻迹无线小车设计制作
    • 5.4 无线蓝牙智能小车设计制作
    • 5.5 加速度无线小车设计制作
  • 6 智能语音3D小狗的设计与制作
    • 6.1 3D打印技术应用
    • 6.2 智能语音技术
    • 6.3 需求分析与产品开发
    • 6.4 “智能语音3D小狗”产品策划
  • 7 智能心率监测预报仪
    • 7.1 智能心率监测预报仪需求分析与技术需求
    • 7.2 智能心率监测预报仪软硬件开发
    • 7.3 智能心率监测预报仪产品与策划
  • 8 “停车效率专家”- 智能停车系统设计
    • 8.1 智能停车场管理系统组成及产品选型
    • 8.2 智能停车系统硬件通信接口程序设计
    • 8.3 停车智能引导程序设计
    • 8.4 “停车效率专家”产品策划
  • 9 创新产品的创业指导
    • 9.1 创业者和创业者团队
    • 9.2 创业项目计划书编制及演练及展示
    • 9.3 创意产品营销及演练
  • 10 案例
    • 10.1 3D打印技术案例
    • 10.2 物联网技术案例
    • 10.3 人工智能技术案例
    • 10.4 智能汽车竞赛赛车设计与制作案例
    • 10.5 “停车效率专家”- 智能停车系统设计案例
    • 10.6 智能语音3D小狗的设计与制作案例
    • 10.7 智能心率监测预报仪案例
    • 10.8 创业者和创业者团队案例
    • 10.9 创业项目计划书编制及演练及展示案例
    • 10.10 创意产品营销及演练案例
  • 11 实训实习项目
    • 11.1 物联网技术小项目实操-模拟红绿灯
    • 11.2 人工智能技术实训项目
    • 11.3 智能汽车竞赛赛车组装与调试
    • 11.4 智能汽车竞赛赛车程序调试
    • 11.5 智能停车系统硬件通信接口程序设计
    • 11.6 停车智能引导程序设计
    • 11.7 智能语音3D小狗项目实操-3D打印小型纪念品
    • 11.8 智能语音3D小狗项目实操-情感分类问题实战
    • 11.9 智能语音3D小狗项目实操-智能语音3D小狗制作
    • 11.10 智能语音3D小狗项目实操-智能语音小狗产品策划
    • 11.11 智能心率监测预报仪项目实操-硬件选型与3D打印手环
    • 11.12 智能心率监测预报仪项目实操-智能心率监测预报仪软硬件开发
    • 11.13 智能心率监测预报仪项目实操-智能心率监测预报仪产品与策划
    • 11.14 创业案例分析实训项目
    • 11.15 创业团队组建实训项目
    • 11.16 创业计划书编制及仿真模拟实训项目
    • 11.17 创业计划书的方案展示实训项目
    • 11.18 自媒体营销方案设计实训项目
    • 11.19 产品路演及实际推广实训项目
  • 12 习题
    • 12.1 3D打印技术习题
    • 12.2 物联网技术习题
    • 12.3 人工智能技术习题
    • 12.4 智能汽车竞赛赛车设计与制作习题
    • 12.5 “停车效率专家”- 智能停车系统习题
    • 12.6 智能语音3D小狗的设计与制作
    • 12.7 智能心率监测预报仪
    • 12.8 创业者和创业者团队习题
    • 12.9 创业项目计划书编制及演练及展示习题
    • 12.10 创意产品营销及演练习题
  • 13 教案节选
    • 13.1 3D打印技术
    • 13.2 智能停车场管理系统组成及产品选型
    • 13.3 智能心率监测预报仪软硬件开发
    • 13.4 创业者经典案例剖析
无线蓝牙智能小车设计制作

无线蓝牙智能小车

1. 实验目的

  • 学习在PC机系统中扩展简单I/O     接口的方法。

  • 进一步学习编制数据输出程序的设计方法。

  • 学习蓝牙模块的接线方法及其工作原理。

  • 学习     L298N电机驱动板模块的接线方法。

  • 学习蓝牙控制小车的工作原理。

2. 所需元器件

  • TPYBoard v102板子     1

  • 蓝牙串口透传模块(HC-06)     1

  • L298N电机驱动板模块 1

  • 智能小车底盘 1

  • 数据线 1

  • 杜邦线若干

29.3. 蓝牙串口模块原理

(1)引出接口包括EN,5V,GND,TX,RX,STATE,我们小车只用到RX,TX,GND,5V四个针脚

(2)模块默认波特率位9600,默认配对密码为1234,默认名称位为HC-06

(3)led指示蓝牙连接状态,闪烁表示没有蓝牙连接,常亮表示蓝牙已连接并打开了端口,当我们用安卓手机软件发送指令时,通过串口给TPYBoard发送指令,TPYBoard收到指令通过L298BN模块来驱动小车前进,后退,向左,向右或者停止。

如下图接线,5V TPYBoardVIN GND 为地线,TXTPYBoardRX(这用的是TPYBoard串口2,X3X4)即X4RXTPYBoardTXX3


29.4. 学习L298N电机驱动板模块的接线方法

本模块是2路的H桥驱动,所以可以同时驱动两个电机,接法如图所示使能ENA ENB之后,可以分别从IN1 IN2输入PWM信号驱动电机1的转速和方向,可以分别从IN3 IN4输入PWM信号驱动电机2的转速和方向。我们将电机1接口的OUT1OUT2与小车的一个电机的正负极连接起来,将电机2接口的OUT3OUT4与小车的另一个电机的正负极连接起来。然后将两边的接线端子,即供电正极(中间的接线端子为接地)连接TPYboardVIN,中间的接线端子即接地,连接TPYBoardGNDIn1-In4连接TPYBoardY1Y2Y3Y4,通过Y1,Y2Y3,Y4的高低电平,来控制电机的转动,从而让小车前进,后退,向左,向右。


接线OK后,编写main.py,给TPYBoard通电就ok了,下面是源代码。

29.5. 源代码

import pyb
from pyb import UART
from pyb import Pin
 
M2 = Pin('X3', Pin.IN)
M3 = Pin('X4', Pin.IN)
N1 = Pin('Y1', Pin.OUT_PP)
N2 = Pin('Y2', Pin.OUT_PP)
N3 = Pin('Y3', Pin.OUT_PP)
N4 = Pin('Y4', Pin.OUT_PP)
 
u2 = UART(2, 9600 , timeout = 100)
 
while True:
        pyb.LED(2).on()
        pyb.LED(3).on()
        pyb.LED(4).on()
        _dataRead=u2.read()
        if _dataRead!=None:
        #停止(读取手机APP传过来的指令,不同的软件指令可能不同,可以自己设定,在这里是默认的,下同)
                if(_dataRead.find(b'\xa5Z\x04\xb1\xb5\xaa')>-1):
                        print('stop')
                        N1.low()
                        N2.low()
                        N3.low()
                        N4.low()
                #向左
                elif(_dataRead.find( b'\xa5Z\x04\xb4\xb8\xaa')>-1):
                        print('left')
                        N1.low()
                        N2.high()
                        N3.high()
                        N4.low()
                #向右
                elif(_dataRead.find( b'\xa5Z\x04\xb6\xba\xaa')>-1):
                        print('right')
                        N1.high()
                        N2.low()
                        N3.low()
                        N4.high()
                #后退
                elif(_dataRead.find(b'\xa5Z\x04\xb5\xb9\xaa')>-1):
                        print('back')
                        N2.high()
                        N1.low()
                        N4.high()
                        N3.low()
                #向前
                elif(_dataRead.find( b'\xa5Z\x04\xb2\xb6\xaa')>-1):
                        print('go')
                        N1.high()
                        N2.low()
                        N3.high()
                        N4.low()