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
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.
Here https://www.sparkfun.com/products/9457 (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 (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?
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
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.
It should keep you busy for quite a while - good luck!
John
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/ (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
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/ (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!
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
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
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 :)
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
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
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
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.
Hello jwischka. I probably won the arduino but I will get it after next week . In the meantime, could you give me some more information on the management of GPIO for my purpose,please? Maybe starting from the management of the infrared sensor, I think it's easier.
As you may have noticed I have the ideas a little confused. what I really needed is a general overview on the job to do ( and why it is too big). Perhaps you could let me know about some keywords in the way to search the relative documentation and begin to understand something :-[
thanks
Hi,
I was able to blink the green status LED following this post http://olimex.wordpress.com/type/aside/
In this post http://olimex.wordpress.com/2013/03/08/a13-olinuxino-gpio-python-libraries/
I can read
QuoteA13-OLinuXino as any Linux platform can run Python language, what we were missing was GPIO library which to allow Python users to have access to A13-OLinuXino GPIOs.
Now this library is done!
I also found this http://thingswatihavedonewithmyraspberrypi.blogspot.it/2012/10/controlling-bigtrack-motors-with-my.html where there is a Python code able to control the motor drive that I have got...
is this the way?
thanks
I mean, in general, yes. All of the GPIO pins will be different, and may need to be set up differently, of course.
Thank you. I will work on it
Quote from: ellecieffe on March 10, 2013, 03:10:03 PM
Thank you. I will work on it
Yeah - what they're doing there is the right sort of approach, so it's a good starting point. Just expect to change some things moving it over to the A13, and don't expect it to work correctly the first time :).