用arduino从零开始做一个《儿童算术智能出题机》——NO.1硬件篇(MAX7219、矩阵键盘、GD3800D、3D打印)

本文介绍了如何使用Arduino UNO R3、MAX7219 LED点阵、矩阵键盘和GD3800D语音模块,从零开始制作一个儿童算术智能出题机。涵盖了硬件选型、连接、驱动和3D打印外壳设计的过程。
摘要由CSDN通过智能技术生成

一、前言

本系列篇主要讲述如何通过单片机、led点阵、和键盘、语音输出模块等硬件搭建一个《儿童算术智能出题机》,该机器可以用于幼儿园和1-3年级的小学生的两位数加减乘除答题训练。记录下来,适用于初级硬件创客入门提高。下面先看一下原型机效果:

1)欢迎界面welcome:

在这里插入图片描述

2)答题中——按键答题:

在这里插入图片描述

3)答完题评分——答题时间和分数:

在这里插入图片描述

二、硬件选型

本次的任务是做一个款两位数以内的加减乘除出题机,并可以通过键盘输入,在LED上面显示,并具有语音提示功能。总体上,感觉硬件尽量成本要少,于是选用以单片机作为主板,并进行扩展,经过一番考虑后,选用的硬件配置如下:
在这里插入图片描述

2.1单片机选型

选用Arduino UNO R3单片机作为主板,是因为其具有易用的配套IDE开发环境,以及丰富的库资源及相关项目资源,可以大大缩短开发周期和环境的搭建等,其次是具有足够的IO口,及电源输出,本次任务不需要再进行IO口的扩展。
在这里插入图片描述

2.2屏幕选型

LED点阵我们选用的是MAX7219驱动,只要占用3个IO口就可以驱动足够多的点阵模块,LED点阵模块可以根据需要进行串联,本次我们选用了8块LED点阵屏。
在这里插入图片描述

2.3键盘选型

键盘我们选用了具有按键手感的4X4矩阵键盘,用户是儿童,如果用触摸板不太适合于儿童,用简单通用的教学矩阵按钮又显得太不友好,于是我们挑选了这样一款键盘:
在这里插入图片描述

2.4语音输出模块

由于本次项目是入门级产品,我们决定不用太高大上的文本转语音等NLP智能模块,本次任务语音输出只要是用于简单的引导作用,于是用了传统的MP3模块,开发周期短,我们直接采用成熟的集成产品,其驱动芯片为GD3800D:
在这里插入图片描述

2.5外观的设计

做一个机器,需要给它配套一个合适的外观,根据显示和键盘的尺寸,利用3D设计软件,简单的设计了一款产品的外壳,如下图所示:
在这里插入图片描述
在这里插入图片描述
由于不是专门学工业设计的,也不是本次的核心,设计较为简陋。根据与3D打印厂家沟通,本设计由于尺寸较为大,可能出现变形,于是又在设计中加了一些加强筋,以确保打印出来后的外壳具有足够的抗形变能力:
在这里插入图片描述

2.6元器件的连接

(1)引脚焊接

由于采购的元器件有些是需要自己焊接引脚的,所以还需要准备一套焊接设备,这里要注意的是,锡焊丝的选择,要选择有牌子的且铅含量低,锡含量高且带助焊剂的焊丝,要有一定流动性。本次采用的是这款锡焊丝(仅供参考):
在这里插入图片描述

(2)器件的连接

器件的连接,我们就不单独设计电路板了,直接采用硬线(杜邦线)+面包板的方式进行连接,硬件连接的详细图如下:
在这里插入图片描述
由于LED屏幕和MP3模块需要5v的电源,而单片机只有一个5V输出口子,我们采用面包板进行了分流。采用这种方案而不是固定式连接,主要是考虑适用于将来的项目灵活扩展。

三、硬件驱动简介

“工欲善其事,必先利其器”。硬件的硬连接搞定后,着重就要对各硬件进行驱动,使其有利于本项目的方式工作起来。这里几个模块的驱动本质上其实就是通过控制、读取IO接口的高低电平变化,来使得主板芯片与模块芯片(或电路)进行有规律的交互。

3.1 点亮LED点阵

本次用到的驱动芯片为MAX7219 ,该芯片是多位LED 显示驱动器,采用3 线串行接口传送数据,其内部含有8X8 位静态RAM,用于存放8 个数字的显示数据。并且可以多片MAX7219 进行级联,从而可控制更多的LED 点阵显示器。关于此芯片的工作原理,网上有非常多的资料,这里不再赘述。
简言之,我们要在8块LED点阵屏幕上显示不同的数字或者图案,主要的思想是编排好各块LED点阵中每个LED灯的亮和灭组合,就是在合适的位置点灯。而芯片可以接受到我们给它的“什么地址点灯,什么地址灭灯”的一串数据编码,执行电灯灭灯操作。
在这里插入图片描述
如上图,我们要显示一个“X”号,就是将相关位置的灯点亮,将不想关的位置的灯熄灭,这样就显示出来了。上面的✖号在程序中可以用一个数组表示:
在这里插入图片描述
如上图所示,一个✖的LED亮灭信息我们可以用16进制的字符数组表示:

unsigned char smath[8]={
   0x0,0x42,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JAMES费

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值