capoblo 0.1.0 → 0.1.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/.gitignore +2 -1
- data/bin/capoblo +1 -0
- data/lib/capoblo/arduino_moves.rb +136 -134
- data/lib/capoblo/arduino_sensors.rb +28 -26
- data/lib/capoblo/interface_connection.rb +25 -23
- data/lib/capoblo/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bf335625e6367c5ba888ff2911dd5b1e95ba1ddf
|
4
|
+
data.tar.gz: f86a3ca78e4d9ad203d50ac5fd864cf254108441
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fb5e9f11bf2df79a26777787ff50e56ff29b690518ad3bad5510f70277fee7ad9009b8d8728b61af083b7722db7cdc8fe077c1107cef5c382514b390603b949a
|
7
|
+
data.tar.gz: 1940f520c5c3cc4382619feb4d3d070e10f263af5652ce698616c47de47bd48a24b4f647e6dcebb51a6c6fbde2191914fe92755f8cae949a363d67afe3f1eab7
|
data/.gitignore
CHANGED
data/bin/capoblo
CHANGED
@@ -1,164 +1,166 @@
|
|
1
|
-
|
1
|
+
module Capoblo
|
2
|
+
class ArduinoMoves
|
2
3
|
|
3
|
-
|
4
|
+
attr_accessor :arduino
|
4
5
|
|
5
|
-
|
6
|
-
|
7
|
-
## For Two Motors
|
8
|
-
LEFT_DIGITAL_BACKWARD = 5 # Input3 connected to pin 5
|
9
|
-
LEFT_DIGITAL_FORWARD = 4 # Input4 connected to pin 4
|
10
|
-
LEFT_ANALOG_SIGNAL = 3 # ENB connected to pin 3 of Arduino
|
11
|
-
RIGHT_DIGITAL_BACKWARD = 8 # Input3 connected to pin 5
|
12
|
-
RIGHT_DIGITAL_FORWARD = 7 # Input4 connected to pin 4
|
13
|
-
RIGHT_ANALOG_SIGNAL = 6 # ENB connected to pin 3 of Arduino
|
14
|
-
|
15
|
-
|
16
|
-
def initialize
|
17
|
-
super
|
18
|
-
self.arduino = ARDUINO_ONE
|
6
|
+
MIN_POWER = 60
|
19
7
|
|
20
8
|
## For Two Motors
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
9
|
+
LEFT_DIGITAL_BACKWARD = 5 # Input3 connected to pin 5
|
10
|
+
LEFT_DIGITAL_FORWARD = 4 # Input4 connected to pin 4
|
11
|
+
LEFT_ANALOG_SIGNAL = 3 # ENB connected to pin 3 of Arduino
|
12
|
+
RIGHT_DIGITAL_BACKWARD = 8 # Input3 connected to pin 5
|
13
|
+
RIGHT_DIGITAL_FORWARD = 7 # Input4 connected to pin 4
|
14
|
+
RIGHT_ANALOG_SIGNAL = 6 # ENB connected to pin 3 of Arduino
|
15
|
+
|
16
|
+
|
17
|
+
def initialize
|
18
|
+
super
|
19
|
+
self.arduino = ARDUINO_ONE
|
20
|
+
|
21
|
+
## For Two Motors
|
22
|
+
self.arduino.pin_mode LEFT_DIGITAL_BACKWARD, ArduinoFirmata::OUTPUT
|
23
|
+
self.arduino.pin_mode LEFT_DIGITAL_FORWARD, ArduinoFirmata::OUTPUT
|
24
|
+
self.arduino.pin_mode LEFT_ANALOG_SIGNAL, ArduinoFirmata::OUTPUT
|
25
|
+
self.arduino.pin_mode RIGHT_DIGITAL_BACKWARD, ArduinoFirmata::OUTPUT
|
26
|
+
self.arduino.pin_mode RIGHT_DIGITAL_FORWARD, ArduinoFirmata::OUTPUT
|
27
|
+
self.arduino.pin_mode RIGHT_ANALOG_SIGNAL, ArduinoFirmata::OUTPUT
|
27
28
|
|
28
|
-
|
29
|
+
end
|
29
30
|
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
31
|
+
def run_forward(power = MIN_POWER, times = 0)
|
32
|
+
set_all_forward
|
33
|
+
if times == 0
|
34
|
+
soft_run true, power
|
35
|
+
else
|
36
|
+
soft_run true, power
|
37
|
+
sleep times
|
38
|
+
stop_all
|
39
|
+
end
|
38
40
|
end
|
39
|
-
end
|
40
41
|
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
42
|
+
def run_backward(power = MIN_POWER, times = 0)
|
43
|
+
set_all_backward
|
44
|
+
if times == 0
|
45
|
+
soft_run true, power
|
46
|
+
else
|
47
|
+
soft_run true, power
|
48
|
+
sleep times
|
49
|
+
stop_all
|
50
|
+
end
|
49
51
|
end
|
50
|
-
end
|
51
52
|
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
53
|
+
def rotate_clockwise
|
54
|
+
set_left_forward
|
55
|
+
set_right_backward
|
56
|
+
soft_run
|
57
|
+
end
|
57
58
|
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
59
|
+
def rotate_anticlockwise
|
60
|
+
set_left_backward
|
61
|
+
set_right_forward
|
62
|
+
soft_run
|
63
|
+
end
|
63
64
|
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
65
|
+
def turn_right(times = 3)
|
66
|
+
set_left_forward
|
67
|
+
set_right_forward
|
68
|
+
run(LEFT_ANALOG_SIGNAL, 125)
|
69
|
+
run(RIGHT_ANALOG_SIGNAL, 65)
|
70
|
+
sleep times
|
71
|
+
end
|
71
72
|
|
72
73
|
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
74
|
+
def turn_left(times = 3)
|
75
|
+
set_left_forward
|
76
|
+
set_right_forward
|
77
|
+
run(LEFT_ANALOG_SIGNAL, 65)
|
78
|
+
run(RIGHT_ANALOG_SIGNAL, 125)
|
79
|
+
sleep times
|
80
|
+
end
|
80
81
|
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
82
|
+
def turn_back_right(times = 3)
|
83
|
+
set_left_backward
|
84
|
+
set_right_backward
|
85
|
+
run(LEFT_ANALOG_SIGNAL, 125)
|
86
|
+
run(RIGHT_ANALOG_SIGNAL, 65)
|
87
|
+
sleep times
|
88
|
+
end
|
88
89
|
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
90
|
+
def turn_back_left(times = 3)
|
91
|
+
set_left_backward
|
92
|
+
set_right_backward
|
93
|
+
run(LEFT_ANALOG_SIGNAL, 65)
|
94
|
+
run(RIGHT_ANALOG_SIGNAL, 125)
|
95
|
+
sleep times
|
96
|
+
end
|
96
97
|
|
97
98
|
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
99
|
+
def stop_all
|
100
|
+
run(LEFT_ANALOG_SIGNAL, 0)
|
101
|
+
run(RIGHT_ANALOG_SIGNAL, 0)
|
102
|
+
arduino.digital_write LEFT_DIGITAL_BACKWARD, false
|
103
|
+
arduino.digital_write LEFT_DIGITAL_FORWARD, true
|
104
|
+
arduino.digital_write RIGHT_DIGITAL_BACKWARD, false
|
105
|
+
arduino.digital_write RIGHT_DIGITAL_FORWARD, true
|
106
|
+
end
|
106
107
|
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
108
|
+
private
|
109
|
+
def soft_run(is_continues = false, max_power = 145)
|
110
|
+
if is_continues
|
111
|
+
MIN_POWER.upto(max_power).each do |val|
|
112
|
+
run(LEFT_ANALOG_SIGNAL, val)
|
113
|
+
run(RIGHT_ANALOG_SIGNAL, val)
|
114
|
+
sleep 0.01
|
115
|
+
end
|
116
|
+
else
|
117
|
+
MIN_POWER.upto(max_power).each do |val|
|
118
|
+
run(LEFT_ANALOG_SIGNAL, val)
|
119
|
+
run(RIGHT_ANALOG_SIGNAL, val)
|
120
|
+
sleep 0.01
|
121
|
+
end
|
122
|
+
max_power.downto(MIN_POWER).each do |val|
|
123
|
+
run(LEFT_ANALOG_SIGNAL, val)
|
124
|
+
run(RIGHT_ANALOG_SIGNAL, val)
|
125
|
+
sleep 0.01
|
126
|
+
end
|
127
|
+
stop_all
|
120
128
|
end
|
121
|
-
max_power.downto(MIN_POWER).each do |val|
|
122
|
-
run(LEFT_ANALOG_SIGNAL, val)
|
123
|
-
run(RIGHT_ANALOG_SIGNAL, val)
|
124
|
-
sleep 0.01
|
125
|
-
end
|
126
|
-
stop_all
|
127
129
|
end
|
128
|
-
end
|
129
130
|
|
130
|
-
|
131
|
-
|
132
|
-
|
131
|
+
def run(depending_pin, power = MIN_POWER)
|
132
|
+
arduino.analog_write depending_pin, power
|
133
|
+
end
|
133
134
|
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
135
|
+
def set_left_forward
|
136
|
+
arduino.digital_write LEFT_DIGITAL_BACKWARD, false
|
137
|
+
arduino.digital_write LEFT_DIGITAL_FORWARD, true
|
138
|
+
end
|
138
139
|
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
140
|
+
def set_right_forward
|
141
|
+
arduino.digital_write RIGHT_DIGITAL_BACKWARD, false
|
142
|
+
arduino.digital_write RIGHT_DIGITAL_FORWARD, true
|
143
|
+
end
|
143
144
|
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
145
|
+
def set_all_forward
|
146
|
+
set_left_forward
|
147
|
+
set_right_forward
|
148
|
+
end
|
148
149
|
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
150
|
+
def set_left_backward
|
151
|
+
arduino.digital_write LEFT_DIGITAL_BACKWARD, true
|
152
|
+
arduino.digital_write LEFT_DIGITAL_FORWARD, false
|
153
|
+
end
|
153
154
|
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
155
|
+
def set_right_backward
|
156
|
+
arduino.digital_write RIGHT_DIGITAL_BACKWARD, true
|
157
|
+
arduino.digital_write RIGHT_DIGITAL_FORWARD, false
|
158
|
+
end
|
158
159
|
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
160
|
+
def set_all_backward
|
161
|
+
set_left_backward
|
162
|
+
set_right_backward
|
163
|
+
end
|
163
164
|
|
165
|
+
end
|
164
166
|
end
|
@@ -1,39 +1,41 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
module Capoblo
|
2
|
+
class ArduinoSensors
|
3
|
+
attr_accessor :arduino, :front_distance, :rear_distance
|
3
4
|
|
4
|
-
|
5
|
-
|
6
|
-
|
5
|
+
ULTRASONIC_TRIGGER = 11
|
6
|
+
ULTRASONIC_ECHO = 12
|
7
|
+
AVOIDANCE_SENSOR_PIN = 2
|
7
8
|
|
8
9
|
|
9
|
-
|
10
|
-
|
11
|
-
|
10
|
+
def initialize
|
11
|
+
super
|
12
|
+
self.arduino = ARDUINO_ONE
|
12
13
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
14
|
+
self.arduino.pin_mode ULTRASONIC_TRIGGER, ArduinoFirmata::OUTPUT
|
15
|
+
self.arduino.pin_mode ULTRASONIC_ECHO, ArduinoFirmata::INPUT
|
16
|
+
self.arduino.pin_mode AVOIDANCE_SENSOR_PIN, ArduinoFirmata::INPUT
|
17
|
+
end
|
17
18
|
|
18
19
|
|
19
|
-
|
20
|
-
|
21
|
-
|
20
|
+
def front_distance
|
21
|
+
@front_distance = 0
|
22
|
+
## For senfor is reading
|
22
23
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
24
|
+
arduino.digital_write ULTRASONIC_TRIGGER, false
|
25
|
+
sleep 0.005
|
26
|
+
arduino.digital_write ULTRASONIC_TRIGGER, true
|
27
|
+
sleep 0.01
|
28
|
+
arduino.digital_write ULTRASONIC_TRIGGER, false
|
28
29
|
|
29
30
|
|
30
|
-
|
31
|
-
|
31
|
+
puts arduino.sysex 0x74, [ULTRASONIC_ECHO, 1]
|
32
|
+
end
|
32
33
|
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
34
|
+
def rear_distance
|
35
|
+
@rear_distance = arduino.digital_read 2
|
36
|
+
@rear_distance
|
37
|
+
end
|
37
38
|
|
38
39
|
|
40
|
+
end
|
39
41
|
end
|
@@ -1,29 +1,31 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
#
|
4
|
-
#
|
5
|
-
|
6
|
-
|
7
|
-
|
1
|
+
module Capoblo
|
2
|
+
class InterfaceConnection
|
3
|
+
#simplest ruby program to read from arduino serial,
|
4
|
+
#using the SerialPort gem
|
5
|
+
#(http://rubygems.org/gems/serialport)
|
6
|
+
require "rubygems"
|
7
|
+
require "arduino_firmata"
|
8
|
+
require 'rubyserial'
|
8
9
|
|
9
|
-
|
10
|
+
#require "date"
|
10
11
|
|
11
|
-
|
12
|
-
|
12
|
+
attr_accessor :port_str, :baud_rate, :data_bits, :stop_bits, :parity
|
13
|
+
#params for serial port
|
13
14
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
15
|
+
def initialize
|
16
|
+
super
|
17
|
+
self.port_str = "/dev/ttyACM0" #may be different for you
|
18
|
+
self.baud_rate = 9600
|
19
|
+
self.data_bits = 8
|
20
|
+
self.stop_bits = 1
|
21
|
+
self.parity = SerialPort::NONE
|
22
|
+
end
|
22
23
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
24
|
+
def self.get_interface
|
25
|
+
conn = InterfaceConnection.new
|
26
|
+
arduino = ArduinoFirmata.connect conn.port_str
|
27
|
+
arduino
|
28
|
+
end
|
28
29
|
|
30
|
+
end
|
29
31
|
end
|
data/lib/capoblo/version.rb
CHANGED