ROS1 repository in the https://github.com/Pet-Series Git-Organizations.
- Containing a ROS1-package.
- For a ROS2 package, please visit https://github.com/Pet-Series/pet_ros2_lcd_pkg
ROS1-package that publish text, via ROS1-topics, on an physical I2C-Display.
This packages also contains a ROS1 test publisher.
Display any string on the LCD-Display via ROS1-topics. * ROS1-topic `lcd_display/row1` => LCD-display row1 * ROS1-topic `lcd_display/row2` => LCD-display row2 |
flowchart LR
A(topic: lcd_display/row1)-->|Subscribe| C[node: Ros_lcd_node]
B(topic: lcd_display/row1)-->|Subscribe| C
C -->|i2c| D[hardware: LCD1602 display]
- Hardware: Display LCD1602A (LCD2040) LCD Display - 16x2 Character LCD Backlight.
- Hardware: I²C interface PC8574T - Piggyback on the backisde of the display.
- Hardware: I²C wire between the PC8574T and the Raspberry Pi.
- Hardware: Raspberry Pi (aka. Target System)
- Operating system: Linux/Raspian Buster (based on Debian 10)
- Middleware: ROS 1.0 Melodic
$ cd <your ROS-workspace>
$ git clone https://github.com/Pet-Series/ros_lcd_driver.git
$ catkin build ros_lcd_driver
-
Launch main ROS-system (on the Target System)
$ roscore
-
Launch the the LCD-display-driver-node (on the Target System)
There is two ways to launch the LCD-display-driver-node-subscriber (select ONE of them)-
Launch alternative: Via a launch file (recommended)
$ roslaunch ros_lcd_driver ros_lcd_driver.launch
Note:warning: By using the .launch file you could
<remap>
existing topic-names to the generic topic-names used in this implementation. -
Launch alternative: Direct launch the python node.
$ rosrun ros_lcd_driver lcd_driver_node.py
-
These steps are only for verification and not necessary.
- Make sure that the node/topics is up and running.
$ rostopic list /lcd_display/row1 /lcd_display/row2
- Investigate the node/topics.
$ rostopic info /lcd_display/row1 Type: std_msgs/String Publishers: None Subscribers: /lcd_display $ rosmsg show std_msgs/String string data
Publish your first message on the display
- "Manually" via command line:
$ rostopic pub /lcd_display/row1 std_msgs/String "data: 'Hello LCD World'"
- Via provided test publisher:
row1 = current date-time. Example:
$ rosrun ros_lcd_driver test_publisher.py
11 Mar 19:20:36
row2 = seconds since start. Example:Run 56.00 Sec
Modify, the provided test publisher, or create your own publisher to suit your needs.
- Repo. owner: "SeniorKullken" stefan.kull@gmail.com
- Folder contributor: "Kullken" karl.viktor.kull@gmail.com