这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » 【i646593001】Raspberry Pi DIY进程帖

共33条 2/4 1 2 3 4 跳转至
高工
2014-09-05 15:55:27     打赏
11楼

加油,呵呵,


助工
2014-09-05 22:36:44     打赏
12楼

配置小度wifi上网


以前没用过Linux下无线网卡,不懂配置,还以为编译的驱动有问题,后来才发现是网络配置错误。


查看路由器无线网络的安全模式,即无线数据的加密类型,一般为WPA和WEP,各分几个子类,这里不介绍了,据说WPA比WEP安全性高。

我的为WPA-PSK模式,即需要口令(或者叫密码)的WPA模式。


使用WPA,需要安装wpasupplicant,

#apt-get install wpasupplicant

话说Pi已经安装了这个程序。

1、查看无线网卡的名称


在这里我的无线网卡名称为 ra0。(因为网上教程里无线网卡名都是wlan0,我以为我的也是,就一直没设置对)


2、配置文件

到/etc/wpa_supplicant/wpa_supplicant.conf文件中添加网络配置

3、配置文件

修改完wpa_supplicant.conf后,修改/etc/network/interfaces文件配置。

要配置静态IP,如下:

需要DHCP,如下:


注意上面的wlan0为你的无线网卡的名称,我的是ra0,则需要将ra0替换掉上面的wlan0 。

4、更新网络配置文件

使用命令

#ifup ra0

或者

# ifdown ra0 && ifup ra0


通过上面的步骤,在查看网络配置

#ifconfig

应该能看到已经连接到路由上了。


若要自动连接路由,将interfaces文件中的“#”去掉即可。



助工
2014-09-06 01:44:00     打赏
13楼

修复小bug


每次接入Pi的电源,在输入用户名和口令前,总会出现一组信息:

"FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck."


会不会很不爽?

查找解决方法,成功解决了这条信息

下面是操作步骤:

# git clone http://daniel-baumann.ch/git/software/dosfstools.git dosfstools

# cd dosfstools

# make
cc -O2 -fomit-frame-pointer -D_GNU_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wall -Wextra -Wno-sign-compare -Wno-missing-field-initializers -Wmissing-prototypes -Wstrict-prototypes -g   -c -o fatlabel.o src/fatlabel.c
.
.
.
cc   mkfs.fat.o   -o mkfs.fat

# umount /boot
# ./fsck.fat -V /dev/mmcblk0p1
fsck.fat 3.0.24 (2013-11-23)
0x25: Dirty bit is set. Fs was not properly unmounted and some data may be corrupt.
1) Remove dirty bit
2) No action
? 1
Starting check/repair pass.
Starting verification pass.
Leaving filesystem unchanged.
/dev/mmcblk0p1: 14 files, 2383/7161 clusters

#./fsck.fat -a /dev/mmcblk0p1
#mount /boot

 

重启Pi,bug信息是不是没了呢,不管你还有没有,反正我的没有了


助工
2014-09-06 11:40:52     打赏
14楼

超声测距实验


翻出以前玩过的超声模块,果断接入到Pi上看看效果:


GPIO接口见上图,3pin的是UART,4pin的是超声模块了。

参考超声模块给的例程,自己修改成python语言,运行,成功跑起来了。


附代码:

import RPi.GPIO as GPIO
import time

GPIO_SIG = 11
GPIO_ECHO = 13

def setup():
  GPIO.setmode(GPIO.BOARD)
  GPIO.setup(GPIO_SIG,GPIO.OUT)
  GPIO.setup(GPIO_ECHO,GPIO.IN)
  GPIO.output(GPIO_SIG,GPIO.LOW)
  
def getDistance():
  GPIO.output(GPIO_SIG,GPIO.HIGH)
  time.sleep(0.2)
  GPIO.output(GPIO_SIG,GPIO.LOW)
  
  while GPIO.input(GPIO_ECHO) == 0:
    start = time.time()
  while GPIO.input(GPIO_ECHO) == 1:
    stop = time.time()
  timeslot = stop - start
  distance = timeslot * 34300
  distance = distance / 2
  print 'Distance: %.2f cm' % distance
  
def main():
  setup()
  while True:
    getDistance()
	time.sleep(1)

  GPIO.cleanup()
  
if __name__ == '__main__':
  main()

 



菜鸟
2014-09-08 20:20:05     打赏
15楼
看来大家都在抱怨韵达快递啊!

助工
2014-09-09 21:23:29     打赏
16楼

红外遥控


翻出以前用过的红外接收模块,网上有在Pi上使用的历程,所以也折腾一下。(参见http://www.freemindworld.com/blog/2013/130316_raspberry_pi_with_remote_control.shtml

1、接口连线


网上的例程都是正极接3.3v,我的小模块加了一个电阻,开始接3.3v时,接收信号不稳定,基本上没反应,就快准备收起来时才记得这是玩arduino时用的,该加5v电源。接到5v时,成功接收信号。

2、系统软件安装
    lirc_rpi项目为Linux内核提供了支持GPIO口的红外接收管的驱动,在最新的Raspbian系统中应该已经包含。
然后需要安装用户态的服务进程:
$sudo apt-get install lirc

加载lirc_rpi内核模块:
$sudo modprobe lirc_rpi
默认使用GPIO18作为输入信号端口,将红外接收的输出端接到该接口即可。

3、测试红外接收是否正常
$sudo mode2 -d /dev/lirc0
如果按遥控器上的键,屏幕上能显示出一串pluse和space值的话,多半就是正常了。如下图:

4、配置下/etc/lirc/hardware.conf:

LIRCD_ARGS="--uinput"
...
DRIVER="default"
...
DEVICE="/dev/lirc0"

5、让lirc学习一下你遥控器上的按键

    在我的例子中,请至少学习5个按键,分别做为上(up)、下(down)、左(left)、右(right)、选择(sel):
sudo /etc/init.d/lirc stop
#学习按键
irrecord -n -d /dev/lirc0 ~/lircd.conf

输入命令后如下图


可以看到开始需要输入大量的信号,Pi对信号进行分析解码。然后输入一个按键名,再输入信号,依次进行,知道案件输入完成。最后将信号信息保存到lircd.conf中。

*********************先做到这里了,后面的没做***********************

配置完后,可以用irw命令测试遥控器是否工作正常。
配置~/.lircrc.conf文件,把按键与需要触发的行为进行关联:


更详细资料,参见:http://forum.eepw.com.cn/thread/260581/2#18


院士
2014-09-10 13:33:07     打赏
17楼

到处有我喜欢的繁体字


院士
2014-09-11 22:14:20     打赏
18楼

进程真棒,内容丰富啊~~

可见楼主一定查阅了不少的资料,才有这样的成果


助工
2014-09-11 23:47:54     打赏
19楼
重複勞動而已,沒有什麼新內容。

助工
2014-09-12 01:06:04     打赏
20楼

MPU6050測試

測試Pi的I2C接口,找外設,看到了手中的MPU6050模組,正是I2C接口的,所以就用它了,順便學習下python語言。MPU6050為六軸運動傳感器,含3軸加速度,3軸角速度(陀螺儀),是平衡車、四軸飛行器等設備中經常用到的模組。

1、接線

接線?很簡單,I2C就兩根線,外設的SDA接Pi的SDA口,外設的SCL接Pi的SCL口,VCC和GND就接到Pi上的VCC和GND了,Pi上的接口在哪裡?在下面了^-^


2、配置I2C內核模組

Pi上的I2C內核模組是默認關閉的,怎麼打開呢?

$sudo raspi-config

打開配置命令,選擇Advanced Options,第六項就是使能I2C端口的,來張圖吧:


進去之後選擇Yes就可以了。

還有種方法,和上面的操作功能是一樣的,直接修改文件:

$sudo nano /etc/modprobe.d/raspi-blacklist.conf


將I2C*的黑名單加個#註釋掉即可。其實在raspi-config裡的操作就是對這個黑名單做修改。

3、加入模塊到啟動項

儘管很多資料就是做了前面兩步,但還沒有結束,

$sudo nano /etc/modules

添加一行“i2c-dev",如圖


該文件為開機啟動時需要載入的內核模組。

4、安裝python-smbus

$sudo apt-get install python-smbus
$sudo apt-get install i2c-tools
好像記得安裝第一項會自動安裝第二項。

5、測試接口

重啟Pi,以載入I2C模組。

$sudo i2cdetect -y 1
該命令檢測I2C 1 上設備的地址。

結果如下:


0x68正是MPU6050的地址。

使用i2c-tools中的命令i2cdump -y 1 0x68 即可看到MPU6050 中的所有数据。

5、编程读数

使用python编程,配置mpu6050,即可使用该外设获取数据了。

贴自己写的代码,配置信息就不解释了:


来看看结果:


小模块基本上放平了,看到加速度的读数(带符号数),x、y轴的读数为一个很小的负数,z轴的读数在0x3e00附近,配置的最大量程为4G(-2G~2G),则z轴的加速度为0x3e/0x80 = 0.96875g,即约0.97个标准重力加速度



共33条 2/4 1 2 3 4 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]