# RaspberryPiMouse
This repository has the source code and kernel objects
for the Raspberry Pi Mouse.
## Installation
Run the installation script ([`./utils/build_install.bash`](https://github.com/rt-net/RaspberryPiMouse/blob/master/utils/build_install.bash)).
### for Raspbian
```sh
$ sudo apt install raspberrypi-kernel-headers build-essential
$ ./build_install.bash
```
### for Ubuntu
```sh
$ cd 项目/utils
$ sudo apt install linux-headers-$(uname -r) build-essential
$ ./build_install.bash
```
### Manual installation
```sh
$ cd 项目/src/drivers
$ make
$ sudo insmod rtmouse.ko
```
## Notes for the installation
### for Raspbian
Enable SPI and I2C functions via `raspi-config` command.
以下の設定を確認ください。
`raspi-config` コマンドで設定します。
* SPI機能を「入」にする。
* I2C機能を「入」にする。
2017年1月現在、以下の設定は不要です。
rtmouseをインストールして不具合が出た場合のみ以下の設定を追加で行ってください。
* Device Tree機能を「切」にする。
### for Raspberry Pi 4
Edit [`rtmouse.c`](https://github.com/rt-net/RaspberryPiMouse/blob/dd0343449951a99b067e24aef3c03ae5ed9ab936/src/drivers/rtmouse.c#L54) to change the defined value `RASPBERRYPI` from '2' to '4'.
Raspberry Pi 4ではCPUのレジスタがそれまでのRaspberry Piとは異なります([issues#21](https://github.com/rt-net/RaspberryPiMouse/issues/21))。
Raspberry Pi 4で本ドライバを使用する際には`rtmouse.c`の以下の行(2020年4月13日現在の最新版のv2.1.0では[54行目](https://github.com/rt-net/RaspberryPiMouse/blob/dd0343449951a99b067e24aef3c03ae5ed9ab936/src/drivers/rtmouse.c#L54))を`RASPBERRYPI 4`に書き換えてビルドする必要があります。
※[`./utils/build_install.bash`](./utils/build_install.bash)を実行すると、Raspberry Piのモデルに合わせて[`rtmouse.c`](./src/drivers/rtmouse.c)が[自動で書き換わります](https://github.com/rt-net/RaspberryPiMouse/blob/a9af4fa2b2a8e34c0f93a6ce5cf88ebd50ff39c2/utils/build_install.raspi4ubuntu.bash#L13-L14)。
```c
// define the Raspberry Pi version here
// Raspberry Pi 1 B/A/B+/A+: 1
// Raspberry Pi 2 B : 2
// Raspberry Pi 3 B/A+/B+ : 2
// Raspberry Pi 4 B : 4
#define RASPBERRYPI 2
```
### パルスカウンタについて
パルスカウンタは値の読み取りにI2Cを使用しています。仕様上は400kHzまでbaudrateを上げることができます(※1)。
I2Cのbaudrateを上げると通信に失敗する場合がある([issues#13](https://github.com/rt-net/RaspberryPiMouse/issues/13))ので、基本的にはI2Cのbaudrateはデフォルト値(※2)から変更して62.5kHzに固定してください。
According to
[issues#13](https://github.com/rt-net/RaspberryPiMouse/issues/13),
it may be necessary to set the I2C baudrate lower than the default value.
Add a following new line in `/boot/firmware/config.txt` to change the i2c_baudrate to 62.5 kHz.
`/boot/firmware/config.txt`に以下の1行を追加することでI2Cのbaudrateを62.5kHzに固定することができます。
```
dtparam=i2c_baudrate=62500
```
※1 Raspberry Pi 4 Model B(Ubuntu 18.04とUbuntu 20.04)を搭載して400kHzで通信できることを確認しています。
※2 現在設定されているI2Cのbaudrateは以下のコマンドを実行することで確認できます。
```
$ printf "%d\n" 0x$(xxd -ps /sys/class/i2c-adapter/i2c-1/of_node/clock-frequency)
```
## Device files
For example code of device files, please refer to [SampleProgram](./SampleProgram/README.md).
デバイスファイルの使用例は[サンプルプログラム](./SampleProgram/README.md)を参考にしてください。
### Light sensor x4 (Input)
Read `/dev/rtlightsensor0` to get proximity (0:far ~ 4095:close) of objects detected by light sensors.
`/dev/rtlightsensor0`を読み取り、光センサで検出された物体の近接度 (0:遠い ~ 4095:近い)を取得します。
```sh
# cat /dev/rtlightsensor0
# Return value: [front right] [right] [left] [front left]
$ cat /dev/rtlightsensor0
9 2 13 3
```
### Switch x3 (Input)
Read `/dev/rtswitch0` ~ `/dev/rtswitch2` to get the switches on/off state.
`/dev/rtswitch0` ~ `/dev/rtswitch2` を読み取りスイッチのON/OFF状態を取得します。
```sh
# cat /dev/rtswitch[0,1]
# Return value: 1(Open), 0(Pressed)
$ cat /dev/rtswitch0
```
### Buzzer (Output)
Write 0 ~ 20000 to `/dev/rtbuzzer0` to beep the buzzer.
`/dev/rtbuzzer0` に0 ~ 20000を書き込みブザーを鳴らします。
```sh
# echo 0 ~ 20000(Hz) > /dev/rtbuzzer0
$ echo 440 > /dev/rtbuzzer0
$ echo 0 > /dev/rtbuzzer0
```
### LED x4 (Output)
Write 1/0 to `/dev/rtled0` ~ `/dev/rtled3` to turn on/off the LEDs.
`/dev/rtled0` ~ `/dev/rtled3` に1/0を書き込みLEDを点灯/消灯します。
```sh
# echo 0(OFF) or 1(ON) > /dev/rtled[0,1,2,3]
$ echo 1 > /dev/rtled0
$ echo 0 > /dev/rtled1
```
### Motor enable (Output)
Write 1/0 to `/dev/rtmotoren0` to enable/disable motors control.
`/dev/rtmotoren0` に 1/0 を書き込みモータ操作を有効/無効にします。
```sh
# echo 0(disable) or 1(enable) > /dev/rtmotoren0
$ echo 1 > /dev/rtmotoren0
```
### PWM frequency for left/right motor driver (Output)
Write 0 ~ ±10000 to `/dev/rtmotor_raw_l0` or `/dev/rtmotor_raw_r0` to set PWM frequency for motor drivers.
※ 0 ~ ±4 Hz will be reset to 0 Hz.
`/dev/rtmotor_raw_l0` または `/dev/rtmotor_raw_r0` に 0 ~ ±10000 を書き込み、モータドライバへのPWM周波数を設定します。
※ 0 ~ ±4 Hzは0Hzへリセットされます
```sh
# echo 0 ~ ±10000(Hz) > /dev/rtmotor_raw_[l0, r0]
$ echo 1 > /dev/rtmotoren0
$ echo 400 > /dev/rtmotor_raw_l0
```
### PWM frequencies and drive duration (Output)
Write left and right PWM frequencies and drive duration to `/dev/rtmotor0` to drive both motors.
`/dev/rtmotor0`に左右のPWM周波数と動作時間を書き込み、左右のモータを回します。
```sh
# echo [left_freq Hz] [right_freq Hz] [duration ms] > /dev/rtmotor0
$ echo 1 > /dev/rtmotoren0
$ echo 400 800 1000 > /dev/rtmotor0
```
### Pulse counter x2 (Input/Output)
Read `/dev/rtcounter_*` to get pulse counts of PWM for motor drivers or write values to reset counts.
`/dev/rtcounter_*`を読み取りモータドライバへのPWMパルス数を取得します。また、値を書き込みカウントをリセットします。
- unsigned counters : `/dev/rtcounter_l0`, `/dev/rtcounter_r0`
- signed counters : `/dev/rtcounter_l1`, `/dev/rtcounter_r1`
```sh
# cat /dev/rtcounter_[l0, r0]
# Return value: 0 ~ 65565 (counts of PWM pulse)
# cat /dev/rtcounter_[l1, r1]
# Return value: -32767 ~ 32767 (counts of PWM pulse)
$ cat /dev/rtcounter_l0
1104
$ echo 0 > /dev/rtcounter_l0
$ cat /dev/rtcounter_l0
0
```
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
嵌入式-RaspberryPi树莓派鼠标设备驱动程序实现-项目源码-优质项目分享.zip (108个子文件)
config-5.10.11-v7+ 183KB
config-5.15.61-v7l+ 208KB
config-5.15.76-v7l+ 208KB
config-5.4.83-v7+ 173KB
build_install.bash 956B
build_install_header_from_apt_raspi4.bash 552B
build_install_header_from_source_raspi4.bash 536B
build_install_header_from_apt_raspi2.bash 454B
build_install.ubuntu14.bash 454B
build_install.raspbian.bash 438B
build_install_header_from_source_raspi2.bash 438B
print_env.bash 248B
rtmouse.c 59KB
step6.c 3KB
step3.c 2KB
step2.c 2KB
step4.c 2KB
step1.c 1KB
step5.c 1001B
.clang-format 141B
.clang-format 36B
Makefile.crosscompile 489B
Makefile.header_from_apt 477B
Makefile.header_from_source 268B
rtmouse.ko 33KB
rtmouse.ko 33KB
rtmouse.ko 33KB
rtmouse.ko 32KB
rtmouse.ko 32KB
rtmouse.ko 30KB
rtmouse.ko 29KB
rtmouse.ko 26KB
rtmouse.ko 24KB
rtmouse.ko 23KB
rtmouse.ko 23KB
rtmouse.ko 23KB
rtmouse.ko 23KB
rtmouse.ko 23KB
rtmouse.ko 23KB
rtmouse.ko 23KB
rtmouse.ko 23KB
rtmouse.ko 23KB
rtmouse.ko 23KB
rtmouse.ko 23KB
rtmouse.ko 23KB
rtmouse.ko 23KB
rtmouse.ko 23KB
rtmouse.ko 23KB
rtmouse.ko 23KB
rtmouse.ko 23KB
rtmouse.ko 23KB
rtmouse.ko 23KB
rtmouse.ko 23KB
rtmouse.ko 23KB
rtmouse.ko 23KB
rtmouse.ko 23KB
rtmouse.ko 23KB
rtmouse.ko 23KB
rtmouse.ko 23KB
rtmouse.ko 23KB
rtmouse.ko 23KB
rtmouse.ko 23KB
rtmouse.ko 23KB
rtmouse.ko 23KB
rtmouse.ko 23KB
rtmouse.ko 23KB
rtmouse.ko 23KB
rtmouse.ko 23KB
rtmouse.ko 23KB
rtmouse.ko 23KB
rtmouse.ko 23KB
rtmouse.ko 23KB
rtmouse.ko 23KB
rtmouse.ko 23KB
rtmouse.ko 23KB
rtmouse.ko 23KB
rtmouse.ko 21KB
rtmouse.ko 21KB
LICENSE 11KB
Makefile 477B
README.md 7KB
README.md 2KB
README.md 2KB
README.md 262B
README.md 262B
rpi_linux_commit_hash.png 31KB
run-clang-format.py 13KB
RemoCon_for_PS3.py 6KB
step6.py 2KB
step3.py 2KB
step4.py 2KB
step2.py 1KB
step1.py 928B
step5.py 721B
50-rtmouse.rules 278B
SCALE 133B
step0.sh 3KB
step6.sh 2KB
step3.sh 1KB
step4.sh 1KB
共 108 条
- 1
- 2
资源评论
__AtYou__
- 粉丝: 3508
- 资源: 2175
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 适用于您的 Vue.js 项目的便捷 Moment.js 过滤器 .zip
- 通过 Flask 微框架提供 Vue.js SPA.zip
- 通过动画跨路线共享组件.zip
- 针对 Google Places API 的 Vue.js 自动建议组件 .zip
- 集成 vuex 的原生 websocket.zip
- 集成axios.zip
- 非常漂亮的颜色选择器.zip
- 面向 Vue 开发人员的一体化原型设计工具 .zip
- 高级 Vue 裁剪器库,让您有机会创建适合任何网站设计的自己的裁剪器.zip
- (仅限 Vue 2)将 Vue 组件包装为 Web 组件,自定义元素 .zip
- 输出指定年份的每个月的日历.c
- shopTNT电商系统-前端(PC端 商家PC端 管理端)-c语言
- LeetCode-按层次遍历二叉树
- web-传智杯程序设计大赛
- demo-基于mybatis的留言本
- numpy-numpy
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功