I am new to the whole robotics thing, but I am not new to electronics and programming. I have been reading the forums here for a little while and have answered some of my own questions through this forum, but I can’t seem to find an answer to one of them. I’ve used the search and it seems to not get me the results I am looking for so here it is:
Is there a way to make the atom a slave to a PC program?
I ask this question because, I feel that as my yearning for making my robot more and more complex that I will eventually run out of memory space on the controller and would then like to use it for it’s ability to send the data from the digital I/O’s to the program running on the PC.I would then have the program send the commands back to the board. Reasoning for running out of memory on the board is that, a program that I have created for a senior project, is self adapting through a very lengthy amount of code and in essence creates it’s own code for handling problems based on past decisions, thus the program will grow in size on its own. Long winded I know but any help would be appreciated.
if i understand what your asking me i think that what u need is a ssc32 serial servo controller. u can connect it to your atom through a bot board 2 and all your programs will be held on your pc.
Sounds like an interesting project. I think I understand what you are wanting/asking. If you use an Atom, you’ll still need to put a program in it. You can’t just send commands directly to it and get the results your looking for. For instance, you can’t just tell the Atom to read CH1 on the A/D and send the results to you. If anything, you’ll have to write a program for the Atom that will accept commands from the PC, execute them and send the results (if any) to the PC. Depending on what all you are wanting to control/do, you may just need a SSC-32, but it has a limited command set.
You much want to consider a Pico ATX motherboard. There are some pretty powerful one out there.
Sure there is, the atom is no different in this respect than any other microcontroller. What is required is to create a communications protocol or command set that allows a program hosted on the PC to interact with a program running on the atom.
For example say the atom had a couple servo outputs using it’s hservo command, a couple ultrasonic sensors, some irpd sensors, and I don’t know say a couple contact sensors (bumper switches). Now you define a couple commands to let you ask the atom (read) the value of any sensor or send the servo outputs to a position (write). At the minimum all the program on the atom does is wait for commands from the serial port and then execute those commands. A more advanced program could be scanning those sensors all the time, buffering the data in case your host asked for it, and doing analysis on the data looking for conditions where it might need to send the servos to neutral or make the buzzer beep or whatever.
Think about how the ssc-32 operates… you send commands and read status information back. All that is required is for you to define a set of tasks you want the atom to do and come up with a way to pass related information back and forth with it.
Thanks for the help everyone. I’ll keep everyone updated and create a site for the project once I have the logic rewritten for the Atom and I have my two arms working correctly. I hope to one day apply this to a Johnny 5 so that it can be mobile.
The basic logic behind this is:
Robot searches for an object
Robot identifies object
Robot picks up object
Robot places object in the correct bin.
The program will write itself for the most part when it encounters an object it is trying to pick up. Not everything in the world is a block, so when it encounters let say a ball. The program will then through trial and error, learn how to pick up a ball without it rolling away. The program will then hopefully, know how to pick up the ball the next time more quickly and with less error. It will then find the correct bin that the ball belongs to, by identifying the shape it has in the gripper and the object that is pictured on the bin and place it in the bin.