Hello I am a new user!
Let me state right of the bat that I am quite experience with Java, I have been programming for over 3 years and I have finally decided to do a little work with robotics. The problem is that while I have a solid understanding of electronics and electricity I have never set out to work with it, so I need some guidance for this project. Now I have some questions that ultimately will decide whether the NXJ is the right tool for the job so please bare with my cliche questions.
Alright so here are the specifications of what my project will do:
I want to create an "electronic head", what I mean by that is that my "robot" will be a head that sits on a surface(table), it can spin around a fix axis but it cannot move from its position. Now this head will be equipped with a camera(initially, I plan to use two cameras to play around with stereo vision), a microphone(same as the camera, I will end up adding a second microphone for the same reason), and a speaker. The "head"(the brick really) will be controlled via USB by my PC, the computer will do all the processing of information, once the computer has the processed information, it could tell the brick to spin the head, to speak something, but most importantly the brick will send a live feed(the information) to the computer from the cameras and the microphones to be processed.
With that said here are my questions!
According the tutorial on the LeJOS website I can connect the NXJ brick using a USB cable to my PC using streams. My question is: can I have multiple streams, some starting from the PC and some from the brick creating a sort of loop like cycle through a single USB cable? For example the computer telling the brick how to spin the head or what to speak, and the brick telling the computer what it "senses"(sending a live feed from the cameras and the microphones) in parallel(multithreading).
Let me make the above clear, the brick must be able to send the information from multiple cameras and multiple microphones to the PC and be able to receive information on how to behave through one USB cable.
If that is possible than regardless of price, what would be the best choice for high efficiency cameras, microphones and speakers that work best with the NXJ? What would be the best API's/Frameworks to process the feeds from the camera, microphone and speaker