RoboPi+Create
I just wrote a nice long beginning post and It got lost, not sure what happened, but I guess you get logged out if you are writing a post too long, I think. So I guess I will have to piece meal this thread. I will probably be using the RoboPi to replace the Activity board that I now I have on my iRobot Create chassis. I started this thread so as not to clutter up the RoboPi thread in the other forum. Now I feel like I am under some time constraint while writing this post, I feel rushed, more later...
Ray
Ray
Comments
Well I guess I beat the logged off period. Next installment soon...
Ray
I'll keep an eye on it to answer any questions you may have, I am looking forward to seeing what you will do with your Create and a RoboPi.
Looks like the DB-25 socket on the Create can supply 500mA, which is plenty to run RoboPi, and you could use two of the 5V tolerant servo headers to supply RX and TX to the Create. That will let you use a PropPlug to program/debug RoboPi, with another serial (say Tx=P22, Rx=P23) for a second serial connection, to be used to communicate with the Create.
I do have a limited number of assembled and tested boards available, as several others wanted RoboPi... but did not want to solder
Email me at the address in my signature.
Ray
I agree. Sorry, for some reason I thought you would run RoboPi stand-alone...
I use USB powerpacks that have a 2.1A output to power the RoboPi + Raspberry Pi + Wifi on my bots, I am sure there would be more than enough power for a camera module as well.
I'd probably do one of the following:
- get an ribbon cable like yours, only a lot shorter (6" or less) with an IDC-DB25 connector on one end, and a 26 pin female header on the other, and run that to a prototyping board, wiring that to RoboPi via two three-pin servo extension cords - this also gives you an expansion area
- get a solder-lug terminal DB-25-M, and use three one pin male-to-female dupont cables, soldering the male end to the male DB-25 connector, and run Tx, Rx, GND to the servo header on RoboPi - this is the easiest / simplest solution
- get a db25 breakout board from Ebay
I like the Create... I don't like their command module - which appears to be out of stock anyway.
Hope this helps!
I have had my Create for a very long time, and I have tried all kinds of ways to give it lots of processing power. In fact I even tried mounting a mini-itx board, but the problem was the power supply, needed a 12V battery which creates a problem of storage in the cargo bay, let alone a re-charging setup. But the one thing that makes the Create a very useful robot is the re-chargeable battery and the docking station where it gets re-charged automatically, plus it has some built in docking functions. Those are two of the most important things that a robot should have, no matter what size it is IMO.
Ray
I was also looking at, according to the manual, how I would make the connection to the Create, which I usually use the default 57600 BAUD. You have the "SENSOR" pins, but how do you setup the BAUD rate for a selected Rx and Tx pins? I did not see any function for that purpose, in the manual. Since I have created some functions, in PropGCC, for working with the Create, I am now considering using C as the programming language, since I already have functions developed in C. Portability at its best. Just a few observations this morning...
Ray
You are most welcome
Look for a "Pico-PSU" for your mini-ITX board, that should work for you.
I might get the charging dock + battery pack later, that would be very useful - I did not get one now as I think I still have a Roomba dock + battery somewhere. For now, I'll load 12x NiMh, that I will charge externally, and I did buy a couple of extra AA battery shells.
Suggestions are always welcome!
Did you see p.16 of the user manual?
Or p.18 of the build manual?
I talk about how to power RoboPi for stand operation there. That page is due to be updated in the future (including diagrams), but the basic information is there.
For the moment, you could use a USB-Serial cable to connect the Create to the Pi on a different serial port.
I was planning on adding a "slave serial device" capability to the RoboPi firmware, I'll see if I can add that sooner rather than later.
For my Create, I plan on using P22 & P23 for TX, RX respectively (when I get around to it)
Bill
Hmm, I am not sure how I missed p16 in the user manual, maybe it was to early in the morning.
Ray
Depends on what the quad serial port driver supports, as that is what I am planning to support, I suspect it will top out at 115.2kbps.
It will work on P0...P23, I mentioned P22&P23 as that is what I am planning to use for my Create based robot.
Older SimpleIDE+propgcc recompiled for the Pi, with a modified (by Heater) older propeller load. There is a new version I intend to migrate to over the next few weeks.
Yes, I do that now. Please refer to the user manual, you will see Pi C demo code that talks to the firmware on RoboPi.
I can, with properller-load, however you can just use a PropPlug to program the eeprom image into RoboPi before stacking it on the Pi, and use the RoboPiLib.o which implements my API (see user manual)
Already done, please see product page and user manual
RoboPiLib is currently not thread-safe, but could be made to be thread safe fairly easily on the Pi.
I think you need to take a deep breath, and read the user manual so you can see the capabilities RoboPi provides right now (more capabilities coming over time)
There are basically four use cases for RoboPi:
1) RoboPi+Pi, using RoboPi firmware: basically an intelligent peripheral, supporting only the API functions as documented
2) RoboPi+Pi, advanced user - custom firmware written by the user
3) RoboPi stand-alone (no Pi) - can use RoboPiObj API to quickly write bot code
4) RoboPi stand-alone with custom code - whatever you write
No worries!
Hope this helps,
Bill
Ray
mini-itx would give you more processing power, but also more headaches including significantly more difficult power subsystem and much higher rate of battery drain
fyi, sooner or later I will release Ubuntu 32 bit and 64 bit RoboPiLib's, as that is actually where I develop the library so even a mini-itx board could use RoboPi for servo/sensor control.
Bill
Ray
For long posts I use a word processor to compose it and then copy/paste it to the forum. Avoids frustration. Checking the "Remember me" box also helps.
The APDB looks good, however I'd still power the RoboPi+Pi+WiFi+camera combo from a USB powerpack with a 2.1A output as 1A is not enough for Pi+WiFi.
While I don't have an HB-25 yet (it's on my "To Buy" list), it should work great with RoboPi as it uses servo-style pulses to control direction and speed.
See http://www.parallax.com/sites/default/files/downloads/29144-HB-25-Motor-Controller-V1.2.pdf
Use a separate servo connector for each motor, and it should work with the existing RoboPi firmware.
It would be possible to support the "dual mode" (two HB-25's on one servo connector) however that would require a separate driver in a separate cog, and I'd rather use two pins than use up a cog, so I do not plan on supporting that mode.
Auto-recharge will be a fun sub-project for you
Bill
I also noticed that the Eddie Control Board is a final build, I wonder if that means EOL. I always thought that the board was way underpowered for an expandable chassis like the Arlo. This will give me something to think about, should I or shouldn't I? Not even thinking about an Eddie Board.
Ray
Hmm... vision application?
I am not familiar with Eddie, however I must admit to having urgers to build BIGGER robots!
Ray
I have about eight different kinds of WiFi sticks... most do not work without a powered hub. There is a page on the Pi wiki that lists WiFi adapters, shows which ones will work without a powered hub.
The following should work:
- USB battery pack with dual output (1A + 2.1A)
- power hub from the 2.1A output
- power Pi from 1A output
I agree re/ WiFi sticks with external antenna for greater range, I have received two different ones that I need to test.
In a few weeks I'll have time to test the above, I'll report my findings once I do.
Bill
The top left item is the "Power Bank", the top right is a 4 port USB hub that is getting some power from the "Power Bank", and the bottom left is just the end of the RPi, which is also drawing power from the "Power Bank". I was logged into the RPi via mstsc on my windows 7 box where I was able to operate the camera to take the pictures.
So far the RPi end of it looks promising for a remote controlled system, but I sure am getting a lot of cables that will somehow have to be dealt with. The next step I guess will have to be hooking the RPi configuration to the Create just to see if I can get that aspect to work. More to come...
Ray
seen it would work just fine with the Python code I'm posting, you will need to change the serial tx/rx pins in the Spin program to match were they are connected to Bill's board. This Python program
is set to detect the largest orange blob in the web cam video frames. I tried the Raspberry Camera module but I couldn't get all the noise out. In one of the pictures shows both the masked blob and the real video
with the orange ball with a small blue tracking dot in it. It is sending the current tracking position out the serial port to the Propeller. The forum wouldn't let me upload a .py file so the .txt should be saved as .py.
If you are interested I can let you know how I set it up - I took the easy way.
EDIT: I originally posted the wrong Spin program to match the Python program.
I am still waiting for the Arlo power board to materialize, I want to see what exactly it is that is on there. One thing that I hope it has is some way or some connection to the power board, so you can monitor the status of the batteries. The other item I mentioned earlier, an automated re-charging system, but I am not holding my breath on that one.
I have been giving The Arlo chassis some thought, I think I might set it up like the Create, have a separate Propeller controller board for the Arlo which will have an Rx/Tx connection that will provide a means for another control system to log in. That way you would send commands to the Arlo board, and the robot responds. The Arlo board would be in control of the battery status, edge of cliff sensors, check for low level objects, ... etc. Thinking out loud on this...
Ray
whole Stingray robot to follow around a Scribbler2 (controlled by RC) with the ball on top. I wish I had a bit bigger platform but I am trying to make the best out of what I have. Have fun putting this together!
Ray
To find out the usb devices attached I type lsusb in a terminal window.
Looks like a good beginning for computer vision!
I am curious about the noise with the Pi camera module.
Please keep posting updates on how it goes!
Bill
RoboPi uses the Pi serial console (/dev/ttyAMA0) + GPIO#17, so the Pi serial console has to be disabled.
heater's modified propeller_load can be used with SimpleIDE / PropGCC / OpenSpin to develop propeller code on the Raspberry Pi.
For "normal" Pi C code, RoboPropLib implements a protocol over /dev/ttyAMA0 that talks to the RoboPi firmware. See my user manual for more info.
Bill
EDIT: The pictures I posted were using a Python program and opencv2. To get the opencv library for Python use I type sudo apt-get install libopencv-dev python-opencv .
I had slightly noisy video when using the Raspberry Pi camera module but it takes very good still pictures. I am using a Logitech C270 web cam for the above. The serial output consists of a flag of !# and then a byte each showing the x
and y coordinates of the detected object then transmits a word for z showing how large the object is. The video captured is resized to 190 by 140 for faster processing.
Now that I found out that the WiFi uses ttyAMA0, I am considering using the RoboPi as a stand-alone board that would control the Arlo chassis attached sensors. That way I could have a couple of pins for Rx/Tx and they could be connected to the RPi via ttyUSB0. For general information, for this project Spin is good, but C is better, and so all the Propeller related stuff will be in C, and at this point I am thinking that the RPi stuff will be in Python. But things do change, so...
Ray
using a USB webcam so I did what I always do - take the easy way to do it.