有人预言,RISC-V或将是继Intel和Arm之后的第三大主流处理器体系。欢迎访问全球首家只专注于RISC-V单片机行业应用的中文网站
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 51MCU 于 2022-1-21 15:59 编辑
Processing串口编程+RISC-Vduino串口通信(Processing从串口读取数据)
Processing开发RISC-Vduino UNO Board,成功实现Processing接收到来自
RISC-Vduino UNO Board的问候:Hello,Processing! I am RISC-Vduino Board!Processing 成功实现下发数据控制RISC-Vduino UNO Board上的LED亮灭!
【1】硬件
1.笔记本或PC电脑(建议系统Windows/Linux)[电脑应该都有吧]
2.RISC-Vduino UNO Board [手头没有,某宝或PDD淘一块吧]
3.USB 下载线
4.USB mini通信线
【2】软件
1.MRS(除了MounRiver Studio IDE,也可以选其他RISC-V IDE)
2.Processing
【3】上传开源代码
RISC-Vduino UNO Board开源代码:
- void HelloWorld_LED_Init(void)
- {
- GPIO_InitTypeDef GPIO_InitStructure;
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
- GPIO_Init(GPIOA, &GPIO_InitStructure);
- GPIO_ResetBits(GPIOA,GPIO_Pin_1);
- }
- // the main function runs once when you press reset or power the RISC-Vduino board
- int main(void)
- {
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
- Delay_Init();
- USART_Printf_Init(9600);// initialize serial communication at 9600 bits per second:
- printf("SystemClk:%d\r\n",SystemCoreClock);
- printf("This is SerialCommunication example\r\n");
- HelloWorld_LED_Init();
- // the while function runs over and over again forever
- while(1)
- {
- //Processing串口编程+RISC-Vduino串口通信(RISC-Vduino串口读取Processing下发的数据)
- if(USART_GetFlagStatus(USART1, USART_FLAG_RXNE) != RESET)
- {
- if(USART_ReceiveData(USART1) == 0x00)
- {
- GPIO_ResetBits(GPIOA,GPIO_Pin_1);// CLOSE RISC-Vduino BOARD LED
- }
- if(USART_ReceiveData(USART1) == 0x01)
- {
- GPIO_SetBits(GPIOA,GPIO_Pin_1); // OPEN RISC-Vduino BOARD LED
- }
- }
- //Processing串口编程+RISC-Vduino串口通信(Processing从RISC-Vduino串口上传数据)
- printf("Hello,Processing!\r\n");
- Delay_Ms(25);
- printf("I am RISC-Vduino Board!\r\n");
- }
- }
复制代码
RISC-Vduino UNO Board全部工程代码下载地址:
https://gitee.com/risc-v-mcu-chinese-network/RISC-Vduino-UNO-RevC/blob/develop/SoftwareFirmware_BASIC/RISC-Vduino_08_SerialCommunication.zip
Processing开源代码:
- import processing.serial.*;
- Serial port; // Create object from Serial class
- String message;
- void setup()
- {
- port = new Serial(this, "COM3", 9600);//open windows Device COM3,from RISC-Vduino UNO Board connect!
- }
- void draw()
- {
- message = port.readString();
- print(message);
- port.write(1); // OPEN RISC-Vduino BOARD LED
- //port.write(0);// CLOSE RISC-Vduino BOARD LED
- }
复制代码
Processing全部工程代码下载地址:
https://gitee.com/risc-v-mcu-chinese-network/Processing--RISC-Vduino/tree/develop/
【4】背景小知识
Processing简介:Processing是数位艺术软件,纯软件平台,无法直接控制硬件,而借助RISC-Vduino,可以读取各种传感器的数值,也可控制各种机电装置,可扩展用于控制智能家居,无人飞机,机器人等各种硬件实体.用Processing来学计算机语言,编程的结果能表现为更加直观、友好的数位图片,或者是动态影像,这样会激发学生们敲程序的冲动,让编程变成有趣的创作经历.
生活中有相当一部分机器人爱好者是非计算机专业的人员,对于他们来说,专业软件开发平台的编程技术会成为其学习的障碍,从而导致他们放弃深入探究的计划!2001年,麻省理工学院(MIT)媒体实验室的Casey Reas和BenjaminFry发起了此计划,其特定目标之一便是开发一个有效的工具,通过激励性的可视化反馈,帮助非程序员进行编程的入门学习。
Processing语言建立在Java语言的基础之上,但使用简化的语法和图形编程模型。Processing是一种开源的编程语言和环境,它服务于有创意的设计师和艺术家,这些人希望利用某种程序,来创意静态图像和动态影像,并使创作的作品能与人产生良好的互动。这个软件最初的开发目的是作为一种学习编程软件,能够可视化的方法,教学习者计算机编程基础,现在它已经演化为完成专业工作的工具。现有成千上万的学生,艺术家,设计师,研究人员,和爱好者,用Processing来学习、创意和制作产品。
例如想让在电脑PC中设计的艺术作品与外部物理世界进行互动,让作品能与人和物产生“对话”,就需要传感器把外部环境的信息,采集到电脑中处理,做到这一点,目前通常的方法是通过RISC-Vduino控制器把传感器数据,通过串口通信,读到上位机软件Processing里,然后通过处理,让Processing数位作品的某些特征与传感器数据产生关联,于是物理世界的环境数据发生变化时,也会使虚拟数字世界的作品随之互动,不断幻化出动态语义的奇妙画面。
|