21173浏览
查看: 21173|回复: 25

[教程] Edison上程序开发——决战四驱车

[复制链接]
本帖最后由 孙毅 于 2015-9-30 22:58 编辑

1, 翻箱倒柜的找到封尘依旧的一两小车的框架,4个直流电机,四个轱辘,两个亚克力板,组装如下:
Edison上程序开发——决战四驱车图1Edison上程序开发——决战四驱车图2

相信论坛里好多朋友们也都玩过的,没什么花头。
因为不是按照Edison设计的,所以好不容易才能斜着把Edison固定在上面。

2, 噼里啪啦一顿接线,现在是这个样子:
Edison上程序开发——决战四驱车图3Edison上程序开发——决战四驱车图4


细数下,有如下传感器:
1, 直流电机 x 4
2, LED
3, Button
4, Speaker
5, LCD

然后我们一个一个的讲这些传感器用起来:

3, PWM 输出控制直流电机
  1. #!/usr/bin/python
  2. import mraa
  3. import time
  4. import sys
  5. x1 = mraa.Pwm(3)
  6. x1.period_us(0)
  7. x1.enable(True)
  8. x2 = mraa.Pwm(5)
  9. x2.period_us(0)
  10. x2.enable(True)
  11. x3 = mraa.Pwm(6)
  12. x3.period_us(0)
  13. x3.enable(True)
  14. x4 = mraa.Pwm(9)
  15. x4.period_us(0)
  16. x4.enable(True)
  17. if len(sys.argv) > 1:
  18.     switch = sys.argv[1]
  19. else:
  20.     switch = 'off'
  21. print switch
  22. if switch == 'on':
  23.     x1.write(1)
  24.     x2.write(1)
  25.     x3.write(1)
  26.     x4.write(1)
  27. else:
  28.     x1.write(0)
  29.     x2.write(0)
  30.     x3.write(0)
  31.     x4.write(0)
复制代码

这里的code就不一一解释了,简单说几句吧:
1) Edison默认GPIO 3、5、6、9支持PWM,一共就4个PWM我们都占掉了2)将文件命名为 pwm.py,可以通过传递on/off来使得直流电机工作了:
     ./pwm.py on      关闭使用: ./pwm.py off

4, 使用button控制LED:
  1. import time
  2. import pyupm_grove as grove
  3. # Create the Grove LED object using GPIO pin 2
  4. led = grove.GroveLed(3)
  5. # Create the button object using GPIO pin 0
  6. button = grove.GroveButton(7)
  7. # Read the input and print, waiting one second between readings
  8. while 1:
  9.     print button.name(), ' value is ', button.value()
  10.     time.sleep(1)
  11.     if button.value():
  12.         led.on()
  13.     else:
  14.         led.off()
复制代码
说明:当按下button的时候,LED会点亮,松开的时候,LED灭掉

5, 使用buzzer发出音调:
  1. import time
  2. import pyupm_buzzer as upmBuzzer
  3. # Create the buzzer object using GPIO pin 5
  4. buzzer = upmBuzzer.Buzzer(6)
  5. chords = [upmBuzzer.DO, upmBuzzer.RE, upmBuzzer.MI, upmBuzzer.FA,
  6.           upmBuzzer.SOL, upmBuzzer.LA, upmBuzzer.SI, upmBuzzer.DO,
  7.           upmBuzzer.SI];
  8. # Print sensor name
  9. print buzzer.name()
  10. # Play sound (DO, RE, MI, etc.), pausing for 0.1 seconds between notes
  11. for chord_ind in range (0,7):
  12.     # play each note for one second
  13.     print buzzer.playSound(chords[chord_ind], 1000000)
  14.     time.sleep(0.1)
  15. print "exiting application"
  16. # Delete the buzzer object
  17. del buzzer
复制代码
运行python脚本,buzzer会发出1(dou),2(ruai),3(mi),4(fa),5(sao)

好了基本上就这样吧,作为一个初步的demo,小车的基本功能已经差不多了,后面我们会慢慢的在这辆限量版的纯手工打杂的小车上安装更多的好玩的东东,大家有什么好玩法欢迎留言!
这个时候感觉到3D打印的必要行了。这一堆线挺丑的,一不小心就碰掉哪一个了。



孙毅  初级技匠
 楼主|

发表于 2015-10-9 14:02:03

Juice 发表于 2015-10-9 09:34
亚克力板透明的真好看啊~~~~只是线确实暴露太多了~~哈哈

啊,难得琚大人喜欢哈。。。。恩,线的问题,我也很郁闷,还好不是处女座,不过真挺崩溃的,随便碰一下,线就掉了,然后重新想应该插在哪里。
回复

使用道具 举报

孙毅  初级技匠
 楼主|

发表于 2015-10-1 12:08:22

大连林海 发表于 2015-10-1 09:21
有一个问题 就是小车跑直线的问题能否有问题呢 直流电机问题不是没有的

恩,这个显然解决不了啊。。。。吼吼,等你的好idea啊。
回复

使用道具 举报

hnyzcj  版主

发表于 2015-10-10 13:54:04

孙毅 发表于 2015-10-9 14:02
啊,难得琚大人喜欢哈。。。。恩,线的问题,我也很郁闷,还好不是处女座,不过真挺崩溃的,随便碰一下, ...

INTEL的周边不如DF用的顺手
回复

使用道具 举报

大连林海  初级技神

发表于 2015-10-1 09:21:02

有一个问题 就是小车跑直线的问题能否有问题呢 直流电机问题不是没有的
回复

使用道具 举报

大连林海  初级技神

发表于 2015-10-1 16:44:24

哈哈 到是有一个想法 吼吼 不知道能不能行
回复

使用道具 举报

luna  初级技神

发表于 2015-10-1 22:03:29

放假默默的放教程~
回复

使用道具 举报

besteast  见习技师

发表于 2015-10-3 22:06:03

:victory:踩踩踩
回复

使用道具 举报

孙毅  初级技匠
 楼主|

发表于 2015-10-9 09:09:44

大连林海 发表于 2015-10-1 16:44
哈哈 到是有一个想法 吼吼 不知道能不能行

说说看什么想法啊。。。
回复

使用道具 举报

孙毅  初级技匠
 楼主|

发表于 2015-10-9 09:10:07

luna 发表于 2015-10-1 22:03
放假默默的放教程~

你不也在默默的看教程吗。嘻嘻嘻
回复

使用道具 举报

Juice  高级技师

发表于 2015-10-9 09:34:34

亚克力板透明的真好看啊~~~~只是线确实暴露太多了~~哈哈
回复

使用道具 举报

大连林海  初级技神

发表于 2015-10-9 10:37:51

孙毅 发表于 2015-10-9 09:09
说说看什么想法啊。。。

一个电机控制两个电机转动 做成轴动的 前面可以用一个马达控制转向
回复

使用道具 举报

Chan陈陈陈  初级技师

发表于 2015-10-9 13:02:18

孙毅 发表于 2015-10-1 12:08
恩,这个显然解决不了啊。。。。吼吼,等你的好idea啊。

跑直线的话需要反馈调节转速,不过我还没试过ㄟ( ▔, ▔ )ㄏ
回复

使用道具 举报

孙毅  初级技匠
 楼主|

发表于 2015-10-9 14:00:26

Chan陈陈陈 发表于 2015-10-9 13:02
跑直线的话需要反馈调节转速,不过我还没试过ㄟ( ▔, ▔ )ㄏ

对的,必须得闭环控制。。。。。求教程,吼吼
回复

使用道具 举报

lianuo  初级技师

发表于 2015-10-9 14:04:24

扬声器是直接接到DAC上了么?
回复

使用道具 举报

孙毅  初级技匠
 楼主|

发表于 2015-10-9 14:20:13

lianuo 发表于 2015-10-9 14:04
扬声器是直接接到DAC上了么?

哦,我是不是忘记提这个事情了?!
扬声器需要接在PWM上,对于Edison,也就是pin脚 3,5,6,9
回复

使用道具 举报

Chan陈陈陈  初级技师

发表于 2015-10-10 09:40:01

孙毅 发表于 2015-10-9 14:00
对的,必须得闭环控制。。。。。求教程,吼吼

吼吼,木有 。。 自动控制原理才刚刚开课= ̄ω ̄=
回复

使用道具 举报

孙毅  初级技匠
 楼主|

发表于 2015-10-10 09:55:18

Chan陈陈陈 发表于 2015-10-10 09:40
吼吼,木有 。。 自动控制原理才刚刚开课= ̄ω ̄=

WOW,你还是大学生?!强悍,要是正好有什么课程设计之类的,欢迎分享。
回复

使用道具 举报

Chan陈陈陈  初级技师

发表于 2015-10-10 10:22:35

孙毅 发表于 2015-10-10 09:55
WOW,你还是大学生?!强悍,要是正好有什么课程设计之类的,欢迎分享。 ...

嗯嗯,一定的 嘿嘿:lol
回复

使用道具 举报

孙毅  初级技匠
 楼主|

发表于 2015-10-11 14:08:10

hnyzcj 发表于 2015-10-10 13:54
INTEL的周边不如DF用的顺手

关键是DF的周末也没见你玩啊。。。。
回复

使用道具 举报

hnyzcj  版主

发表于 2015-10-11 14:21:54

孙毅 发表于 2015-10-11 14:08
关键是DF的周末也没见你玩啊。。。。

额额额
回复

使用道具 举报

12下一页
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail