江苏科技大学“FlySpiders”本创小组组员学习记录----王澳刚

本文介绍了一种使用Arduino控制8x8点阵显示不同图案的方法。通过定义多个数值表格来表示不同的图像,并利用Arduino的I/O口进行逐列刷新,实现了六张不同图案的循环展示。

学习者:王澳刚

内容归属:王澳刚

学习内容:Arduino

代码描述:

 8X8点阵共由64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一行置1电平,某一列置0电平,则相应的二极管就亮;如要将第一个点点亮,则9脚接高电平13脚接低电平,则第一个点就亮了;如果要将第一行点亮,则第9脚要接高电平,而(13、3、4、10、6、11、15、16)这些引脚接低电平,那么第一行就会点亮;如要将第一列点亮,则第13脚接低电平,而(9、14、8、12、1、7、2、5)接高电平,那么第一列就会点亮。 
代码:
 #define L1 8
#define L2 7
#define L3 6
#define L4 5
#define L5 4
#define L6 2
#define L7 A0
#define L8 A1//将能控制列的引脚与i\o口绑定
 
#define H1 12
#define H2 11
#define H3 10
#define H4 9
#define H5 A5
#define H6 A4
#define H7 A3
#define H8  A2//将 能控制行的引脚与i/o口绑定

我的手机 2017/4/25 22:40:49

unsigned char table1[8][8]={
0,0,0,0,0,0,0,0,
0,1,1,0,0,1,1,0,
1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,
0,1,1,1,1,1,1,0,
0,0,1,1,1,1,0,0,
0,0,0,1,1,0,0,0,};//定义一个第一幅图片的数表
unsigned char table2[8][8]={
0,0,0,0,1,1,1,1,
0,0,1,1,1,1,1,0,
0,0,1,1,0,0,0,0,
0,1,1,0,0,0,0,0,
0,1,1,0,0,0,0,0,
0,0,1,1,0,0,0,0,
0,0,1,1,1,1,1,0,
0,0,0,0,1,1,1,1,};定义一个第二幅图片的数表
unsigned char table3[8][8]={
0,1,1,0,0,0,0,0,
0,1,1,0,0,0,0,0,
0,1,1,0,0,0,0,0,
0,1,1,1,1,1,1,1,
0,1,1,1,1,1,1,1,
0,1,1,0,0,0,1,1,
0,1,1,0,0,0,1,1,
0,1,1,0,0,0,1,1,}; 定义一个第三幅图片的数表
unsigned char table4[8][8]{
0,0,0,0,1,1,0,0,
0,0,0,0,1,1,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,1,1,0,0,
0,0,0,0,1,1,0,0,
0,0,0,0,1,1,0,0,
0,0,0,0,1,1,0,0,
0,0,0,0,1,1,0,0,};定义一个第四幅图片的数表
unsigned char table5[8][8]{
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,1,1,0,0,0,0,
0,0,1,1,1,1,1,1,
0,0,1,1,1,1,1,1,
0,0,1,1,0,0,1,1,
0,0,1,1,0,0,1,1,};定义一个第五幅图片的数表
unsigned char table6[8][8]{
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,1,1,1,0,0,0,
0,1,0,0,0,1,0,0,
0,1,0,0,0,1,0,0,
0,1,0,0,0,1,1,0,
0,0,1,1,1,0,0,1,};定义一个第六幅图片的数表

我的手机 2017/4/25 22:40:55

void Clear(){
digitalWrite(H1,LOW);
digitalWrite(H2,LOW);
digitalWrite(H3,LOW);
digitalWrite(H4,LOW);
digitalWrite(H5,LOW);
digitalWrite(H6,LOW);
digitalWrite(H7,LOW);
digitalWrite(H8,LOW);
digitalWrite(L1,HIGH);
digitalWrite(L2,HIGH);
digitalWrite(L3,HIGH);
digitalWrite(L4,HIGH);
digitalWrite(L5,HIGH);
digitalWrite(L6,HIGH);
digitalWrite(L7,HIGH);
digitalWrite(L8,HIGH);
}//去辉度函数

我的手机 2017/4/25 22:41:00

void setup(){
pinMode(button,INPUT_PULLUP);//将按钮定义为上拉型输出
 pinMode(H1,OUTPUT);
pinMode(H2,OUTPUT);
pinMode(H3,OUTPUT);
pinMode(H4,OUTPUT);
pinMode(H5,OUTPUT);
pinMode(H6,OUTPUT);
pinMode(H7,OUTPUT);
pinMode(H8,OUTPUT);
pinMode(L1,OUTPUT);
pinMode(L2,OUTPUT);
pinMode(L3,OUTPUT);
pinMode(L4,OUTPUT);
pinMode(L5,OUTPUT);
pinMode(L6,OUTPUT);
pinMode(L7,OUTPUT);
pinMode(L8,OUTPUT);//定义十六个输出
}

我的手机 2017/4/25 22:41:05

void Display(unsigned char tab[8][8]){
  digitalWrite(L1,LOW);//将第一列设置为低电平
  digitalWrite(H1,tab[0][0]);//把数表第一行第一列的数值给能控制第一行电平的i/o口
  digitalWrite(H2,tab[1][0]);//把数表第二行第一列的数值给能控制第二行电平的i/o口
  digitalWrite(H3,tab[2][0]);//把数表第三行第一列的数值给能控制第三行电平的i/o口
  digitalWrite(H4,tab[3][0]);//把数表第四行第一列的数值给能控制第四行电平的i/o口
  digitalWrite(H5,tab[4][0]);把数表第五行第一列的数值给能控制第五行电平的i/o口
  digitalWrite(H6,tab[5][0]);//把数表第六行第一列的数值给能控制第六行电平的i/o口
  digitalWrite(H7,tab[6][0]);//把数表第七行第一列的数值给能控制第七行电平的i/o口
  digitalWrite(H8,tab[7][0]);//把数表第八行第一列的数值给能控制第八行电平的i/o口
  delay(1);//延时一毫秒
  Clear();//去辉度函数
  digitalWrite(L2,LOW);
  digitalWrite(H1,tab[0][1]);
  digitalWrite(H2,tab[1][1]);
  digitalWrite(H3,tab[2][1]);
  digitalWrite(H4,tab[3][1]);
  digitalWrite(H5,tab[4][1]);
  digitalWrite(H6,tab[5][1]);
  digitalWrite(H7,tab[6][1]);
  digitalWrite(H8,tab[7][1]);
  delay(1);
  Clear();
  //把第二列图像显示
   digitalWrite(L3,LOW);
  digitalWrite(H1,tab[0][2]);
  digitalWrite(H2,tab[1][2]);
  digitalWrite(H3,tab[2][2]);
  digitalWrite(H4,tab[3][2]);
  digitalWrite(H5,tab[4][2]);
  digitalWrite(H6,tab[5][2]);
  digitalWrite(H7,tab[6][2]);
  digitalWrite(H8,tab[7][2]);
  delay(1);
  Clear();
  //把第三列图像显示

   digitalWrite(L4,LOW);
  digitalWrite(H1,tab[0][3]);
  digitalWrite(H2,tab[1][3]);
  digitalWrite(H3,tab[2][3]);
  digitalWrite(H4,tab[3][3]);
  digitalWrite(H5,tab[4][3]);
  digitalWrite(H6,tab[5][3]);
  digitalWrite(H7,tab[6][3]);
  digitalWrite(H8,tab[7][3]);
  delay(1);
  Clear();
  //把第四列图像显示

   digitalWrite(L5,LOW);
  digitalWrite(H1,tab[0][4]);
  digitalWrite(H2,tab[1][4]);
  digitalWrite(H3,tab[2][4]);
  digitalWrite(H4,tab[3][4]);
  digitalWrite(H5,tab[4][4]);
  digitalWrite(H6,tab[5][4]);
  digitalWrite(H7,tab[6][4]);
  digitalWrite(H8,tab[7][4]);
  delay(1);
  Clear();
  //把第五列图像显示

   digitalWrite(L6,LOW);
  digitalWrite(H1,tab[0][5]);
  digitalWrite(H2,tab[1][5]);
  digitalWrite(H3,tab[2][5]);
  digitalWrite(H4,tab[3][5]);
  digitalWrite(H5,tab[4][5]);
  digitalWrite(H6,tab[5][5]);
  digitalWrite(H7,tab[6][5]);
  digitalWrite(H8,tab[7][5]);
  delay(1);
  Clear();
  //把第六列图像显示
   digitalWrite(L7,LOW);
  digitalWrite(H1,tab[0][6]);
  digitalWrite(H2,tab[1][6]);
  digitalWrite(H3,tab[2][6]);
  digitalWrite(H4,tab[3][6]);
  digitalWrite(H5,tab[4][6]);
  digitalWrite(H6,tab[5][6]);
  digitalWrite(H7,tab[6][6]);
  digitalWrite(H8,tab[7][6]);
  delay(1);
  Clear();
  //把第七列图像显示

   digitalWrite(L8,LOW);
  digitalWrite(H1,tab[0][7]);
  digitalWrite(H2,tab[1][7]);
  digitalWrite(H3,tab[2][7]);
  digitalWrite(H4,tab[3][7]);
  digitalWrite(H5,tab[4][7]);
  digitalWrite(H6,tab[5][7]);
  digitalWrite(H7,tab[6][7]);
  digitalWrite(H8,tab[7][7]);
  delay(1);
  Clear();//把第八列图像显示
}

我的手机 2017/4/25 22:41:15

void loop(){
 
if(digitalRead(button)==LOW)//如果按下按钮开始执行程序
{for(int i=0;i<100;i++)
  Display(table1);//将图一显示一百次
 for(int i=0;i<100;i++)
 Display(table2);//将图二显示一百次
 for(int i=0;i<100;i++)
 Display(table3);//将图三显示一百次
  for(int i=0;i<100;i++)
 Display(table4);//将图四显示一百次
  for(int i=0;i<100;i++)
 Display(table5);//将图五显示一百次
 for(int i=0;i<100;i++)
 Display(table6);//将图六显示一百次

}

                                                                                                                                                                                                                                                                   图文编辑:朱玉馨

本项目构建于RASA开源架构之上,旨在实现一个具备多模态交互能力的智能对话系统。该系统的核心模块涵盖自然语言理解、语音转文本处理以及动态对话流程控制三个主要方面。 在自然语言理解层面,研究重点集中于增强连续对话中的用户目标判定效能,并运用深度神经网络技术提升关键信息提取的精确度。目标判定旨在解析用户话语背后的真实需求,从而生成恰当的反馈;信息提取则专注于从语音输入中析出具有特定意义的要素,例如个体名称、空间位置或时间节点等具体参数。深度神经网络的应用显著优化了这些功能的实现效果,相比经典算法,其能够解析更为复杂的语言结构,展现出更优的识别精度与更强的适应性。通过分层特征学习机制,这类模型可深入捕捉语言数据中隐含的语义关联。 语音转文本处理模块承担将音频信号转化为结构化文本的关键任务。该技术的持续演进大幅提高了人机语音交互的自然度与流畅性,使语音界面日益成为高效便捷的沟通渠道。 动态对话流程控制系统负责维持交互过程的连贯性与逻辑性,包括话轮转换、上下文关联维护以及基于情境的决策生成。该系统需具备处理各类非常规输入的能力,例如用户使用非规范表达或对系统指引产生歧义的情况。 本系统适用于多种实际应用场景,如客户服务支持、个性化事务协助及智能教学辅导等。通过准确识别用户需求并提供对应信息或操作响应,系统能够造连贯顺畅的交互体验。借助深度学习的自适应特性,系统还可持续优化语言模式理解能力,逐步完善对新兴表达方式与用户偏好的适应机制。 在技术实施方面,RASA框架为系统开发提供了基础支撑。该框架专为构建对话式人工智能应用而设计,支持多语言环境并拥有活跃的技术社区。利用其内置工具集,开发者可高效实现复杂的对话逻辑设计与部署流程。 配套资料可能包含补充学习文档、实例分析报告或实践指导手册,有助于使用者深入掌握系统原理与应用方法。技术文档则详细说明了系统的安装步骤、参数配置及操作流程,确保用户能够顺利完成系统集成工作。项目主体代码及说明文件均存放于指定目录中,构成完整的解决方案体系。 总体而言,本项目整合了自然语言理解、语音信号处理与深度学习技术,致力于打造能够进行复杂对话管理、精准需求解析与高效信息提取的智能语音交互平台。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值