如何用processing画图作品机器人

作业四:用processing绘制机器人
1 制作人:应函迅
2 使用软件:processing
3 制作要求:
(用processing画出此图)
6.代码解释
size(); &这是画布的大小
fill(150); & &
& 填充灰色
ellipse(575,650,120,120); &
&画的机器人地下的园
fill(150); & 填充灰色
rect(500,460,150,10); & &
& 画的身体里的小长方形&
line(580,500,580,300); & &
左边第一根线
line(600,500,600,300); & &
line(620,500,620,300); & &
左边第三根线
fill(0); & &填充黑色
rect(500,450,150,200); &机器人的身体 黑色矩形
fill(150);
rect(500,460,150,10); & &
灰色的矩形
ellipse(600,230,150,150); &
&黑色的大圆
fill(255);
ellipse(620,210,45,45); & &
&白色的圆,机器人的眼睛
ellipse(620,210,8,8); & &
白色圆里面的小黑圆&
fill(150);
ellipse(580,210,16,16); & &
靠白圆左边的灰色小圆
fill(150);
ellipse(630,180,12,12); &
&靠白球右上角的灰色小圆
fill(150);
ellipse(645,235,8,8); & &
& 靠白球右下角的灰色小圆
line(660,260,700,270); &
&黑色大球右下角的直线
line(620,170,630,90); & &
黑色大球上边的直线
line(570,180,550,160); &
&黑色大球左边的直线
(因为制作中间忘记了截图所以直接就出现了效果图,再制做过程中因为代码上下位置没放好,结果图形填充颜色后没有遮盖住,调整了顺序后才可以的
,然后刚开始不知道fill应该放在图形代码上面 。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。扫我~扫我~
获取更多资讯
当前位置:& & &  面对到底学习哪种编程语言更好的问题,我的观点是自己感觉简单、好用就足够了。因为不论哪种计算机语言,起到的也不过是一种人机对话的作用,方便程序员编写程序。真正让机器活起来的角色是算法(数学)。本文将通过一台极客风格绘图机的设计、制作过程,向你展示隐藏在程序背后的算法的巨大力量。硬件  从结构上看,大多数绘图机不管是滚筒式还是平台式,都是建立在直角坐标系的基础上。这种结构对业余玩家来说,最大的问题就是造价过高,因为你必然会用到丝杆、导轨、滑台或同步轮、同步带这类的零件。很多时候电机本身并不贵,但是配上一根精度说得过去的丝杆,成本就会翻上数倍,从学习、实验的角度看就得不偿失了。有没有什么好的办法造一台既简单又炫酷的绘图机呢?   对极客说,每个问题都是一剂激发创意的催化剂。下面就请读者跟着笔者扮演一回极客,试试用极客的思路解决问题, 看看能不能用常见的材料制作一台绘图机。 既然成品丝杆电机比较贵,就试试别的驱动器吧。模型和机器人上常用的舵机就是 一个择,但是舵机有一个问题,就是它输出的是角位移,这样你就无法照搬常规绘图机的结构和控制思路。这个问题也不难解决,可以参考工业机器人的手臂式结构。既然工厂里的机器臂可以做到能穿针引线的精度,那么用几个舵机驱动手臂绘图也一定可行。  为了简化制作,我把手臂设计成了 3 个自由度的,1个舵机控制笔尖的落,另外 2 个舵机驱动肩关节和肘关节,控制器为 Arduino。因为手头正好有一套奥松机器人的百变之星创意拼装套件,绘图机结构部分的制作变得轻松了许多。  手臂的主要材料是 3 套配支架和 U 形框的标准舵机,如图 1 所示。此外还有一些 钣金件和紧固件。图 1 单个关节的结构件和组装工具  为了便于建模和计算,我制作的是一 条仿生右臂,如图 2 所示。图 2 机器右臂俯视图(假设机器人在你对面)  结构上,大臂和小臂的长度相等,完成后的手臂从肩关节到肘关节、从肘关节到笔尖的长度均为115mm,如图 3所示。图 3 肩关节与肘关节的实测距离为 115mm  肘关节到笔尖的距离可以微调。落笔舵机在90°时,笔尖与纸面垂直,减小角度可以使笔尖向外倾斜,增加距离,反之则缩短距离。我设置的是85°,这样笔尖稍微向外倾斜,距离正好为115mm,如图4 所示。如果想自己DIY,一个要注意的问题是给舵机加上虚轴,从结构上减小抖舵造成的影响。还可以在关键部位加上一块泡沫,构成减振缓冲垫,减小因手臂摆动幅度过大而产生的晃动,我在机器人的肘部就加了一块(见图 4)。你也可以发挥想象力,根据手头现有的材料设计出更好的结构。另一个要注意的是舵机的供电问题。 标准舵机消耗的电流比较大,用Arduino 上自带的稳压芯片给2 个舵机供电是可以的,3 个就有点勉强了,最好给舵机单独供电。图 4 调节舵机落笔角度,校正肘关节到笔尖的距离。肘部下面用双面胶粘了一块泡沫减振软件  系统控制思路非常简单,让手臂随着鼠标的动作实现定位,用鼠标的单击控制笔尖的起落进行绘制。绘图机的软件分为 Arduino 和 Processing 两个部分。我使用的软件版本为Arduino-1.6.4 和 Processing-2.2.1。这个项目主要研究的是算法和编程,为了方便初学者参考,我会把各个步骤尽量细化并加以说明。  Arduino 部分非常简单,只要连接好USB 电缆,在IDE 中选择对应的板卡和端口, 把示例中的Firmata\ServoFirmata 上传到控制板就可以了。这个操作相当于把 Arduino 刷成了一个舵机控制器,不需要给Arduino 编写任何程序。  Firmata 是 Arduino 平台下的一个PC 与单片机通信的协议,支持多款单片机和上位机,如Processing、Pure Data、Linux C++。Arduino IDE 中已经包含了这个协议, 但是我建议把它替换成最新的。从 http:// firmata.org/wiki/Download 可以下载到最新的压缩包 Firmata_v2.3.6.zip, 解压后替换掉 Arduino IDE根目录下的libraries\ Firmata。所有运算都在Processing 上实现, 程序跟踪鼠标的移动和单击操作,生成实时动作组,最后通过Firmata 协议控制连接在 Arduino 上的3个舵机驱动手臂运转。 首先要给Processing安装一个Arduino库, 这样它就可以利用 Firmata 协议与刚完成的 Arduino舵机控制器通信了。 库的下载地址见 http://playground.arduino.cc/Interfacing/Processing, 把 processing2-arduino.zip 解压后复制到Processing 根目录下的modes\java\libraries。因为Processing 是基于Java开发的,你可以发现这个库的核心是一个名为arduino的jar包。图 5 绘图机数学模型示意图 部分为绘图机  接下来要在Processing 里给绘图机建 立一个数学模型,如图 5 所示。  Processing 绘制的坐标原点位于窗口左上角,即图5 中的A 点,这是一个直角坐标系,x 轴向右为正,y 轴向下为正,1 像素对应现实世界中的1mm。图 5中蓝色的两段手臂,B点为肩部舵机,C 点为肘部舵机,D 点为笔尖落点。为什么不把肩部舵机放置在 A 点原因很简单,我用的舵机是逆时针旋转的,从左转到右,对应着 0° ~180°,如果放在 A 点, 0°~90°的部分就超出了窗口定义的范围。 所以先要作一个坐标平移,把基准点从A 平移到 B,x 坐标取窗口宽度的一半,y 坐标不变,这样舵机的运动范围就完全包含在窗口以内了。不过这样一来鼠标坐标也跟着向右平移了1/2 个窗口宽度,需要进行修正, 最后得出笔尖落点 D 的坐标为 (mouseX- width/2,mouseY)。  从图 5 中可以看出,用手臂定位 D 点只需要确定两个关节旋转的角度就可以了。 角b为肩部舵机角度,角c为肘部舵机角度。 下面转到极坐标系,以B 为极点,Bx 为极轴, 可以用 dist() 函数计算出 D 点的极径,用反正弦函数计算出极角d,用反余弦函数计算出角a。每段手臂的长度115mm 是已知的。 有了这些数据,就可以在屏幕上画出手臂的仿真图形。最后,把弧度转换为角度,调用 Arduino 库的 servoWrite() 函数把角度写入对应的舵机就可以了。 别忘了还有一个控制笔尖起落的舵机,  这个舵机的控制是用Processing 对鼠标左键单击的响应来实现的。注意下面程序中涉及图形绘制部分采用的是弧度制,硬件控制部分采用的是角度制,不要弄混。最后发送到肩部舵机的角度 b=180-a-d,肘部舵机的角c 是手臂围成的大三角形的外角,因为两段手臂长度相等,可以得出 c=2a。  到这里,一些读者可能会觉得要实现这么多功能,程序编写起来会有一点难度。 不用担心,Processing 是一种基于感官的程序语言,强调的是实用和互动。举个例子,我想在屏幕上画个圆,只要敲一行代码,调用ellipse() 函数,给出几个参数就可以了。而换成传统的程序设计语言,可能要学习半个学期,写数十行代码才能实现。 Arduino 是在Processing 的基础上开发的, 因为血缘的关系,你会发现它的编程方式和 Arduino 很相似,只是 Arduino 更偏向 C, Processing 更偏向 Java。
未完待续~  (文章来源:无线电杂志-臧海波)  点击阅读原文 查看更多奥松机器人信息!创造源创客,创意自奥松!奥松机器人官网:微信号:奥松机器人QQ群:(讨论,解惑)新浪微博:@奥松机器人基地回顾更多精彩:点击右上角查看官方账号,关注并查看历史消息长按指纹识别二维码关注奥松机器人(alsrobotbase) 
 文章为作者独立观点,不代表大不六文章网立场
alsrobotbase每周推送最新机器人行业资讯,开源硬件、互动媒体、技术博文、经验分享,请持续关注奥松机器人精彩不断!热门文章最新文章alsrobotbase每周推送最新机器人行业资讯,开源硬件、互动媒体、技术博文、经验分享,请持续关注奥松机器人精彩不断!&&&&违法和不良信息举报电话:183-
举报邮箱:
Copyright(C)2016 大不六文章网
京公网安备78

我要回帖

更多关于 processing画图作品 的文章

 

随机推荐