rpi_photocell 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: a2ea1c123b7590b31ecafd08d9f68fac7eb0bdf0
4
+ data.tar.gz: f8334bdd05eb38b666a573dcdfe3d395c704432e
5
+ SHA512:
6
+ metadata.gz: 75eee578b9e217e0dab5866b7a7d8fa10cd3ad63c3a9a6a8be4c6c770fa43426083fbc199348b1c46e30fbb580715547b410900d250eda4485e304b30dd07eae
7
+ data.tar.gz: 0e510e52351da01895d053f21a985b7cf6ae21ef09e7495457dddefd0ef2819c24bc1ecd0c800af43bf5a23203585b4f714524f900eeecdf3073e9a07ea0e194
checksums.yaml.gz.sig ADDED
Binary file
@@ -0,0 +1,97 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # file: rpi_photocell.rb
4
+
5
+ require 'pi_piper'
6
+
7
+ # To use this gem you will need the following:
8
+ #
9
+ # * a Raspberry Pi
10
+ # * an MCP3008 10-bit Analog-to-Digital Converter (ADC)
11
+ # * a Photoresistor https://en.wikipedia.org/wiki/Photoresistor
12
+
13
+
14
+ class RPiPhotocell
15
+
16
+ def initialize(pin: 0, clock: 18, dout: 23, din: 24, cs: 25)
17
+
18
+ @adc_pin = pin
19
+
20
+ a = [clock, dout, din, cs]
21
+ unexport_all a
22
+
23
+ @clock = PiPiper::Pin.new :pin => clock, :direction => :out
24
+ @adc_out = PiPiper::Pin.new :pin => dout
25
+ @adc_in = PiPiper::Pin.new :pin => din, :direction => :out
26
+ @cs = PiPiper::Pin.new :pin => cs, :direction => :out
27
+
28
+ at_exit do
29
+
30
+ # to avoid "Device or resource busy @ fptr_finalize - /sys/class/gpio/export"
31
+ # we unexport the pins we used
32
+
33
+ unexport_all a
34
+ end
35
+
36
+ end
37
+
38
+ def read()
39
+ read_adc(@adc_pin, @clock, @adc_in, @adc_out, @cs)
40
+ end
41
+
42
+ private
43
+
44
+ def read_adc(adc_pin, clockpin, adc_in, adc_out, cspin)
45
+
46
+ cspin.on
47
+ clockpin.off
48
+ cspin.off
49
+
50
+ command_out = adc_pin
51
+ command_out |= 0x18
52
+ command_out <<= 3
53
+
54
+ (0..4).each do
55
+ adc_in.update_value((command_out & 0x80) > 0)
56
+ command_out <<= 1
57
+ clockpin.on
58
+ clockpin.off
59
+ end
60
+
61
+ result = 0
62
+
63
+ (0..11).each do
64
+ clockpin.on
65
+ clockpin.off
66
+ result <<= 1
67
+ adc_out.read
68
+ if adc_out.on?
69
+ result |= 0x1
70
+ end
71
+ end
72
+
73
+ cspin.on
74
+
75
+ result >> 1
76
+ end
77
+
78
+ def unexport_all(pins)
79
+
80
+ pins.each do |pin|
81
+
82
+ next unless File.exists? '/sys/class/gpio/gpio' + pin.to_s
83
+
84
+ File.write '/sys/class/gpio/unexport', pin
85
+
86
+ end
87
+
88
+ end
89
+ end
90
+
91
+
92
+ if __FILE__ == $0 then
93
+
94
+ RPiPhotocell.new.read
95
+
96
+ end
97
+
data.tar.gz.sig ADDED
@@ -0,0 +1 @@
1
+ FqO*V�~�͹LY�> ������L��f�K_2{t|3�ZF�Y&� ��)w�� �2��z3��P/o����q���;m]XK�z��rkJ��)6�l�f`�Ù�����9����� ����||���]�n� p����pXy@I��#,Q�c^�+ܦN���wEu㞋L6'D�A_Y�@x?�����w~�K��D_����_C�6�D౒i��;ԙ%��K��,��A�>8�;X4����¢���۳UK���zkbC����8i
metadata ADDED
@@ -0,0 +1,88 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rpi_photocell
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - James Robertson
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain:
11
+ - |
12
+ -----BEGIN CERTIFICATE-----
13
+ MIIDljCCAn6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBIMRIwEAYDVQQDDAlnZW1t
14
+ YXN0ZXIxHjAcBgoJkiaJk/IsZAEZFg5qYW1lc3JvYmVydHNvbjESMBAGCgmSJomT
15
+ 8ixkARkWAmV1MB4XDTE2MDIxOTE5NTMxNFoXDTE3MDIxODE5NTMxNFowSDESMBAG
16
+ A1UEAwwJZ2VtbWFzdGVyMR4wHAYKCZImiZPyLGQBGRYOamFtZXNyb2JlcnRzb24x
17
+ EjAQBgoJkiaJk/IsZAEZFgJldTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
18
+ ggEBANDwlU9NaayvpR7g/KXPUBa5KXGhGWjyXCHLlBaJkmyXZIHWcfPaNTQ6hydE
19
+ FkXZxFMJnlyb4PIFldQKGahsjcThDQ0z16octSxbt+W6DEbh42x/nEteBwaI+NAF
20
+ qaPlur9Fqk6BDFEBxlgbolRhu0g0IDi6LmOuTE0c6dQso/lf6F8M/xokwseFlStz
21
+ P5t9XedEfv2q2lKi5cVfEJpmYvt/fqvt6xiYhRiBLMgB7oQqUNfhb4VrDRNUstdJ
22
+ vpbgnDi60BaLMLkrqeMdTGPGFNIyxjYavLFtJjJj96RFoMQ2mddVkGYInjdYk4SX
23
+ Qkz7jXbOWOIe6G/TfgNL6wHFWV8CAwEAAaOBijCBhzAJBgNVHRMEAjAAMAsGA1Ud
24
+ DwQEAwIEsDAdBgNVHQ4EFgQUBGwht+71J/Gk6S+JGnW6bMWO6CAwJgYDVR0RBB8w
25
+ HYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1h
26
+ c3RlckBqYW1lc3JvYmVydHNvbi5ldTANBgkqhkiG9w0BAQUFAAOCAQEANQqKdc+0
27
+ PsPiHb3msuBBU/GF0/U6wUiHlCymTkTWf/BPKwv6qe6ku0wD/FsO6Ya4bw5WXF3b
28
+ gsjfh3FljpDkua7JmodTzbPp8VCiZGmT1G2EZIc1qFTRyEo5Brd41EQaL0KwetOV
29
+ csCZQnDiBCp9gLEZiJVXwj8pyR3xvXzU+NfoF+64EH7VMVwb+JadfAFySXveYGmX
30
+ +cYx53tv1heql6lxkZhe3+hAnlyg88O0uzMBkn0iM67o3BLVs7i1HVt2bFYgoQzc
31
+ /sp+XQNiQEfBHbrDRdepJjiLhCex10OM4VqvNZIqb+0ANEvl+nqHwhFQ11k4zzKg
32
+ 7otM8+kxj5i8tA==
33
+ -----END CERTIFICATE-----
34
+ date: 2016-02-19 00:00:00.000000000 Z
35
+ dependencies:
36
+ - !ruby/object:Gem::Dependency
37
+ name: pi_piper
38
+ requirement: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - "~>"
41
+ - !ruby/object:Gem::Version
42
+ version: '1.9'
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ version: 1.9.9
46
+ type: :runtime
47
+ prerelease: false
48
+ version_requirements: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - "~>"
51
+ - !ruby/object:Gem::Version
52
+ version: '1.9'
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: 1.9.9
56
+ description:
57
+ email: james@r0bertson.co.uk
58
+ executables: []
59
+ extensions: []
60
+ extra_rdoc_files: []
61
+ files:
62
+ - lib/rpi_photocell.rb
63
+ homepage: https://github.com/jrobertson/rpi_photocell
64
+ licenses:
65
+ - MIT
66
+ metadata: {}
67
+ post_install_message:
68
+ rdoc_options: []
69
+ require_paths:
70
+ - lib
71
+ required_ruby_version: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ required_rubygems_version: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - ">="
79
+ - !ruby/object:Gem::Version
80
+ version: '0'
81
+ requirements: []
82
+ rubyforge_project:
83
+ rubygems_version: 2.4.8
84
+ signing_key:
85
+ specification_version: 4
86
+ summary: Use with a Raspberry Pi + MCP3008 10 bit analog to digital converter + photoresistor
87
+ to detect ambient light intensity.
88
+ test_files: []
metadata.gz.sig ADDED
Binary file