Skip to content

k-kame/RaspberryPiMouse

This branch is 25 commits behind rt-net/RaspberryPiMouse:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

14caf9b · Jul 1, 2020
May 15, 2020
Sep 1, 2018
Jun 3, 2020
Feb 1, 2017
Feb 19, 2020
Jul 1, 2020
Feb 1, 2017
Apr 22, 2019
Sep 1, 2018
Sep 1, 2018
Jul 1, 2020
Jul 1, 2020

Repository files navigation

RaspberryPiMouse

CI

This repository has the source code and kernel objects for the Raspberry Pi Mouse.

Installation

Run the installation script (./utils/build_install.bash).

インストール用のシェルスクリプト(./utils/build_install.bash)を実行します。

for Raspbian

$ git clone https://github.com/rt-net/RaspberryPiMouse.git
$ cd RaspberryPiMouse/utils
$ sudo apt install raspberrypi-kernel-headers build-essential
$ ./build_install.bash

for Ubuntu

$ git clone https://github.com/rt-net/RaspberryPiMouse.git
$ cd RaspberryPiMouse/utils
$ sudo apt install linux-headers-$(uname -r) build-essential
$ ./build_install.bash

Manual installation

$ git clone https://github.com/rt-net/RaspberryPiMouse.git
$ cd RaspberryPiMouse/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 arm64 Ubuntu18.04

According to 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.

I2Cのbaudrateをデフォルト値より下げる必要があります(issues#13)。

/boot/firmware/config.txtに以下の1行を追加することでI2Cのbaudrateを62.5kHzに固定することができます。

dtparam=i2c_baudrate=62500

The following command shows current i2c baudrate value.

現在設定されているI2Cのbaudrateは以下のコマンドを実行することで確認できます。

$ printf "%d\n" 0x$(xxd -ps /sys/class/i2c-adapter/i2c-1/of_node/clock-frequency)

for Raspberry Pi 4

Edit rtmouse.c to change the defined value RASPBERRYPI from '2' to '4'.

Raspberry Pi 4ではCPUのレジスタがそれまでのRaspberry Piとは異なります(issues#21)。
Raspberry Pi 4で本ドライバを使用する際にはrtmouse.cの以下の行(2020年4月13日現在の最新版のv2.1.0では54行目)をRASPBERRYPI 4に書き換えて手動でビルドする必要があります。

// 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

Device files

For example code of device files, please refer to SampleProgram.

デバイスファイルの使用例はサンプルプログラムを参考にしてください。

Light sensor x4 (Input)

Read /dev/rtlightsensor0 to get proximity (0:far ~ 4095:close) of objects detected by light sensors.

/dev/rtlightsensor0を読み取り、光センサで検出された物体の近接度 (0:遠い ~ 4095:近い)を取得します。

# 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状態を取得します。

# 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を書き込みブザーを鳴らします。

# 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を点灯/消灯します。

# 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 を書き込みモータ操作を有効/無効にします。

# 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.

/dev/rtmotor_raw_l0 または /dev/rtmotor_raw_r0 に 0 ~ 10000 を書き込み、モータドライバへのPWM周波数を設定します。

# 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周波数と動作時間を書き込み、左右のモータを回します。

# 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
# 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

その他

その他のよくある質問についてはwikiにまとめています。

日経Linux連載

連載(Raspberry Piで始めるかんたんロボット製作)で上田氏が書いた シェルスクリプトは下記にあります。

https://github.com/ryuichiueda/RPiM

License

This repository is licensed under the GPL-2.0-only License, see LICENSE.

このリポジトリはGPL-2.0-onlyライセンスで公開されています。詳細はLICENSEを確認してください。

Includings

This repository contains the code of the repository shown below.

このリポジトリは以下に示すリポジトリのコードを一部含みます。

About

Raspberry Pi Mouse Device Driver

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 81.9%
  • Python 12.5%
  • Shell 5.6%