surface
This commit is contained in:
		| @@ -0,0 +1,12 @@ | ||||
| Metadata-Version: 2.1 | ||||
| Name: arduino-bridge | ||||
| Version: 0.0.0 | ||||
| Summary: TODO: Package description | ||||
| Home-page: UNKNOWN | ||||
| Maintainer: koray | ||||
| Maintainer-email: koray@todo.todo | ||||
| License: TODO: License declaration | ||||
| Platform: UNKNOWN | ||||
|  | ||||
| UNKNOWN | ||||
|  | ||||
| @@ -0,0 +1,16 @@ | ||||
| package.xml | ||||
| setup.cfg | ||||
| setup.py | ||||
| ../../build/arduino_bridge/arduino_bridge.egg-info/PKG-INFO | ||||
| ../../build/arduino_bridge/arduino_bridge.egg-info/SOURCES.txt | ||||
| ../../build/arduino_bridge/arduino_bridge.egg-info/dependency_links.txt | ||||
| ../../build/arduino_bridge/arduino_bridge.egg-info/entry_points.txt | ||||
| ../../build/arduino_bridge/arduino_bridge.egg-info/requires.txt | ||||
| ../../build/arduino_bridge/arduino_bridge.egg-info/top_level.txt | ||||
| ../../build/arduino_bridge/arduino_bridge.egg-info/zip-safe | ||||
| arduino_bridge/__init__.py | ||||
| arduino_bridge/arduino_bridge.py | ||||
| resource/arduino_bridge | ||||
| test/test_copyright.py | ||||
| test/test_flake8.py | ||||
| test/test_pep257.py | ||||
| @@ -0,0 +1 @@ | ||||
|  | ||||
| @@ -0,0 +1,3 @@ | ||||
| [console_scripts] | ||||
| arduino_bridge = arduino_bridge.arduino_bridge:main | ||||
|  | ||||
| @@ -0,0 +1 @@ | ||||
| setuptools | ||||
| @@ -0,0 +1 @@ | ||||
| arduino_bridge | ||||
| @@ -0,0 +1 @@ | ||||
|  | ||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							| @@ -0,0 +1,45 @@ | ||||
| import rclpy | ||||
| from rclpy.node import Node | ||||
| from std_msgs.msg import Int32 | ||||
| import serial | ||||
|  | ||||
| class ArduinoBridge(Node): | ||||
|     def __init__(self): | ||||
|         super().__init__('arduino_bridge') | ||||
|  | ||||
|         self.publisher_ = self.create_publisher(Int32, 'water_level', 10) | ||||
|         self.subscription = self.create_subscription( | ||||
|             Int32, | ||||
|             'servo_angle', | ||||
|             self.servo_callback, | ||||
|             10) | ||||
|  | ||||
|         self.ser = serial.Serial('/dev/ttyUSB0', 9600, timeout=1) | ||||
|  | ||||
|         self.create_timer(0.5, self.read_sensor) | ||||
|  | ||||
|     def read_sensor(self): | ||||
|         if self.ser.in_waiting > 0: | ||||
|             line = self.ser.readline().decode().strip() | ||||
|             if line.startswith('WATER:'): | ||||
|                 level = int(line.split(':')[1]) | ||||
|                 msg = Int32() | ||||
|                 msg.data = level | ||||
|                 self.publisher_.publish(msg) | ||||
|                 self.get_logger().info(f'Water level: {level}') | ||||
|  | ||||
|     def servo_callback(self, msg): | ||||
|         angle = str(msg.data) + '\n' | ||||
|         self.ser.write(angle.encode()) | ||||
|         self.get_logger().info(f'Sent servo angle: {msg.data}') | ||||
|  | ||||
| def main(args=None): | ||||
|     rclpy.init(args=args) | ||||
|     node = ArduinoBridge() | ||||
|     rclpy.spin(node) | ||||
|     node.destroy_node() | ||||
|     rclpy.shutdown() | ||||
|  | ||||
| if __name__ == '__main__': | ||||
|     main() | ||||
|  | ||||
		Reference in New Issue
	
	Block a user