0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

N-Prolog wiringPi 

Last updated at Posted at 2020-10-20

はじめに

N-PrologにWiringPiの組み込み述語を用意しました。ラズパイ専用です。

インストール

ラズパイでインストールするときには "make raspi" としてください。これによりWiringPiの述語が組み込まれます。以前はこれをCラッパを使ってコンパイルするということをやっていました。めんどくさいので単純な方法にしました。

組み込み述語

N-Prolog <==================================> C
wiringpi_spi_setup(ch speed) <===> wiringPiSPISetup (SPI_CH, SPI_SPEED)
wiringpi_setup_gpio  <===> wiringPiSetupGpio()
pin_mode(n, 'output) <====> pinMode(n, OUTPUT) or 'input -> INPUT 'pwm-output -> PWM_OUTPUT
digital_write(n, v) <===> digitalWrite(n, v)
digital_write_byte(v) <===> digitalWriteByte(value)
digital_read(pin) <===> digitalRead(pin)
delay(howlong) <===> void delay(unsigned int howLong)
pull_up_dn_control(pin, pud) <===> pullUpDnControl(pin,pud)
pwm_set_mode('pwm_mode_ms) <===> pwmSetMode(PWM_MODE_MS); or 'pwm_mode_bal -> PWM_MODE_BAL
pwm_set_clock(n) <===> pwmSetClock(n)
pwm_set_range(n) <===> pwmSetRange(n)
pwm_write(pin, value) <===> pwmWrite(pin , value)

Lチカの例

setup :-
    not(flag),wiringpi_setup_gpio,assert(flag),
    pin_mode(5,output).

test(0).
test(N) :-
    digital_write(5,1),
    delay(1000),
    digital_write(5,0),
    delay(1000),
    N1 is N - 1,
    test(N1).

setup を実行したのちに test(10). のように実行します。10回LEDが点滅します。
まだテストが不十分です。どなたかお試しいただければ幸いです。
自立型の知的推論をするロボット制作に使えると思います。

サーボを動かす例

setup :-
    not(flag),wiringpi_setup_gpio,assert(flag),
    pin_mode(18,pwm_output),
    pwm_set_mode(pwm_mode_ms),
    pwm_set_clock(400),
    pwm_set_range(1024).


test1(N) :-
    pwm_write(18,N).

次のように実行します。

setup.
test1(24).
test1(115).

サーボとPWMについては下記の記事がわかりやすいです。
http://qiita.com/locatw/items/f15fd9df40153bbb4d27

Github

ここにおいてあります。
https://github.com/sasagawa888/nprolog

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?