Introduction: Barcode Reading Using Roborealm (Output on Arduino LCD)

This Instructable shows how to create a Barcode Reader using only a webcam together with Roborealm and Arduino. The webcam used in this demonstration is the Logitech Quickcam and the LCD screen is labelled, JHD162A.

What you need for this project:
1. Arduino UNO
2. LCD
3. Roborealm
4. Potentiometer

Step 1: Coding the Arduino


First of all, start by coding the Arduino to successfully output words on the LCD. The example of how to interface LCD with Arduino is shown in http://arduino.cc/en/Tutorial/LiquidCrystal . My modified code is attached below. The program basically initializes the LCD and just wait for any input from the serial port. It displays the current received data only resets the buffer when a new set of data is received. The BUFFSIZE is set to 16 because the LCD can only display up to 16 characters per row.

Step 2: The Robofile

For this project, I downloaded the 1 month trial version of Roborealm from their website (http://www.roborealm.com ). To connect the Arduino, you have to use the Serial function on Roborealm.

Robofile
__________________________________________________________
<head><version>2.42.6</version></head>
<Barcode>
   <check_ean_8>TRUE</check_ean_8>
   <check_codabar>FALSE</check_codabar>
   <check_maxicode>TRUE</check_maxicode>
   <require_crc>FALSE</require_crc>
   <check_code_39>TRUE</check_code_39>
   <check_orientation>TRUE</check_orientation>
   <check_upc_e>TRUE</check_upc_e>
   <check_i2of5>FALSE</check_i2of5>
   <check_upc_a>TRUE</check_upc_a>
   <check_code_128>TRUE</check_code_128>
   <check_ean_13>TRUE</check_ean_13>
</Barcode>
<If_Statement>
   <comparison_1>16</comparison_1>
   <variable_1>BARCODE</variable_1>
   <comparison_4>-1</comparison_4>
   <comparison_type_4>-1</comparison_type_4>
   <join_2>-1</join_2>
   <value_2>1</value_2>
   <comparison_type_3>-1</comparison_type_3>
   <variable_2>a</variable_2>
   <comparison_3>-1</comparison_3>
   <join_3>-1</join_3>
   <comparison_type_2>3</comparison_type_2>
   <comparison_2>1</comparison_2>
   <has_else>FALSE</has_else>
</If_Statement>
<Serial>
   <flow_control_out_x>FALSE</flow_control_out_x>
   <enable_send_sequence>TRUE</enable_send_sequence>
   <port>COM11 - Standard Serial over Bluetooth link</port>
   <data_bits>7</data_bits>
   <baud>6</baud>
   <flow_control_in_x>FALSE</flow_control_in_x>
   <flow_control_dsr>FALSE</flow_control_dsr>
   <flow_control_cts>FALSE</flow_control_cts>
   <send>[BARCODE]</send>
   <send_only_on_change>FALSE</send_only_on_change>
   <remember_as_default>TRUE</remember_as_default>
</Serial>
<Beep>
  <sequence>500,200</sequence>
  <use_piezo>FALSE</use_piezo>
  </Beep>
  <Speak>
  <say_text>SCANNING COMPLETED</say_text>
  <current_voice>Microsoft Anna - English (United States)</current_voice>
</Speak>
<end_if/>

Attachments

Step 3: Final Demo