wiringpi-ruby 2.0.0 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/ext/wiringpi/WiringPi/devLib/ds1302.c +240 -0
- data/ext/wiringpi/WiringPi/devLib/ds1302.h +44 -0
- data/ext/wiringpi/WiringPi/devLib/font.h +2577 -0
- data/ext/wiringpi/WiringPi/devLib/gertboard.c +164 -0
- data/ext/wiringpi/WiringPi/devLib/gertboard.h +45 -0
- data/ext/wiringpi/WiringPi/devLib/lcd.c +495 -0
- data/ext/wiringpi/WiringPi/devLib/lcd.h +52 -0
- data/ext/wiringpi/WiringPi/devLib/lcd128x64.c +673 -0
- data/ext/wiringpi/WiringPi/devLib/lcd128x64.h +39 -0
- data/ext/wiringpi/WiringPi/devLib/maxdetect.c +238 -0
- data/ext/wiringpi/WiringPi/devLib/maxdetect.h +40 -0
- data/ext/wiringpi/WiringPi/devLib/piFace.c +112 -0
- data/ext/wiringpi/WiringPi/devLib/piFace.h +32 -0
- data/ext/wiringpi/WiringPi/devLib/piFaceOld.c +177 -0
- data/ext/wiringpi/WiringPi/devLib/piGlow.c +118 -0
- data/ext/wiringpi/WiringPi/devLib/piGlow.h +45 -0
- data/ext/wiringpi/WiringPi/devLib/piNes.c +113 -0
- data/ext/wiringpi/WiringPi/devLib/piNes.h +45 -0
- data/ext/wiringpi/WiringPi/devLib/scrollPhat.c +430 -0
- data/ext/wiringpi/WiringPi/devLib/scrollPhat.h +39 -0
- data/ext/wiringpi/WiringPi/devLib/scrollPhatFont.h +544 -0
- data/ext/wiringpi/WiringPi/examples/Gertboard/7segments.c +221 -0
- data/ext/wiringpi/WiringPi/examples/Gertboard/buttons.c +83 -0
- data/ext/wiringpi/WiringPi/examples/Gertboard/gertboard.c +96 -0
- data/ext/wiringpi/WiringPi/examples/Gertboard/record.c +60 -0
- data/ext/wiringpi/WiringPi/examples/Gertboard/temperature.c +78 -0
- data/ext/wiringpi/WiringPi/examples/Gertboard/voltmeter.c +73 -0
- data/ext/wiringpi/WiringPi/examples/Gertboard/vumeter.c +152 -0
- data/ext/wiringpi/WiringPi/examples/PiFace/blink.c +59 -0
- data/ext/wiringpi/WiringPi/examples/PiFace/buttons.c +103 -0
- data/ext/wiringpi/WiringPi/examples/PiFace/ladder.c +337 -0
- data/ext/wiringpi/WiringPi/examples/PiFace/metro.c +111 -0
- data/ext/wiringpi/WiringPi/examples/PiFace/motor.c +120 -0
- data/ext/wiringpi/WiringPi/examples/PiFace/reaction.c +194 -0
- data/ext/wiringpi/WiringPi/examples/PiGlow/piGlow0.c +51 -0
- data/ext/wiringpi/WiringPi/examples/PiGlow/piGlow1.c +258 -0
- data/ext/wiringpi/WiringPi/examples/PiGlow/piglow.c +176 -0
- data/ext/wiringpi/WiringPi/examples/blink-thread.c +61 -0
- data/ext/wiringpi/WiringPi/examples/blink.c +48 -0
- data/ext/wiringpi/WiringPi/examples/blink12.c +111 -0
- data/ext/wiringpi/WiringPi/examples/blink12drcs.c +125 -0
- data/ext/wiringpi/WiringPi/examples/blink6drcs.c +115 -0
- data/ext/wiringpi/WiringPi/examples/blink8-drcn.c +61 -0
- data/ext/wiringpi/WiringPi/examples/blink8.c +57 -0
- data/ext/wiringpi/WiringPi/examples/clock.c +201 -0
- data/ext/wiringpi/WiringPi/examples/delayTest.c +102 -0
- data/ext/wiringpi/WiringPi/examples/ds1302.c +238 -0
- data/ext/wiringpi/WiringPi/examples/header.h +23 -0
- data/ext/wiringpi/WiringPi/examples/isr-osc.c +118 -0
- data/ext/wiringpi/WiringPi/examples/isr.c +110 -0
- data/ext/wiringpi/WiringPi/examples/lcd-adafruit.c +347 -0
- data/ext/wiringpi/WiringPi/examples/lcd.c +286 -0
- data/ext/wiringpi/WiringPi/examples/lowPower.c +68 -0
- data/ext/wiringpi/WiringPi/examples/max31855.c +60 -0
- data/ext/wiringpi/WiringPi/examples/nes.c +67 -0
- data/ext/wiringpi/WiringPi/examples/okLed.c +82 -0
- data/ext/wiringpi/WiringPi/examples/pwm.c +58 -0
- data/ext/wiringpi/WiringPi/examples/q2w/binary.c +79 -0
- data/ext/wiringpi/WiringPi/examples/q2w/blink-io.c +61 -0
- data/ext/wiringpi/WiringPi/examples/q2w/blink.c +50 -0
- data/ext/wiringpi/WiringPi/examples/q2w/bright.c +59 -0
- data/ext/wiringpi/WiringPi/examples/q2w/button.c +63 -0
- data/ext/wiringpi/WiringPi/examples/q2w/volts.c +62 -0
- data/ext/wiringpi/WiringPi/examples/rht03.c +86 -0
- data/ext/wiringpi/WiringPi/examples/scrollPhat/scphat.c +230 -0
- data/ext/wiringpi/WiringPi/examples/scrollPhat/test.c +115 -0
- data/ext/wiringpi/WiringPi/examples/serialRead.c +48 -0
- data/ext/wiringpi/WiringPi/examples/serialTest.c +75 -0
- data/ext/wiringpi/WiringPi/examples/servo.c +57 -0
- data/ext/wiringpi/WiringPi/examples/softPwm.c +89 -0
- data/ext/wiringpi/WiringPi/examples/softTone.c +54 -0
- data/ext/wiringpi/WiringPi/examples/speed.c +95 -0
- data/ext/wiringpi/WiringPi/examples/spiSpeed.c +118 -0
- data/ext/wiringpi/WiringPi/examples/wfi.c +161 -0
- data/ext/wiringpi/WiringPi/gpio/gpio.c +1538 -0
- data/ext/wiringpi/WiringPi/gpio/readall.c +403 -0
- data/ext/wiringpi/WiringPi/version.h +3 -0
- data/ext/wiringpi/WiringPi/wiringPi/ads1115.c +293 -0
- data/ext/wiringpi/WiringPi/wiringPi/ads1115.h +55 -0
- data/ext/wiringpi/WiringPi/wiringPi/bmp180.c +237 -0
- data/ext/wiringpi/WiringPi/wiringPi/bmp180.h +34 -0
- data/ext/wiringpi/WiringPi/wiringPi/drcNet.c +405 -0
- data/ext/wiringpi/WiringPi/wiringPi/drcNet.h +42 -0
- data/ext/wiringpi/WiringPi/wiringPi/drcSerial.c +196 -0
- data/ext/wiringpi/WiringPi/wiringPi/drcSerial.h +33 -0
- data/ext/wiringpi/WiringPi/wiringPi/ds18b20.c +146 -0
- data/ext/wiringpi/WiringPi/wiringPi/ds18b20.h +34 -0
- data/ext/wiringpi/WiringPi/wiringPi/htu21d.c +150 -0
- data/ext/wiringpi/WiringPi/wiringPi/htu21d.h +34 -0
- data/ext/wiringpi/WiringPi/wiringPi/max31855.c +99 -0
- data/ext/wiringpi/WiringPi/wiringPi/max31855.h +33 -0
- data/ext/wiringpi/WiringPi/wiringPi/max5322.c +84 -0
- data/ext/wiringpi/WiringPi/wiringPi/max5322.h +33 -0
- data/ext/wiringpi/WiringPi/wiringPi/mcp23008.c +149 -0
- data/ext/wiringpi/WiringPi/wiringPi/mcp23008.h +33 -0
- data/ext/wiringpi/WiringPi/wiringPi/mcp23016.c +164 -0
- data/ext/wiringpi/WiringPi/wiringPi/mcp23016.h +33 -0
- data/ext/wiringpi/WiringPi/wiringPi/mcp23016reg.h +48 -0
- data/ext/wiringpi/WiringPi/wiringPi/mcp23017.c +195 -0
- data/ext/wiringpi/WiringPi/wiringPi/mcp23017.h +33 -0
- data/ext/wiringpi/WiringPi/wiringPi/mcp23s08.c +188 -0
- data/ext/wiringpi/WiringPi/wiringPi/mcp23s08.h +33 -0
- data/ext/wiringpi/WiringPi/wiringPi/mcp23s17.c +235 -0
- data/ext/wiringpi/WiringPi/wiringPi/mcp23s17.h +33 -0
- data/ext/wiringpi/WiringPi/wiringPi/mcp23x08.h +73 -0
- data/ext/wiringpi/WiringPi/wiringPi/mcp23x0817.h +87 -0
- data/ext/wiringpi/WiringPi/wiringPi/mcp3002.c +76 -0
- data/ext/wiringpi/WiringPi/wiringPi/mcp3002.h +33 -0
- data/ext/wiringpi/WiringPi/wiringPi/mcp3004.c +76 -0
- data/ext/wiringpi/WiringPi/wiringPi/mcp3004.h +33 -0
- data/ext/wiringpi/WiringPi/wiringPi/mcp3422.c +125 -0
- data/ext/wiringpi/WiringPi/wiringPi/mcp3422.h +43 -0
- data/ext/wiringpi/WiringPi/wiringPi/mcp4802.c +76 -0
- data/ext/wiringpi/WiringPi/wiringPi/mcp4802.h +33 -0
- data/ext/wiringpi/WiringPi/wiringPi/pcf8574.c +126 -0
- data/ext/wiringpi/WiringPi/wiringPi/pcf8574.h +33 -0
- data/ext/wiringpi/WiringPi/wiringPi/pcf8591.c +90 -0
- data/ext/wiringpi/WiringPi/wiringPi/pcf8591.h +33 -0
- data/ext/wiringpi/WiringPi/wiringPi/piHiPri.c +51 -0
- data/ext/wiringpi/WiringPi/wiringPi/piThread.c +63 -0
- data/ext/wiringpi/WiringPi/wiringPi/pseudoPins.c +95 -0
- data/ext/wiringpi/WiringPi/wiringPi/pseudoPins.h +26 -0
- data/ext/wiringpi/WiringPi/wiringPi/rht03.c +252 -0
- data/ext/wiringpi/WiringPi/wiringPi/rht03.h +25 -0
- data/ext/wiringpi/WiringPi/wiringPi/sn3218.c +75 -0
- data/ext/wiringpi/WiringPi/wiringPi/sn3218.h +33 -0
- data/ext/wiringpi/WiringPi/wiringPi/softPwm.c +186 -0
- data/ext/wiringpi/WiringPi/wiringPi/softPwm.h +35 -0
- data/ext/wiringpi/WiringPi/wiringPi/softServo.c +211 -0
- data/ext/wiringpi/WiringPi/wiringPi/softServo.h +35 -0
- data/ext/wiringpi/WiringPi/wiringPi/softTone.c +150 -0
- data/ext/wiringpi/WiringPi/wiringPi/softTone.h +39 -0
- data/ext/wiringpi/WiringPi/wiringPi/sr595.c +109 -0
- data/ext/wiringpi/WiringPi/wiringPi/sr595.h +34 -0
- data/ext/wiringpi/WiringPi/wiringPi/wiringPi.c +2507 -0
- data/ext/wiringpi/WiringPi/wiringPi/wiringPi.h +269 -0
- data/ext/wiringpi/WiringPi/wiringPi/wiringPiI2C.c +233 -0
- data/ext/wiringpi/WiringPi/wiringPi/wiringPiI2C.h +42 -0
- data/ext/wiringpi/WiringPi/wiringPi/wiringPiSPI.c +144 -0
- data/ext/wiringpi/WiringPi/wiringPi/wiringPiSPI.h +36 -0
- data/ext/wiringpi/WiringPi/wiringPi/wiringSerial.c +225 -0
- data/ext/wiringpi/WiringPi/wiringPi/wiringSerial.h +38 -0
- data/ext/wiringpi/WiringPi/wiringPi/wiringShift.c +83 -0
- data/ext/wiringpi/WiringPi/wiringPi/wiringShift.h +41 -0
- data/ext/wiringpi/WiringPi/wiringPi/wpiExtensions.c +928 -0
- data/ext/wiringpi/WiringPi/wiringPi/wpiExtensions.h +26 -0
- data/ext/wiringpi/WiringPi/wiringPiD/daemonise.c +82 -0
- data/ext/wiringpi/WiringPi/wiringPiD/daemonise.h +9 -0
- data/ext/wiringpi/WiringPi/wiringPiD/drcNetCmd.h +43 -0
- data/ext/wiringpi/WiringPi/wiringPiD/network.c +330 -0
- data/ext/wiringpi/WiringPi/wiringPiD/network.h +31 -0
- data/ext/wiringpi/WiringPi/wiringPiD/runRemote.c +126 -0
- data/ext/wiringpi/WiringPi/wiringPiD/runRemote.h +29 -0
- data/ext/wiringpi/WiringPi/wiringPiD/wiringpid.c +382 -0
- metadata +155 -1
@@ -0,0 +1,78 @@
|
|
1
|
+
/*
|
2
|
+
* temperature.c:
|
3
|
+
* Demonstrate use of the Gertboard A to D converter to make
|
4
|
+
* a simple thermometer using the LM35.
|
5
|
+
*
|
6
|
+
* Copyright (c) 2012-2013 Gordon Henderson. <projects@drogon.net>
|
7
|
+
***********************************************************************
|
8
|
+
* This file is part of wiringPi:
|
9
|
+
* https://projects.drogon.net/raspberry-pi/wiringpi/
|
10
|
+
*
|
11
|
+
* wiringPi is free software: you can redistribute it and/or modify
|
12
|
+
* it under the terms of the GNU Lesser General Public License as published by
|
13
|
+
* the Free Software Foundation, either version 3 of the License, or
|
14
|
+
* (at your option) any later version.
|
15
|
+
*
|
16
|
+
* wiringPi is distributed in the hope that it will be useful,
|
17
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
18
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
19
|
+
* GNU Lesser General Public License for more details.
|
20
|
+
*
|
21
|
+
* You should have received a copy of the GNU Lesser General Public License
|
22
|
+
* along with wiringPi. If not, see <http://www.gnu.org/licenses/>.
|
23
|
+
***********************************************************************
|
24
|
+
*/
|
25
|
+
|
26
|
+
#include <stdio.h>
|
27
|
+
|
28
|
+
#include <wiringPi.h>
|
29
|
+
#include <gertboard.h>
|
30
|
+
|
31
|
+
int main ()
|
32
|
+
{
|
33
|
+
int x1, x2 ;
|
34
|
+
double v1, v2 ;
|
35
|
+
|
36
|
+
printf ("\n") ;
|
37
|
+
printf ("Gertboard demo: Simple Thermemeter\n") ;
|
38
|
+
printf ("==================================\n") ;
|
39
|
+
|
40
|
+
// Always initialise wiringPi. Use wiringPiSys() if you don't need
|
41
|
+
// (or want) to run as root
|
42
|
+
|
43
|
+
wiringPiSetupSys () ;
|
44
|
+
|
45
|
+
// Initialise the Gertboard analog hardware at pin 100
|
46
|
+
|
47
|
+
gertboardAnalogSetup (100) ;
|
48
|
+
|
49
|
+
printf ("\n") ;
|
50
|
+
printf ("| Channel 0 | Channel 1 | Temperature 1 | Temperature 2 |\n") ;
|
51
|
+
|
52
|
+
for (;;)
|
53
|
+
{
|
54
|
+
|
55
|
+
// Read the 2 channels:
|
56
|
+
|
57
|
+
x1 = analogRead (100) ;
|
58
|
+
x2 = analogRead (101) ;
|
59
|
+
|
60
|
+
// Convert to a voltage:
|
61
|
+
|
62
|
+
v1 = (double)x1 / 1023.0 * 3.3 ;
|
63
|
+
v2 = (double)x2 / 1023.0 * 3.3 ;
|
64
|
+
|
65
|
+
// Print
|
66
|
+
|
67
|
+
printf ("| %6.3f | %6.3f |", v1, v2) ;
|
68
|
+
|
69
|
+
// Print Temperature of both channels by converting the LM35 reading
|
70
|
+
// to a temperature. Fortunately these are easy: 0.01 volts per C.
|
71
|
+
|
72
|
+
printf (" %4.1f | %4.1f |\r", v1 * 100.0, v2 * 100.0) ;
|
73
|
+
fflush (stdout) ;
|
74
|
+
}
|
75
|
+
|
76
|
+
return 0 ;
|
77
|
+
}
|
78
|
+
|
@@ -0,0 +1,73 @@
|
|
1
|
+
/*
|
2
|
+
* voltmeter.c:
|
3
|
+
* Demonstrate use of the Gertboard A to D converter to make
|
4
|
+
* a simple voltmeter.
|
5
|
+
*
|
6
|
+
* Copyright (c) 2012-2013 Gordon Henderson. <projects@drogon.net>
|
7
|
+
***********************************************************************
|
8
|
+
* This file is part of wiringPi:
|
9
|
+
* https://projects.drogon.net/raspberry-pi/wiringpi/
|
10
|
+
*
|
11
|
+
* wiringPi is free software: you can redistribute it and/or modify
|
12
|
+
* it under the terms of the GNU Lesser General Public License as published by
|
13
|
+
* the Free Software Foundation, either version 3 of the License, or
|
14
|
+
* (at your option) any later version.
|
15
|
+
*
|
16
|
+
* wiringPi is distributed in the hope that it will be useful,
|
17
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
18
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
19
|
+
* GNU Lesser General Public License for more details.
|
20
|
+
*
|
21
|
+
* You should have received a copy of the GNU Lesser General Public License
|
22
|
+
* along with wiringPi. If not, see <http://www.gnu.org/licenses/>.
|
23
|
+
***********************************************************************
|
24
|
+
*/
|
25
|
+
|
26
|
+
#include <stdio.h>
|
27
|
+
|
28
|
+
#include <wiringPi.h>
|
29
|
+
#include <gertboard.h>
|
30
|
+
|
31
|
+
int main ()
|
32
|
+
{
|
33
|
+
int x1, x2 ;
|
34
|
+
double v1, v2 ;
|
35
|
+
|
36
|
+
printf ("\n") ;
|
37
|
+
printf ("Gertboard demo: Simple Voltmeters\n") ;
|
38
|
+
printf ("=================================\n") ;
|
39
|
+
|
40
|
+
// Always initialise wiringPi. Use wiringPiSys() if you don't need
|
41
|
+
// (or want) to run as root
|
42
|
+
|
43
|
+
wiringPiSetupSys () ;
|
44
|
+
|
45
|
+
// Initialise the Gertboard analog hardware at pin 100
|
46
|
+
|
47
|
+
gertboardAnalogSetup (100) ;
|
48
|
+
|
49
|
+
printf ("\n") ;
|
50
|
+
printf ("| Channel 0 | Channel 1 |\n") ;
|
51
|
+
|
52
|
+
for (;;)
|
53
|
+
{
|
54
|
+
|
55
|
+
// Read the 2 channels:
|
56
|
+
|
57
|
+
x1 = analogRead (100) ;
|
58
|
+
x2 = analogRead (101) ;
|
59
|
+
|
60
|
+
// Convert to a voltage:
|
61
|
+
|
62
|
+
v1 = (double)x1 / 1023.0 * 3.3 ;
|
63
|
+
v2 = (double)x2 / 1023.0 * 3.3 ;
|
64
|
+
|
65
|
+
// Print
|
66
|
+
|
67
|
+
printf ("| %6.3f | %6.3f |\r", v1, v2) ;
|
68
|
+
fflush (stdout) ;
|
69
|
+
}
|
70
|
+
|
71
|
+
return 0 ;
|
72
|
+
}
|
73
|
+
|
@@ -0,0 +1,152 @@
|
|
1
|
+
/*
|
2
|
+
* vumeter.c:
|
3
|
+
* Simple VU meter
|
4
|
+
*
|
5
|
+
* Heres the theory:
|
6
|
+
* We will sample at 4000 samples/sec and put the data into a
|
7
|
+
* low-pass filter with a depth of 1000 samples. This will give
|
8
|
+
* us 1/4 a second of lag on the signal, but I think it might
|
9
|
+
* produce a more pleasing output.
|
10
|
+
*
|
11
|
+
* The input of the microphone should be at mid-pont with no
|
12
|
+
* sound input, but we might have to sample that too, to get
|
13
|
+
* our reference zero...
|
14
|
+
*
|
15
|
+
* Copyright (c) 2013 Gordon Henderson
|
16
|
+
***********************************************************************
|
17
|
+
*/
|
18
|
+
|
19
|
+
#include <stdio.h>
|
20
|
+
#include <stdlib.h>
|
21
|
+
#include <sys/time.h>
|
22
|
+
|
23
|
+
#include <wiringPi.h>
|
24
|
+
#include <gertboard.h>
|
25
|
+
|
26
|
+
#ifndef TRUE
|
27
|
+
#define TRUE (1==1)
|
28
|
+
#define FALSE (!TRUE)
|
29
|
+
#endif
|
30
|
+
|
31
|
+
#define B_SIZE 1000
|
32
|
+
#define S_SIZE 128
|
33
|
+
|
34
|
+
static int buffer [B_SIZE] ;
|
35
|
+
static int bPtr = 0 ;
|
36
|
+
|
37
|
+
/*
|
38
|
+
* ledPercent:
|
39
|
+
* Output the given value as a percentage on the LEDs
|
40
|
+
*********************************************************************************
|
41
|
+
*/
|
42
|
+
|
43
|
+
static void ledPercent (int percent)
|
44
|
+
{
|
45
|
+
unsigned int output = 0 ;
|
46
|
+
|
47
|
+
if (percent > 11) output |= 0x01 ;
|
48
|
+
if (percent > 22) output |= 0x02 ;
|
49
|
+
if (percent > 33) output |= 0x04 ;
|
50
|
+
if (percent > 44) output |= 0x08 ;
|
51
|
+
if (percent > 55) output |= 0x10 ;
|
52
|
+
if (percent > 66) output |= 0x20 ;
|
53
|
+
if (percent > 77) output |= 0x40 ;
|
54
|
+
if (percent > 88) output |= 0x80 ;
|
55
|
+
|
56
|
+
digitalWriteByte (output) ;
|
57
|
+
}
|
58
|
+
|
59
|
+
static unsigned int tPeriod, tNextSampleTime ;
|
60
|
+
|
61
|
+
/*
|
62
|
+
* sample:
|
63
|
+
* Get a sample from the Gertboard. If not enough time has elapsed
|
64
|
+
* since the last sample, then wait...
|
65
|
+
*********************************************************************************
|
66
|
+
*/
|
67
|
+
|
68
|
+
static void sample (void)
|
69
|
+
{
|
70
|
+
unsigned int tFuture ;
|
71
|
+
|
72
|
+
// Calculate the future sample time
|
73
|
+
|
74
|
+
tFuture = tPeriod + tNextSampleTime ;
|
75
|
+
|
76
|
+
// Wait until the next sample time
|
77
|
+
|
78
|
+
while (micros () < tNextSampleTime)
|
79
|
+
;
|
80
|
+
|
81
|
+
buffer [bPtr] = gertboardAnalogRead (0) ;
|
82
|
+
|
83
|
+
tNextSampleTime = tFuture ;
|
84
|
+
}
|
85
|
+
|
86
|
+
|
87
|
+
int main ()
|
88
|
+
{
|
89
|
+
int quietLevel, min, max ;
|
90
|
+
int i, sum ;
|
91
|
+
unsigned int tStart, tEnd ;
|
92
|
+
|
93
|
+
printf ("\n") ;
|
94
|
+
printf ("Gertboard demo: VU Meter\n") ;
|
95
|
+
printf ("========================\n") ;
|
96
|
+
|
97
|
+
wiringPiSetup () ;
|
98
|
+
gertboardSPISetup () ;
|
99
|
+
|
100
|
+
ledPercent (0) ;
|
101
|
+
for (i = 0 ; i < 8 ; ++i)
|
102
|
+
pinMode (i, OUTPUT) ;
|
103
|
+
|
104
|
+
for (bPtr = 0 ; bPtr < B_SIZE ; ++bPtr)
|
105
|
+
buffer [bPtr] = 99 ;
|
106
|
+
|
107
|
+
tPeriod = 1000000 / 1000 ;
|
108
|
+
|
109
|
+
printf ("Shhhh.... ") ; fflush (stdout) ;
|
110
|
+
delay (1000) ;
|
111
|
+
printf ("Sampling quiet... ") ; fflush (stdout) ;
|
112
|
+
|
113
|
+
tStart = micros () ;
|
114
|
+
|
115
|
+
tNextSampleTime = micros () ;
|
116
|
+
for (bPtr = 0 ; bPtr < B_SIZE ; ++bPtr)
|
117
|
+
sample () ;
|
118
|
+
|
119
|
+
tEnd = micros () ;
|
120
|
+
|
121
|
+
quietLevel = 0 ;
|
122
|
+
max = 0 ;
|
123
|
+
min = 1024 ;
|
124
|
+
for (i = 0 ; i < B_SIZE ; ++i)
|
125
|
+
{
|
126
|
+
quietLevel += buffer [i] ;
|
127
|
+
if (buffer [i] > max) max = buffer [i] ;
|
128
|
+
if (buffer [i] < min) min = buffer [i] ;
|
129
|
+
}
|
130
|
+
quietLevel /= B_SIZE ;
|
131
|
+
|
132
|
+
printf ("Done. Quiet level is: %d [%d:%d] [%d:%d]\n", quietLevel, min, max, quietLevel - min, max - quietLevel) ;
|
133
|
+
|
134
|
+
printf ("Time taken for %d reads: %duS\n", B_SIZE, tEnd - tStart) ;
|
135
|
+
|
136
|
+
for (bPtr = 0 ;;)
|
137
|
+
{
|
138
|
+
sample () ;
|
139
|
+
sum = 0 ;
|
140
|
+
for (i = 0 ; i < S_SIZE ; ++i)
|
141
|
+
sum += buffer [i] ;
|
142
|
+
sum /= S_SIZE ;
|
143
|
+
sum = abs (quietLevel - sum) ;
|
144
|
+
sum = (sum * 1000) / quietLevel ;
|
145
|
+
ledPercent (sum) ;
|
146
|
+
if (++bPtr > S_SIZE)
|
147
|
+
bPtr = 0 ;
|
148
|
+
}
|
149
|
+
|
150
|
+
|
151
|
+
return 0 ;
|
152
|
+
}
|
@@ -0,0 +1,59 @@
|
|
1
|
+
/*
|
2
|
+
* blink.c:
|
3
|
+
* Simple "blink" test for the PiFace interface board.
|
4
|
+
*
|
5
|
+
* Copyright (c) 2012-2013 Gordon Henderson. <projects@drogon.net>
|
6
|
+
***********************************************************************
|
7
|
+
* This file is part of wiringPi:
|
8
|
+
* https://projects.drogon.net/raspberry-pi/wiringpi/
|
9
|
+
*
|
10
|
+
* wiringPi is free software: you can redistribute it and/or modify
|
11
|
+
* it under the terms of the GNU Lesser General Public License as published by
|
12
|
+
* the Free Software Foundation, either version 3 of the License, or
|
13
|
+
* (at your option) any later version.
|
14
|
+
*
|
15
|
+
* wiringPi is distributed in the hope that it will be useful,
|
16
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
17
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
18
|
+
* GNU Lesser General Public License for more details.
|
19
|
+
*
|
20
|
+
* You should have received a copy of the GNU Lesser General Public License
|
21
|
+
* along with wiringPi. If not, see <http://www.gnu.org/licenses/>.
|
22
|
+
***********************************************************************
|
23
|
+
*/
|
24
|
+
|
25
|
+
#include <stdio.h>
|
26
|
+
|
27
|
+
#include <wiringPi.h>
|
28
|
+
#include <piFace.h>
|
29
|
+
|
30
|
+
// Use 200 as the pin-base for the PiFace board, and pick a pin
|
31
|
+
// for the LED that's not connected to a relay
|
32
|
+
|
33
|
+
#define PIFACE 200
|
34
|
+
#define LED (PIFACE+2)
|
35
|
+
|
36
|
+
int main (int argc, char *argv [])
|
37
|
+
{
|
38
|
+
printf ("Raspberry Pi PiFace Blink\n") ;
|
39
|
+
printf ("=========================\n") ;
|
40
|
+
|
41
|
+
// Always initialise wiringPi. Use wiringPiSys() if you don't need
|
42
|
+
// (or want) to run as root
|
43
|
+
|
44
|
+
wiringPiSetupSys () ;
|
45
|
+
|
46
|
+
// Setup the PiFace board
|
47
|
+
|
48
|
+
piFaceSetup (PIFACE) ;
|
49
|
+
|
50
|
+
for (;;)
|
51
|
+
{
|
52
|
+
digitalWrite (LED, HIGH) ; // On
|
53
|
+
delay (500) ; // mS
|
54
|
+
digitalWrite (LED, LOW) ; // Off
|
55
|
+
delay (500) ;
|
56
|
+
}
|
57
|
+
|
58
|
+
return 0 ;
|
59
|
+
}
|
@@ -0,0 +1,103 @@
|
|
1
|
+
/*
|
2
|
+
* buttons.c:
|
3
|
+
* Simple test for the PiFace interface board.
|
4
|
+
*
|
5
|
+
* Read the buttons and output the same to the LEDs
|
6
|
+
*
|
7
|
+
* Copyright (c) 2012-2013 Gordon Henderson. <projects@drogon.net>
|
8
|
+
***********************************************************************
|
9
|
+
* This file is part of wiringPi:
|
10
|
+
* https://projects.drogon.net/raspberry-pi/wiringpi/
|
11
|
+
*
|
12
|
+
* wiringPi is free software: you can redistribute it and/or modify
|
13
|
+
* it under the terms of the GNU Lesser General Public License as published by
|
14
|
+
* the Free Software Foundation, either version 3 of the License, or
|
15
|
+
* (at your option) any later version.
|
16
|
+
*
|
17
|
+
* wiringPi is distributed in the hope that it will be useful,
|
18
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
19
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
20
|
+
* GNU Lesser General Public License for more details.
|
21
|
+
*
|
22
|
+
* You should have received a copy of the GNU Lesser General Public License
|
23
|
+
* along with wiringPi. If not, see <http://www.gnu.org/licenses/>.
|
24
|
+
***********************************************************************
|
25
|
+
*/
|
26
|
+
|
27
|
+
#include <stdio.h>
|
28
|
+
|
29
|
+
#include <wiringPi.h>
|
30
|
+
#include <piFace.h>
|
31
|
+
|
32
|
+
int outputs [4] = { 0,0,0,0 } ;
|
33
|
+
|
34
|
+
// Use 200 as the pin-base for the PiFace board
|
35
|
+
|
36
|
+
#define PIFACE_BASE 200
|
37
|
+
|
38
|
+
|
39
|
+
/*
|
40
|
+
* scanButton:
|
41
|
+
* Read the guiven button - if it's pressed, then flip the state
|
42
|
+
* of the correspoinding output pin
|
43
|
+
*********************************************************************************
|
44
|
+
*/
|
45
|
+
|
46
|
+
void scanButton (int button)
|
47
|
+
{
|
48
|
+
if (digitalRead (PIFACE_BASE + button) == LOW)
|
49
|
+
{
|
50
|
+
outputs [button] ^= 1 ;
|
51
|
+
digitalWrite (PIFACE_BASE + button, outputs [button]) ;
|
52
|
+
printf ("Button %d pushed - output now: %s\n",
|
53
|
+
button, (outputs [button] == 0) ? "Off" : "On") ;
|
54
|
+
}
|
55
|
+
|
56
|
+
while (digitalRead (PIFACE_BASE + button) == LOW)
|
57
|
+
delay (1) ;
|
58
|
+
}
|
59
|
+
|
60
|
+
|
61
|
+
/*
|
62
|
+
* start here
|
63
|
+
*********************************************************************************
|
64
|
+
*/
|
65
|
+
|
66
|
+
int main (void)
|
67
|
+
{
|
68
|
+
int pin, button ;
|
69
|
+
|
70
|
+
printf ("Raspberry Pi wiringPi + PiFace test program\n") ;
|
71
|
+
printf ("===========================================\n") ;
|
72
|
+
printf ("\n") ;
|
73
|
+
printf (
|
74
|
+
"This program reads the buttons and uses them to toggle the first 4\n"
|
75
|
+
"outputs. Push a button once to turn an output on, and push it again to\n"
|
76
|
+
"turn it off again.\n\n") ;
|
77
|
+
|
78
|
+
// Always initialise wiringPi. Use wiringPiSys() if you don't need
|
79
|
+
// (or want) to run as root
|
80
|
+
|
81
|
+
wiringPiSetupSys () ;
|
82
|
+
|
83
|
+
piFaceSetup (PIFACE_BASE) ;
|
84
|
+
|
85
|
+
// Enable internal pull-ups & start with all off
|
86
|
+
|
87
|
+
for (pin = 0 ; pin < 8 ; ++pin)
|
88
|
+
{
|
89
|
+
pullUpDnControl (PIFACE_BASE + pin, PUD_UP) ;
|
90
|
+
digitalWrite (PIFACE_BASE + pin, 0) ;
|
91
|
+
}
|
92
|
+
|
93
|
+
// Loop, scanning the buttons
|
94
|
+
|
95
|
+
for (;;)
|
96
|
+
{
|
97
|
+
for (button = 0 ; button < 4 ; ++button)
|
98
|
+
scanButton (button) ;
|
99
|
+
delay (5) ;
|
100
|
+
}
|
101
|
+
|
102
|
+
return 0 ;
|
103
|
+
}
|