0

I'm trying to connect NVIDIA Jetson Nano through serial communication with Arduino Uno via USB, so when my camera, connected to the jetson nano, detect an object the LED turn on, but it's not working. I think my arduino doesn't receive any data from the jetson. If someone can help me with suggestions, or the answer that would be great. Here is my code for arduino and for jetson nano:

Arduino:

char data;
int LED=13;
void setup() {

Serial.begin(9600);
pinMode(LED, OUTPUT);
digitalWrite(LED, LOW);

}

void loop() {

 if (Serial.available() ) { 
  data= Serial.read();
 }
 if(data == 'Y' || data == 'y') {
  digitalWrite(LED, HIGH);
    delay(5000);            
 }
}

Jetson Nano:

#!/usr/bin/python
import jetson.inference
import jetson.utils
import time
import serial
import argparse
import sys

# configure the serial connections (the parameters differs on the device you are connecting to)
ser = serial.Serial(port='/dev/ttyUSB0',baudrate=9600)

# parse the command line
parser = argparse.ArgumentParser(description="Locate objects in a live camera stream using an object detection DNN.", formatter_class=argparse.RawTextHelpFormatter,epilog=jetson.inference.detectNet.Usage())
parser.add_argument("--network", type=str, default="ssd-mobilenet-v2", help="pre-trained model to load (see below for options)")
parser.add_argument("--overlay", type=str, default="box,labels,conf", help="detection overlay flags (e.g. --overlay=box,labels,conf)\nvalid combinations are:  'box', 'labels', 'conf', 'none'")
parser.add_argument("--threshold", type=float, default=0.5, help="minimum detection threshold to use") 
parser.add_argument("--camera", type=str, default="0", help="index of the MIPI CSI camera to use (e.g. CSI camera 0)\nor for VL42 cameras, the /dev/video device to use.\nby default, MIPI CSI camera 0 will be used.")
parser.add_argument("--width", type=int, default=1280, help="desired width of camera stream (default is 1280 pixels)")
parser.add_argument("--height", type=int, default=720, help="desired height of camera stream (default is 720 pixels)")

try:
    opt = parser.parse_known_args()[0]
except:
    print("")
    parser.print_help()
    sys.exit(0)

 # load the object detection network
 net = jetson.inference.detectNet(opt.network, sys.argv, opt.threshold)

 # create the camera and display
 camera = jetson.utils.gstCamera(opt.width, opt.height, opt.camera)
 display = jetson.utils.glDisplay()

# process frames until user exits
while display.IsOpen():
# capture the image
img, width, height = camera.CaptureRGBA()

# detect objects in the image (with overlay)
detections = net.Detect(img, width, height, opt.overlay)

# print the detections
print("detected {:d} objects in image".format(len(detections)))

for detection in detections:
    print(detection)

# render the image
display.RenderOnce(img, width, height)

# update the title bar
display.SetTitle("{:s} | Network {:.0f} FPS".format(opt.network, net.GetNetworkFPS()))

# print out performance info
net.PrintProfilerTimes()


if (detections > 0):

    ser = serial.Serial(port='/dev/ttyUSB0',baudrate=9600)
    time.sleep(2)
    print(ser)
    ser.write('Y')
chaymae kiki
  • 36
  • 1
  • 4
  • 2
    What do you mean with "not working"? Please provide detailed information about your problem and what you did try before posting. Please, check [how-to-ask](https://stackoverflow.com/help/how-to-ask) a question for more details. – alan.elkin May 02 '20 at 00:21

1 Answers1

0

as alan.elkin mentioned before. You need to point out the problem. Nevertheless I would debug your problem as follows:

  • check only the serial communication between both devices. I would advice to remove any other logic in your python script. ( Object detection with Camera)

  • review your connection setup. Common problems are : no common GND for both devices, different logic level( most of Arduinos operate at 5V and Jetson Nano at 3.3V)

  • review your serial communication configuration, Baudarte, parity bit.. etc

  • If you have an Oscilloscope, check the Pins sending data . You should see the signal toggling

hope this gives you a hint how to identfy your problem

Mono Brezel
  • 133
  • 1
  • 2
  • 6