Pin Number | Function |
---|---|
1 | Input 1 (TRIG) |
2 | Output Source / Sink |
3 | Output 2 |
4 | IO GND |
5 | INPUT 2 |
6 | Output 1 |
7 | RX232 TX |
8 | SHIELD |
9 | RS232 RX |
10 | DGND |
11 | Camera 24V DC |
12 | Camera GND |
Part Number | Image Sensor | Interfaces | Included Accessories |
---|---|---|---|
NU03STD | 752 x 480 (VGA) Global Shutter 60FPS 6.0um pixel size | RS232 (Rx, Tx) 4x High Speed IO’s Gigabit Ethernet Integrated Ring Light | Lens protection cover Ethernet Cable Power IO Cable 24V 1.5A Power Supply IP67 Enclosure |
NU03PRO | 752 x 480 (VGA) Global Shutter 60FPS 6.0um pixel size | RS232 (Rx, Tx) 4x High Speed IO’s Gigabit Ethernet HDMI, USB2.0 Integrated Ring Light | Lens protection cover Ethernet Cable Power IO Cable HDMI, USB Cables 24V 1.5A Power Supply |
NU12STD | 1280 x 960 (1.2MP) Global Shutter 54FPS 3.75um pixel size | RS232 (Rx, Tx) 4x High Speed IO’s Gigabit Ethernet Integrated Ring Light | Lens protection cover Ethernet Cable Power IO Cable 24V 1.5A Power Supply IP67 Enclosure |
NU12PRO | 1280 x 960 (1.2MP) Global Shutter 54FPS 3.75um pixel size | RS232 (Rx, Tx) 4x High Speed IO’s Gigabit Ethernet HDMI, USB 2.0 Integrated Ring Ligh | Lens protection cover Ethernet Cable Power IO Cable HDMI, USB Cables 24V 1.5A Power Supply |
NOTE: Development work on 2.0/5.0MP is in progress and will be available soon.
For any further assistance, please contact our application engineer at info@balunstech.com
Download Step File for Standard 3d model
Download Step file for Pro 3d model
Mechanical Drawing for Mounting Plate V1.0, V2.0
Download Step file for Mounting Plate V1.0, V2.0
NUERA standard version is IP67 certified.
External test laboratory to carry out temperature test to evaluate reliability of our NUERA Smart Camera design. Temperature test starts range from 30 degree C to 85 degree C in 5 steps and comes back to -40 degree C in 5 steps. Holding time at each step was 15 minutes and total test duration was 6 hours. During the test camera was powered and streaming the live image to the WebGUI on another laptop connected over Ethernet. Camera functioned properly during the test duration and found no external physical defects after test was over.
Fig.1 Temperature Chamber Test Setup
Fig.2 Temperature Graph
External test laboratory to carry out vibration test to evaluate reliability of our NUERA Smart Camera design. Vibration profile used for the test was Sinewave vibration 1g, 5 – 2000Hz, 1 octave per minute, 4 sweeps per axis (X, Y, Z). During the test camera was powered and streaming the live image to the WebGUI on another laptop connected over Ethernet. Camera functioned properly during the test duration and found no external physical defects after test was over.
Fig.3 Vibration Test Setup
Fig.4 Vibration Test Graph
External test laboratory to carry out shock test to evaluate reliability of our NUERA Smart Camera design. Shock profile used was 10g, 11msec, 18 shocks (6 shocks per axis). During the test camera was powered and streaming the live image to the WebGUI on another laptop connected over Ethernet. Camera functioned properly during the test duration and found no external physical defects after test was over.
Fig.5 Shock Test Setup
Fig.6 Shock Test Graph (+ve)
Fig.6 Shock Test Graph (-ve)
During design phase, Balunstech has carefully selected all the components for NUERA Smart Camera and can confirm that all the components used are ROHS compliant.
NUERA by design is ESD protected but still it is recommend to take precautions while handling the camera in the field.
Balunstech has carried out emission tests on NUERA Smart Camera and found results well with in the limits defined by CE and FCC. Pre-compliance testing is in progress and soon will be going for final certification test. NUERA Smart Camera is expected to get CE/FCC certification by approx. Dec 2018 time frame.
Balunstech will handle RMA within warranty period. Customers need to send detailed description of defect & the operating setup then return the product to Balunstech’s office (Bangalore, India) for further investigation. If Balunstech finds that the camera is defective, will do detailed examination of the product to determine the nature of defect and at its discretion would repair or replace the defective parts.
Here are ten advantages of using NUERA Smart Camera:
Build your Vision System using Balunstech’s NUERA Smart Camera!
Congratulations on getting your NUERA Smart Camera!
Let us unbox the NUERA and explore a little bit.
In the package you will get following items:
Connect the RJ45 end of Ethernet cable to your PC/Router/Ethernet Switch and circular connector end(for NUERA standard) to NUERA Smart camera. For NUERA Pro version standard, RS45 cable will be used.
Fig 1. NUERA Ethernet Cable (for standard model)
It is assumed that you have access to a 230V AC plug to power NUERA using the 24V DC power adapter. Connect NUERA power cable’s circular end to NUERA and other end to power adapter 2Pin connector. In addition to power lines in the Power-IO socket in NUERA, you can access 2x general purpose input, 2x general purpose output and RS232 (RX, TX). Complete pin-out details are available here.
By default IP address of the NUERA Smart Camera is set to 192.168.1.221. To access inbuilt webserver called WebGUI of the Smart Camera, either PC should be connected to the Smart Camera directly through an Ethernet crossover cable or to an Ethernet switch/Local network, to which Camera is connected to. If the camera is directly connected to the PC then, the PC should be configured with static IP address. In Ubuntu, you can do this by following steps given below:
Fig 2. Network Setting on Ubuntu Linux PC
NOTE: If you plan to work with NUERA Smart camera using Ethernet crossover cable, you can check the ‘Automatically connect to this network when it is available’ option in the General tab.
Once the NUERA Smart camera is powered up, wait for 5-10 seconds, it hosts the WebGUI. You can open WebGUI in your browser by simply entering the NUERA Smart Camera’s IP address (default: 192.168.1.221) in the address bar of any web browser (Google Chrome is the recommended browser).
On the right hand side you will see the live Camera feed and on the left hand side you will see two options:
Fig 3. NUERA Smart Camera WebGUI
Follow the steps mentioned below to install SDK on PC for NUERA Smart Camera:
A 64bit Linux PC with Ubuntu 14.04 Operating Systems is required for the application development for NUERA Smart Camera. Click here to download Ubuntu OS.
If you would like to Install Linux on Windows Operating System then follow the instructions given below else skip and move to next section:
Follow the steps mentioned below to install NUERA IDE:
Fig 1. ssh_config file
Follow steps mentioned below to create / import new project template:
Fig 1. Eclipse IDE – Select File Window
Fig 2. Eclipse IDE – Import Window
Fig 3. Eclipse IDE – Build Project
Follow steps mentioned below to upload the application to NUERA Smart Camera using Eclipse IDE:
Fig 1. Eclipse IDE – Upload to Camera
Fig 2. Eclipse IDE – External Tools Configurations
Fig 3. Eclipse IDE – IP Address Prompt
Fig 4. Eclipse IDE – Username Prompt
Fig 5. Eclipse IDE – Password Prompt
Fig 6. Eclipse IDE – Run Application Prompt
New application can easily be developed using project template for NUERA Smart Camera. Let us take a simple threshold application to create a new application. First, will setup a hard coded threshold value in the application and later will try to configure that using configuration via WebGUI control. Later, based on the requirement one can add Serial interface, TCP communication, GPIO interfaces, etc.
Adding a new image processing API involves three steps as given below:
Open nuera_project_template in Eclipse IDE and go to file src >> image_processing >> process_image.cpp . This can be done in the Project Explorer pane as shown below:
Fig 1. Eclipse IDE Project Explorer
In the process_image.cpp file, scroll to the process_image function. The image processing code should be written in the process_image function as shown below:
Fig 2. Image Processing Code
The arguments of the process_image function are :
Application variables can be used to configure values . The image above demonstrates addition of a simple image processing code. Grayscale-to-Binary conversion is the image processing function added to process_image(). The OpenCV function used is threshold(), to understand threshold(), refer this .
Once you save this file, build the project by right clicking on the Project and then selecting Build Project. After build is completed successfully, you can Upload this project to NUERA (see here how to upload). You can see the corresponding output on the We GUI. WebGUI will show the result image which was stored in output_img buffer.
Fig 3. WebGUI running threshold applications
You may want to control some application variables from the GUI. For example, we may have control over the threshold intensity value given to the threshold function from the GUI. Below are the steps to be followed to introduce such a variable and add the control to the Web GUI.All of the steps can be done within Eclipse nuera_project_template.
Navigate to file src >> application_configurations >> app_variables.hpp. Open the structure app_var and declare the variable that you wish to control from the GUI as shown below:
Navigate to file src >> image_processing >> process_image.cpp. This is where the image processing code is written. You can use the newly declared variable in the process_image() as shown below:
Please note, in the above code, threshold value in the threshold function is the variable ( thresh_val ) we have declared in the previous section. Similarly, any code can be added in the process_image() function with application variables which can be controlled from the WebGUI. And, any number of application variables can similarly be introduced and used.
Variables that do not need WebGUI controls can be declared in process_image.cpp file with local or global scope, whichever is needed.
Open nuera_project_template on Eclipse and go to file src >> application_configuration.xml. Now, add an element for the new variable, following the format of the existing elements, as shown in the example below:
Please note, in the above screenshot, each element has an ID number (‘ id’ ). This number is used as the index of the variable in the application variable structure ( app_var ). Also, the elements in the xml file can take different values for ‘ type’. Below are the different
values of ‘ type’ which can be used and their corresponding data types:
Notice the different types used in the XML file in the screenshot above:
Open file src >> application_configurations >> app_constants.hpp . The ID number of the newly added xml element must be linked to a new #define constant as shown in figure below:
From here on, these #define constant names can be used to access the variable value, which are initialized and updated in app_var structure . For eg., var_list[RESCALE_IMAGE] gives the value of the rescale_image element in the xml.
The next step is to edit the code to get the user-given input from the GUI and update the value of the variable.
Navigate to file src >> application_configurations >> app_config.cpp. Here, use the code format used for the existing variables and add code for the new variables in
the ApplicationConfiguration::process_app_commands() as shown below:
Similarly, to update the application variables, add code using the general format in the ApplicationConfiguration::update_app_variables() as shown in the code below. Give the correct type cast for your new variable.
Now, once you save the files and build the project, the build will complete successfully. Then you can Upload this project to NUERA (Refer Section 3.4 of Getting Started with NUERA to know how to upload your application into NUERA). Open the WebGUI, and go to Application>> SET 1 >> Operator . Here, a control for the newly added application variables should appear. You can now change the value of the variable and click Update, and observe the corresponding output image. The configuration settings will be displayed in the web application as seen in the screenshots below:
NUERA has one Serial (RS232 – Rx, Tx) communication port using which , we can send and receive serial data between NUERA and PC. This can be done by taking out Rx, Tx, GND from Power-IO cable to RS232 port of PC using 3 wire custom cable. If PC do not have an RS232 port, a USB to RS232 adapter can be used.
Navigate to file src >> application >> application.cpp. In the section of the code where global variables are initialized and class objects are instantiated, create an instance of class SerialCommunication named serial_comm. Here, we also define the Baud rate for the UART serial communication. #include
Expand the application() in application.cpp . Here, add the code for serial communication from NUERA. For example, let us write the threshold value of the binary threshold function (which can be changed by user from WebGUI) seen in the previous section. The code is shown below:
Various serial port terminals are available.
For Windows PC:
We recommend Hercules SETUP utility on Windows platform for this facility. It’s freeware, and hence it can be used and shared for free. You can download the software here . After installing the Serial Port Terminal, connect the RS232 to USB cable from I/O module to the PC. Open Device Manager, and find out which COM Port is connected to the I/O module. Now, in the software, open the Serial tab, select the connected COM port, input the required Baud rate and data size and parity if required. Then select Open option.
Fig 1. Serial Terminal
On Ubuntu PC:
Minicom is the most commonly used Serial Port Monitor. The steps to install and use Minicom are mentioned below:
Once you save the code file as mentioned in Step 2 and build the project, the build will complete successfully. Then you can Upload this project to NUERA. In the Serial Port terminals (in Ubuntu / windows, whichever the camera is connected to through the RS232 port), you can see the threshold value being printed continuously. If you update the value of threshold(through GUI), the same will be reflected in the serial port terminal screen. The serial output on Hercules is shown below:
Open terminal on ubuntu and type minicom to open the application. The output on Minicom is shown below:
NUERA Standard / NUERA Pro has inbuilt 2 inputs and 2 outputs, both are fast GPIOs, 24 volt compatible and optically isolated.
One input is dedicated for fast external trigger and other one could be used for application logic. User can control two GPIOs for external device control like for relay, panel lamp, solenoid valve, rejection system, etc
One can easily extend more no. of IOs using external RS232 or Ethernet based IOs extenders.
Following code can be used in the application for setting GPIO outputs:
//to set GPO 1 Set_GPO_1_High(); Set_GPO_1_Low(); //to set GPO 2 Set_GPO_2_High(); Set_GPO_2_Low();
Following code can be used in the application for checking the status of GPIO input:
//to check status of GPI 2 unsigned char input_status = 0; Check_GPI_2_Active_Status(input_status);
NUERA has Gigabit Ethernet on device and can send and receive data to/from another device/PC through TCP sockets. There are two ways of doing this:
In order to create new TCP server/client connection follow simple steps given below:
Navigate to file src >> application >> application.cpp. In the section of the code where class objects are instantiated, create an instance of class TCPCommunication, defining the server port number , buffer size (based on the size of data to be sent/received) and TCP timeout (typically 200 in ms) as shown in image below.
Before writing the application code, the server must first be initialized. This is done in the initialize_settings(). This code first checks whether whether any client wants to listen to the server and then, after a small delay, it enters the server application. The code must be added as shown below:
Expand the application() in application.cpp . Here, add the code shown in the yellow box in the image below:
In this code,
1. check_comm_status() – checks for connection requests from clients and establishes the connection.
2. is_client_connected() – is used to find if the client is connected. In this example, the threshold value of the binary threshold function is sent via TCP to a TCP client (a TCP client software for PC is introduced in Step 5).
Step 4: Close TCP Connection. After communicating with the client, the TCP server must be closed. This is done in the manage_application() as shown below:
Now, once you save this file and build the project, the build will complete successfully. Then you can Upload this project to NUERA and you can observe the corresponding output on Hercules (Refer Section 3.4 of Getting Started with NUERA to know how to upload your application into NUERA).
We recommend Hercules SETUP utility on Windows platform for this facility. You can download the software here. After installing Hercules , connect the PC to the same network as NUERA.
Now, in Hercules, open the TCP Client tab, enter the IP Address of NUERA in Module IP field and the server port number (used in Step 1) in Port field as shown in image below. In the example code, notice server port number is 7895. Then click Connect button. The threshold values will be received by this client and printed as seen in the image below:
NUERA project template offers readily available data server, command server, PLC server, image server in order to exchange different type of information through TCP Communication.
Follow the steps given below to enable PLC server.
The PLC server can be enabled or disabled by using the definition PLC_SERVER_ENABLED in sys_constants.hpp:
In TCP, the server listens for connection requests from clients at a specific port. By default, the Port Number for the PLC server is given in sys_constants.hpp . Navigate to file src >> system_configurations >> sys_constants.hpp. Many constants are defined in this header file. Find PLC_SERVER_PORT. By default, it is defined as 7894. This can be changed as per your requirement. Remember that in Step 4, we
will use this port number as the TCP client end to connect to this PLC server. The Buffer Size and Data Timeout of the data server can also be changed in this file:
Navigate to file src >> application >> application.cpp. Find and open the manage_plc_srvr() . Using this server, we can send control data to a device from NUERA which can be used for applications like starting and stopping of a motor, etc. The PLC server can be enabled or disabled by using the definition PLC_SERVER_ENABLED in sys_constants.hpp . The code is shown below:
Call the send_data() , passing the character array as first parameter and number of characters as second parameter, to send this message through the network to the other device using TCP. The code needs to be added at the location shown below:
Hercules is used here in place of a PLC TCP client. Connect a Windows System to the same network as NUERA. Open Hercules on the Windows System. Go to the TCP Client pane. Set the Module IP as the IP address of the NUERA camera. Set the Port field according to the data port as set in Step 2. Then, click Connect button. After a “Connected” message, the data we are sending from the Nuera camera will be received by the TCP client and displayed on the screen as shown below:
NUERA project template offers readily available data server, command server, PLC server, image server in order to exchange different type of information through TCP Communication.
Follow simple steps given below to configure Image server.
The image server can be enabled or disabled by using the definition IMG_SERVER_ENABLED in sys_constants.hpp.
In TCP, the server listens for connection requests from clients at a specific port. By default, the Port Number for the Image server is given in sys_constants.hpp. Navigate to file src >> system_configurations >> sys_constants.hpp. Many constants are defined in this header file. Find IMG_SERVER_PORT. By default, it is defined as 7891. This can be changed as per your requirement. Remember that in Step 4, we
will use this port number as the TCP client end to connect to this image server. The Buffer Size and Data Timeout of the data server can also be changed in this file.
Navigate to file src >> application>> application.cpp. Call the send_image_tcp(), passing the image(Opencv Mat) which has to be sent to the TCP Client or the other device using TCP. The code needs to be added at the location shown below:
The application GUI which runs on the PC can be added with a TCP client to receive the image sent by NUERA and display the same.
NUERA project template offers readily available data server, command server, PLC server, image server in order to exchange different type of information through TCP Communication.
For the purpose of communicating data with a PC, a data_server has been created in the NUERA project template. As shown in the following steps, by simply enabling the data server and calling the send_data(), you can program NUERA to send data to PC.
The data server can be enabled or disabled by defining DATA_SERVER_ENABLED as true or false respectively in sys_constants.hpp.
In TCP, the server listens for connection requests from clients at a specific port. By default, the Port Number for the Data server is given in sys_constants.hpp. Navigate to file src >> system_configurations >> sys_constants.hpp. Many constants are defined in this header file. Find DATA_SERVER_PORT. By default, it is defined as 7892. This can be changed as per your requirement. Remember that in Step 4, we
will use this port number as the TCP client end to connect to this data server. The Buffer Size and Data Timeout of the data server can also be changed in this file.
Navigate to file src >> application >> application.cpp. Goto manage_data_srvr() . Add the message you want to send through TCP to a character array. An example is shown in image below:
Call the send_data(), passing the character array as first parameter and number of characters as second parameter, to send this message through the network to the other device using TCP. The code needs to be added at the location shown below:
Connect a Windows System to the same network as NUERA. Open Hercules on the Windows System. Go to the TCP Client pane. Set the Module IP as the IP address of the NUERA camera. Set the Port field according to the data port as set in Step 2. Then, click Connect button. After a “Connected” message, the data we are sending from the Nuera camera will be received by the TCP client and displayed on the screen as shown below:
NUERA project template offers readily available data server, command server, PLC server, image server in order to exchange different type of information through TCP Communication.
Follow simple steps given below to configure Command Server.
The command server can be enabled or disabled by using the definition CMD_SERVER_ENABLED in sys_constants.hpp.
In TCP, the server listens for connection requests from clients at a specific port. By default, the Port Number for the Command server is given in sys_constants.hpp. Navigate to file src >> system_configurations >> sys_constants.hpp. Many constants are defined in this header file. Find CMD_SERVER_PORT. By default, it is defined as 7893. This can be changed as per your requirement. Remember that in Step 4, we will use this port number as the TCP client end to connect to this command server. The Buffer Size and Data Timeout of the data server can also be changed in this file.
Navigate to file src >> application >> application.cpp. Find and open the manage_cmd_srvr(). The Command server can be used to receive commands from the user, and perform the command appropriately. The code is shown below:
Call the recv_data() , passing the character array as first parameter and number of characters as second parameter, to receive a command through the network from the other device using TCP.
Connect a Windows System to the same network as NUERA. Open Hercules on the Windows System. Go to the TCP Client pane. Set the Module IP as the IP address of the NUERA camera. Set the Port field according to the data port as set in Step 2. Then, click Connect button. After a “Connected” message, the data we are sending from Hercules will be received by the NUERA camera and the threshold value is updated as can be seen in the images in web GUI
NUERA Smart Camera also supports Python as programming language. OpenCV functions can be called using Python code. Balunstech provides free project template so that developers can start building their application easily.
NUERA has Embedded RT Linux running (version 4.1.2 with Hardfp) along with Python 3.5m and OpenCV 3.3. One can directly start writing application in Python, no additional installation is required.
One can develop application in Python for NUERA Smart Camera. OpenCV function will be called inside Python code. Balunstech provides free project template so that developer can start easily and build their application.
In this section we will share details about how to configure sensor, capture image, use Serial port, Ethernet, GPIOs, TCP servers, etc. We will be adding details soon.
Balunstech has launched it’s Industrial Fixed Mount Barcode Reader for 1D & 2D (QR Code, Data Matrix) barcodes using it’s NUERA Smart Camera platform. NUERA barcode reader can be used in many applications like packaging inspection, logistics, product identification, etc.
ID Barcode: UPCE, UPCA, EAN8, EAN13, CODE39, CODE128, Interleaved 2of5, ISBN13, Pharma code
2D Barcode : QR code, Data Matrix, PDF-417
Pin Number | Function |
---|---|
1 | Input 1 (TRIG) |
2 | Output Source / Sink |
3 | Output 2 |
4 | IO GND |
5 | INPUT 2 |
6 | Output 1 |
7 | RX232 TX |
8 | SHIELD |
9 | RS232 RX |
10 | DGND |
11 | Camera 24V DC |
12 | Camera GND |
Balunstech offers customized vision based solution for OEM requirements, get in touch with us at info@balunstech.com. For more technical support contact our application engineer at info@balunstech.com.