孙毅 发表于 2015-9-30 22:54:04

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

本帖最后由 孙毅 于 2015-9-30 22:58 编辑

1, 翻箱倒柜的找到封尘依旧的一两小车的框架,4个直流电机,四个轱辘,两个亚克力板,组装如下:


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

2, 噼里啪啦一顿接线,现在是这个样子:



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

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

3, PWM 输出控制直流电机
#!/usr/bin/python
import mraa
import time
import sys

x1 = mraa.Pwm(3)
x1.period_us(0)
x1.enable(True)

x2 = mraa.Pwm(5)
x2.period_us(0)
x2.enable(True)

x3 = mraa.Pwm(6)
x3.period_us(0)
x3.enable(True)

x4 = mraa.Pwm(9)
x4.period_us(0)
x4.enable(True)

if len(sys.argv) > 1:
    switch = sys.argv
else:
    switch = 'off'

print switch

if switch == 'on':
    x1.write(1)
    x2.write(1)
    x3.write(1)
    x4.write(1)
else:
    x1.write(0)
    x2.write(0)
    x3.write(0)
    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:
import time
import pyupm_grove as grove

# Create the Grove LED object using GPIO pin 2
led = grove.GroveLed(3)

# Create the button object using GPIO pin 0
button = grove.GroveButton(7)

# Read the input and print, waiting one second between readings
while 1:
    print button.name(), ' value is ', button.value()
    time.sleep(1)

    if button.value():
      led.on()
    else:
      led.off()
说明:当按下button的时候,LED会点亮,松开的时候,LED灭掉

5, 使用buzzer发出音调:
import time
import pyupm_buzzer as upmBuzzer

# Create the buzzer object using GPIO pin 5
buzzer = upmBuzzer.Buzzer(6)

chords = [upmBuzzer.DO, upmBuzzer.RE, upmBuzzer.MI, upmBuzzer.FA,
          upmBuzzer.SOL, upmBuzzer.LA, upmBuzzer.SI, upmBuzzer.DO,
          upmBuzzer.SI];

# Print sensor name
print buzzer.name()

# Play sound (DO, RE, MI, etc.), pausing for 0.1 seconds between notes
for chord_ind in range (0,7):
    # play each note for one second
    print buzzer.playSound(chords, 1000000)
    time.sleep(0.1)

print "exiting application"

# Delete the buzzer object
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的周末也没见你玩啊。。。。

额额额
页: [1] 2
查看完整版本: Edison上程序开发——决战四驱车