Olinuxino A13 wifi with robot rover

Started by ellecieffe, February 21, 2013, 04:21:54 PM

Previous topic - Next topic

ellecieffe

Hi all,
I have a Olinuxino A13 wifi and would like to use it to control a robot rover, in  modality  "BOT avoiding obstacles" and also "remotely controlled "  (maybe this is not really the purpose for which it was built the card, but I would like to use it on board the rover while working with a software neurofeedback. I hope I explained myself )
In this regard, I bought this Beginner Robot Kits http://www.robot-domestici.it/joomla/component/virtuemart/robot-beginner-kit.
Can you help me explaining what I still need to build the rover ?
how do I have to use the GPIOs?
Sorry for the confusion and   nontechnical language (and also for the bad english  :-[)
thanks

jwischka

Quote from: ellecieffe on February 21, 2013, 04:21:54 PM
Hi all,
I have a Olinuxino A13 wifi and would like to use it to control a robot rover, in  modality  "BOT avoiding obstacles" and also "remotely controlled "  (maybe this is not really the purpose for which it was built the card, but I would like to use it on board the rover while working with a software neurofeedback. I hope I explained myself )
In this regard, I bought this Beginner Robot Kits http://www.robot-domestici.it/joomla/component/virtuemart/robot-beginner-kit.
Can you help me explaining what I still need to build the rover ?
how do I have to use the GPIOs?
Sorry for the confusion and   nontechnical language (and also for the bad english  :-[)
thanks

That's not exactly a simple question. At a minimum, you will use the GPIOs to drive the motor controller. How this happens will probably depend on how the controller needs to be driven - possibly with a PWM, or possibly on/off. You will have to read the datasheet. Likewise, you will use GPIOs to read input from your distance sensors. How you use them will be determined by whether they output analog signals, or digital signals. Again, you will need to read the datasheet. You'll need to know what outputs the sensors give, so that you can correctly receive and interpret them, and what inputs the motor controller expects, so you can generate them - which is something that doesn't appear to be on the site you linked.

ellecieffe

Here  https://www.sparkfun.com/products/9457 one can see
QuoteThe TB6612FNG motor driver can control up to two DC motors at a constant current of 1.2A (3.2A peak). Two input signals (IN1 and IN2) can be used to control the motor in one of four function modes - CW, CCW, short-brake, and stop. The two motor outputs (A and B) can be separately controlled, the speed of each motor is controlled via a PWM input signal with a frequency up to 100kHz.
An example with arduino is this http://bildr.org/2012/04/tb6612fng-arduino/

here https://www.sparkfun.com/products/242 one can see
QuoteInfrared proximity sensor made by Sharp. Part # GP2Y0A21YK has an analog output that varies from 3.1V at 10cm to 0.4V at 80cm. The sensor has a Japanese Solderless Terminal (JST) Connector. We recommend purchasing the related pigtail below or soldering wires directly to the back of the module.

An example with arduino is this http://bildr.org/2011/03/various-proximity-sensors-arduino/

Are these the informations needed?






JohnS

#3
If you want to do this you will have to put a lot of work in to make it happen.

I really mean A LOT.

I don't see the relevance of Arduino but that is up to you.  It's not people here who need the information, it's you.  This is your project.

This is very definitely NOT plug and play.

Get reading datasheets and plan everything.

John

ellecieffe

I know that it is necessary a lot of work, and I intend to implement the project to learn new things, step by step.
When I will complete it, or at least, when I will have some material , of course, I will put in the  network my project, so that other people can benefit from my experiences.

Isn't this the spirit of the Open Source?

Indeed, I have not asked anyone to do the project for me, but only a few tips (or links,or tutorials,etc..) to get a general idea on what to do. I posted the link with the Arduino examples to give an idea of what I wanted to do, but with olinuxino.

JohnS

It should keep you busy for quite a while - good luck!

John

ellecieffe

QuoteIt should keep you busy for quite a while - good luck!

John
Thanks, buddy ;)

Well. On regard http://bildr.org/2011/03/various-proximity-sensors-arduino/ I was able to connect the red wire(5V) and the black (ground) at pins 1 and 2 of GPIO-2.
So,where  have I to connect the yellow wire? and then what  have I to do?
[ like specified above, I only want a guide to know what to do , or ,better, what to learn ]
In this thread https://www.olimex.com/forum/index.php?topic=429.msg1793#msg1793 there are some guide , are these good?
thanks

jwischka

Quote from: ellecieffe on February 23, 2013, 12:36:11 AM
QuoteIt should keep you busy for quite a while - good luck!

John
Thanks, buddy ;)

Well. On regard http://bildr.org/2011/03/various-proximity-sensors-arduino/ I was able to connect the red wire(5V) and the black (ground) at pins 1 and 2 of GPIO-2.
So,where  have I to connect the yellow wire? and then what  have I to do?
[ like specified above, I only want a guide to know what to do , or ,better, what to learn ]
In this thread https://www.olimex.com/forum/index.php?topic=429.msg1793#msg1793 there are some guide , are these good?
thanks

Just as a bit of input, this type of project is going to be a lot easier using an Arduino - at least for the obstacle avoiding part.  If you're looking for remote control, the A13 is going to be more flexible, but as John mentioned, programming it is going to be a good bit of work.

The datasheets you provided do indeed tell you some of what you need to know - now you need to basically implement routines to take those as inputs, and give them as outputs, and connect the various inputs/outputs to the A13. You'll need to be able to generate a PWM output to control the motors, and you'll need to read an analog input to get the distance from your proximity sensors. And you'll probably need to build some external circuitry to make it all work together.

As John said, good luck!

ellecieffe

Ok, I understand.
Considering that I do this for fun and to learn, and considering that I have a limited budget I will try to reach my goal in this way, even if it isn't just the easiest way.

However, I am participating in a contest in which I have the chance to win a arduino2. In this case (and I conclude with this question) could be a good project design this? :
- Arduino that controls the motor driver and receives input from the IR sensor (so that blocks the progress of the rover in the presence of an obstacle)
-A13 that receives commands from the laptop via wifi and sends them to arduino
-A13, which is connected at  an USB webcam (which one?) which transmits the video to laptop

Sorry if I was a bit  insistent in this topic, it is only enthusiasm

jwischka

No apologies necessary.

As far as the video part, I think that'll be the only way you'll get it to work - an arduino obv. won't deal with that. You can do the configuration you describe, but you'll need to figure out how to interface the two boards - in other words, what does "send a command" mean - go from obstacle avoid to "remote control"? If you're talking about remote control, then you'll need to develop some protocol to have the boards talk to each other. If you're talking about remote control + obstacle avoid at the same time, you're going to need to come up with some control scheme to determine what gets preference when and where. But I still think having the Arduino handle the sensors will probably be the easier route.

Do you have experience programming in C?

Quote from: ellecieffe on February 23, 2013, 07:51:22 PM
Ok, I understand.
Considering that I do this for fun and to learn, and considering that I have a limited budget I will try to reach my goal in this way, even if it isn't just the easiest way.

However, I am participating in a contest in which I have the chance to win a arduino2. In this case (and I conclude with this question) could be a good project design this? :
- Arduino that controls the motor driver and receives input from the IR sensor (so that blocks the progress of the rover in the presence of an obstacle)
-A13 that receives commands from the laptop via wifi and sends them to arduino
-A13, which is connected at  an USB webcam (which one?) which transmits the video to laptop

Sorry if I was a bit  insistent in this topic, it is only enthusiasm

ellecieffe

#10
Basically my goal is to make an application for a Brain Computer Interface.  8)
I have an EEG with which I detect the intention of limb movement and based on the translation of the waves generated by neural activity, using a software neurofeedback (openvibe, I think), send commands (how? Good question  ;D) to the rover which (for simplicity) moves in mode CW, CCW or forward. There are two possibilities (in my imagination  :P):
- Connect directly  the EEG to the rover on which to run the software on the A13 (if it is possible, yes in theory https://www.olimex.com/forum/index.php?topic=824.0) [so no webcam and no communication with the laptop]
- Connect the EEG to the laptop where to run openVibe and control the rover from the laptop through the wifi (as in the post above)
Since in practice the rover should be a kind of prototype for an electric wheelchair it is important that it will stop in the presence of obstacles

I know it's a very ambitious project. Actually the main project I'm working on for my thesis is the realization of the EEG. The "phisical" BCI application is a surplus (in fact I might  use  the  applications  already implemented in the neurofeedback SW  ::) )

I know the basics of C + + ( I also know Matlab and a bit of assembly)

Thanks for the help  :)

ellecieffe

UP:

I need some help (guides,tutorials,articles,books,links,posts,wiki,etc....something,what you want) about this, please

Quote
The datasheets you provided do indeed tell you some of what you need to know - now you need to basically implement routines to take those as inputs, and give them as outputs, and connect the various inputs/outputs to the A13. You'll need to be able to generate a PWM output to control the motors, and you'll need to read an analog input to get the distance from your proximity sensors. And you'll probably need to build some external circuitry to make it all work together.

QuoteYou can do the configuration you describe, but you'll need to figure out how to interface the two boards - in other words, what does "send a command" mean

thanks

jwischka

About what? General hardware interfacing, or PWM?

Quote from: ellecieffe on February 26, 2013, 08:16:45 PM
UP:

I need some help (guides,tutorials,articles,books,links,posts,wiki,etc....something,what you want) about this, please

Quote
The datasheets you provided do indeed tell you some of what you need to know - now you need to basically implement routines to take those as inputs, and give them as outputs, and connect the various inputs/outputs to the A13. You'll need to be able to generate a PWM output to control the motors, and you'll need to read an analog input to get the distance from your proximity sensors. And you'll probably need to build some external circuitry to make it all work together.

QuoteYou can do the configuration you describe, but you'll need to figure out how to interface the two boards - in other words, what does "send a command" mean

thanks

ellecieffe

Hi jwischka,
from what I understand, the configuration olinuxino + arduino should be the right choice ... so I'd like to have some tips on interfacing the two boards.
thanks

 

jwischka

Quote from: ellecieffe on February 27, 2013, 05:11:54 PM
Hi jwischka,
from what I understand, the configuration olinuxino + arduino should be the right choice ... so I'd like to have some tips on interfacing the two boards.
thanks



Look for tutorials people have written for interfacing the Beaglebone or RPi with Arduinos - the process will be basically the same, and there are a lot more of those boards out in the wild.