宜昌城老张的博客

我工作在湖北宜昌市三峡大学,热衷基于桌面环境的机电模型制作。本博客探讨的内容已涉及到Processing互动艺术、Arduino单片微控制器、开源软件、机器人,欢迎回帖!

博客列表

基于Proteus和LabVIEW的小车双轮电机系统仿真(视频)
发表于:2013-09-13 16:25:54 | 分类:Arduino与Proteus仿真
浏览( ) | 评论( )

    这次设计应用了上位机LabVIEW软件和下位机Arduino控制器。为了实现智能小车前进、后退、左转、右转,使小车能够向不同的方向运行,必须对小车的两个电机进行控制,包括对智能小车左右电机转向控制和速度调节。通过控制小车左右电机的转向,可以实现小车上述的四个行为动作。通过LabVIEW前面板控制左右电机的转速,达到对小车行驶速度的调节。LabVIEW前面板如图1所示。    本文的着重点是利用Proteus软件仿真环境,模拟LabVIEW上位机软件控制小车左右轮直流电机的转速和转向,并详细介绍两个软件在PC机中进行零成本联机仿真的全过程。Proteus仿真的实物模型见图2,这个模型的机械结构由MakeBlock铝合金积木搭建而成,而电控部件选用了DFRobot公司的智能车三件套。图1 小车控制LabVIEW前面板图2 直流电机驱动的智能车 一、硬件设计    图2使用到了 DFRobot公司出品的智能车三件套,它有三层电路板层叠而成,底下的板子是Arduino UNO,中间的板子是L298N大电流双路直流电机驱动板(L29

零成本学Arduino单片机之LabVIEW虚拟仪器
发表于:2012-12-06 10:09:08 | 分类:Arduino与Proteus仿真
浏览( ) | 评论( )

      LabVIEW(Laboratory Virtual Instrumentation Engineering Workbench,实验室虚拟仪器工程平台)是由美国国家仪器(NI)公司所开发的图形化程序编译平台,发明者为杰夫·考度斯基(Jeff Kodosky),程序最初于1986年在苹果电脑上发表。LabVIEW早期是为了仪器自动控制所设计,至今转变成为一种逐渐成熟的高级编程语言。  LabVIEW是一种用图标代替文本行创建应用程序的图形化编程语言。传统文本编程语言根据语句和指令的先后顺序决定程序执行顺序,而LabVIEW则采用数据流编程方式,程序框图中节点之间的数据流向决定了VI及函数的执行顺序。VI指虚拟仪器,是LabVIEW的程序模块,类似于C和BASIC的子函数。    LabVIEW提供很多外观与传统仪器(如示波器、万用表)类似的控件,可用来方便地创建用户界面。用户界面在LabVIEW中被称为前面板。使用图标和连线,可以通过编程对前面板上的对象进行控制。这就是图形化源代码,又称G代码。LabVIEW的图形化源代码在

零成本学Arduino单片机之Processing互动媒体
发表于:2012-11-29 10:38:14 | 分类:Arduino与Proteus仿真
浏览( ) | 评论( )

      Processing是一种开源的编程语言和环境,它服务于有创意的设计师和艺术家,这些人希望利用某种程序,来创意静态图像和动态影像,并使创作的作品能与人产生良好的互动。这个软件最初的开发目的是作为一种学习编程软件,能够可视化的方法,教学习者计算机编程基础,现在它已经演化为完成专业工作的工具。    有成千上万的学生,艺术家,设计师,研究人员,和爱好者,用Processing来学习、创意和制作产品。      如果想让在电脑中设计的艺术作品与外部物理世界进行互动,让作品能与人和物产生“对话”,就需要传感器把外部环境的信息,采集到电脑中处理,做到这一点,目前通常的方法是通过Arduino控制器把传感器数据,通过串口通信,读到上位机软件Processing里,然后通过处理,让Processing数位作品的某些特征与传感器数据产生关联,于是物理世界的环境数据发生变化时,也会使虚拟数字世界的作品随之互动,不断幻化出动态语义的奇妙画面。    上一篇文章《零成本学Ard

零成本学Arduino单片机之串行通讯
发表于:2012-11-21 17:01:39 | 分类:Arduino与Proteus仿真
浏览( ) | 评论( )

  一、前言   串口通信(Serial Communications)的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。    进行串行通信,一般应该有两个计算机,两个程序,利用一条串行通信电缆,互相“全双工”的传送信息。   利用 PROTEUS 软件,做串行通信实验会很方便,Proteus仿真可以把一个或者两台计算机的硬件功能仿真出来,除了一台PC机运行仿真软件,不用任何其它硬件投入了,就可以进行RS232协议下的通讯实验。 二、Proteus界面中的虚拟终端与Arduino单片机之间串行通讯的仿真方法     PROTEUS 软件中,含有多种虚拟仪器,其中有一个称为“虚拟终端”设备,这个设备可以和Arduino单片机进行全双工的通信。这个“虚拟终端”设备不需要编写一行程序,就可

零成本学Arduino单片机之1602液晶和PWM灯
发表于:2012-11-07 16:19:47 | 分类:Arduino与Proteus仿真
浏览( ) | 评论( )

    记得早在2008年,我看到哈工大郭天祥同学的《十天攻克单片机》的视频讲座,为他的不断学习,不断追求的进取精神所感染。我从这个视频讲座里学习到的学以致用的思维理念和规范严谨的编程风格,至今还影响着我。视频配套教程也常常在我手边翻阅,书名为《新概念 51单片机C语言教程-入门、提高、开发、拓展全攻略》。  书中第8讲,题为“1602液晶显示原理及应用”,讲述了1602液晶模块的工作原理,模块的控制和数据引脚功能、控制线的时序,缓存RAM地址以及如何用软件指令控制1602液晶硬件运行。不妨看看这段郭天祥同学当年的教学视频,为Arduino单片机控制1602液晶显示,做些知识准备。1602液晶显示原理及应用视频:    现在的时间已经来到了2012年11月了,一种易学好用的Arduino单片机正在风靡全球。所以我把兴趣点从51转到了Arduino,是不是这山望那山高,也不是的,单片机是拿来用的,不是用来学的,Arduino因为更方便“用”,而且会了51,学习Arduino单片机也就是

零成本学Arduino单片机之入门
发表于:2012-10-30 17:02:40 | 分类:Arduino与Proteus仿真
浏览( ) | 评论( )

  图1 Arduino单片机的Proteus仿真 我的Arduino博客:http://www.eefocus.com/zhang700309/blog/一、前言          Arduino是由Massimo Banzi,David Cuartielles,Tom Igoe,Gianluca Martino,David Mellis 和Nicholas Zambetti共同开发的。据说Auduino开发团队的领袖Massimo Banzi 之前是意大利Ivrea 一家高科技设计学校的老师。他的学生们经常抱怨找不到便宜好用的微控制器。2005年冬天,Massimo Banzi 跟David Cuartielles 讨论了这个问题。David Cuartielles 是一个西班牙籍芯片工程师,当时在这所学校做访问学者。两人决定设计自己的电路板,并引入了Banzi 的学生David Mellis 为电路板设计编程语言。两天以后,David Mellis 就写出了程式码。又过了三天,电路板就完工了。这块电路板被命名为Ar

基于Arduino和proteus的直流电机驱动仿真
发表于:2011-11-03 14:48:23 | 分类:Arduino与Proteus仿真
浏览( ) | 评论( )

按下正转按钮,电机正转,正转指示灯亮。按下反转按钮,电机反转,反转指示灯亮。按下停止按钮,电机停。Aduino程序如下:int Foreward_key=2;//正转按钮int Reverse_key=3;//反转按钮int Stop_key=4;//停止按钮int Foreward_led=5;//正转指示灯int Reverse_led=6;//反转指示灯int Stop_led=7;//停止指示灯int pinI1=8;//定义电机正转接口int pinI2=9;//定义电机反转接口int speedpin=11;//定义EA(PWM调速)接口void setup(){  pinMode(Foreward_key,INPUT);  pinMode(Reverse_key,INPUT);  pinMode(Stop_key,INPUT);  pinMode(Foreward_led,OUTPUT);  pinMode(Reverse_led,OUTPUT);  pinMode(Stop_led,OUTPUT);  pinMode(pin

AVR编程语言Arduino也可以用Proteus仿真
发表于:2011-11-03 14:13:38 | 分类:Arduino与Proteus仿真
浏览( ) | 评论( )

     把一个电位器连在Arduino 168 Duemilanove 2009 ATMEGA168P控制器的模拟接口0,再把一个LED连在控制器的数字接口13,当电位器滑动,电压超过2.5V,则LED亮,否则熄灭。 ATMEGA168P控制器的AD转换是10位的转换器,5V对应的数字量为1024,2.5V应该是512,所以单片机一旦得知AD转换后的数字量超过 512时,把数字接口13的LED的变量ledpin为HIGH。 下面是Arduino程序:点击图片,可以放大   按下“三角”图标,同时按下Shift,你就可以看到0018版Arduino编程软件的HEX到哪去了,你看上图编译结果区,我打阴影的部分,可以看到HEX所藏得目录。 把HEX文件放到proteus的ATMEGA168单片机里,按下Proteus中的运行按钮,你可以看到Arduino和proteus结合达到了任务要求,不花一分钱就学习了,被国外机器人爱好者推崇的AVR编程软件。 注意Arduino控制器数字接口和模拟接口