用Raspberry Pi制作简单的轮盘游戏机

浙江大学嵌入式系统课程

之前在Raspberry Pi上做了许多好玩的事情,但与物理计算却是一点关系也没有。所以这次我们来尝试用RPi做一个简单的轮盘游戏机。因为材料有限,“轮盘”将使用一个2位8段数码管模拟。

材料准备:

  • Raspberry Pi
  • 面包板一块
  • 2位8段数码管一个
  • 按钮2个
  • 1K~10KΩ电阻2个
  • 面包线+杜邦线若干

在RPi上安装wiringPi

使用串口或SSH连接RPi,输入以下命令安装wiringPi。

1
2
3
4
$ cd /tmp/
$ git clone git://git.drogon.net/wiringPi
$ cd wiringPi
$ sudo ./build

安装完成后,你可以使用命令gpio -v测试wiringPi是否已经正确安装。

Read More

Raspberry Pi上μC/OS II的移植

下载μCOS II for Raspberry Pi源码,修改makefile文件

  根据自己使用的交叉编译工具链,修改源码根目录下的makefile文件,主要修改的地方有如下两处:

1
2
3
ARMGNU ?= arm-linux-gnueabi
INCLUDEPATH ?= "./h"

检查源码错误

  不知道助教是不是有意“增加”实验难度,这次提供的源码中存在不少小错误,比如makefile文件的第59行的ucos_bcm2835.elf最后多了一个“.”、没有注意文件名大小写(这个与操作系统有关)等。这步可以通过执行make命令找出错误的地方,很快就能解决。

Read More

用于Raspberry Pi的简易bootloader

浙江大学嵌入式系统课程

这是一次痛并快乐着的实验。

以下引用实验要求:

David Welch的 GitHubbootloader05给出了一个非常简单的RPi bootloader,他的代码链接在内存的0x00020000位置,一直在监听串口是否有XMODEM协议的文件下载,如果有就开始接收数据,并复制到0x00008000位置,传输完成后跳转到 0x00008000去执行。

TA写了一个Python脚本,按照下面的命令调用脚本可以下载并执行用户程序python xmodem-loader.py -p com3 -b 115200 output.bin

你的任务是修改bootloader和python脚本实现如下功能:

调用命令python xmodem-loader.py -p com3 -b 115200启动脚本并且与板卡建立串口连接,之后可以发送下面的命令。

    load *.bin 下载程序*.bin
    go 执行已下载的程序
    peek addr 以一个字为单位读取内存中addr位置的数据(addr是4字节对齐,十六进行的形式,长度为8,例如 0x00008000),并以十六进制的形式输出
    poke addr data 以一个字为单位修改内存中addr位置的数据为data(addr是4字节对齐,十六进行的形式,长 度为8data也是十六进行的形式,长度为8)
    verify *.bin 验证已下载的程序和*.bin是否完全相同。

Read More

Octopress搭建小记

偶然看到了Octopress的介绍,我便被它惊人的载入速度和独特的离线写作模式吸引了。虽然之前的Wordpress使用的也挺不错的,但细想之下其实我还真用不到那么多功能,顿时让我有了把博客迁移到Octopress上的冲动。

网络上关于Octopress的部署教程已经有很多了,一种不错的方案是使用Github Pages服务。不过考虑到数据的安全性(比如_config.yml、一些第三方服务的API Key等),我决定同时使用Bitbucket和Github,即使用Bitbucket的私有Repo管理source,使用Github管理生成的页面。

Ruby环境的搭建以及Octopress的安装方法可以在Octopress的文档中找到,这里主要记录部署过程(Ubuntu环境)。

Octopress Documentation

Read More

给RaspberryPi增加一个系统调用

浙江大学嵌入式系统课程

安装交叉编译工具,并设置NAS

1
2
3
4
sudo apt-get install gcc-arm-linux-gnueabi
cd ~
mkdir pi
sudo mount 192.168.0.4:/home/pi /home/neo/pi

详情见搭建RaspberryPi的交叉编译环境

下载Raspberry Pi的源码

1
2
3
4
5
6
# PC
cd ~/pi
mkdir kernel
cd kernel
git clone https://github.com/raspberrypi/linux.git
git clone https://github.com/raspberrypi/firmware.git

因为网络原因这一步耗时较长,需要耐心等待。也可以直接在github上下载zip压缩包自行解压,不过无论是使用RPi解压或是通过NAS解压速度都不快,可以考虑取下SD卡在PC上直接解压。

Read More