Author
Topic: SOR community project? (Read 25497 times)

one thing, i know the board size is supposed to be multiples of 1.5" and the screws 4-40 but was there any specs on how far from the edges? i have read several posts about suggestions but nothing suggested, i heard one post from admin about having it cut "on" the corner of the board to make a C instead of the o. can anyone clear this up for me?

Do Admin's idea. With the half holes on the sides you can support 1 board or several without adding a bunch of standoffs to screw them down to. Also opens more board space for more complicated designs.

Just some notes.... Does that chip of yours comply with the I2C protocol that is defined? Or can it be programmed to comply? if not there needs to be a front end MCU or something to make the chip comply. I'd look it up but my brain is fried because of work. (I still don't understand how 4 pieces of equipment can fail at the same time)

Also... Make sure your PCB traces are sized right for the power output. Your power traces need to be big enough to handle the current load. They might be just in the standard your using but you need to at least look at into to make sure. You don't want to end up blowing a trace on the board.

Good work so far. Keep up the enthusiasm and posting. Get one or two modules done and maybe we can get this off the ground again.

@asellith: i can see how that idea is great but are those holes not weaker? i have no facts about it but the just look weaker as they only have 3/4 the support as the other holes have, and one more thing that was discussed in the other thread was about if we had a 76-76mm (3"^2) and we wanted to mount four of the smaller boards on top we might run into problems with the screw heads bumping into each other, do you think this would be a problem? and lastly, is it a problem if my module doesn't have i2c? i cant really see a use for a motor controller having i2c? i thought it was just going to be plug'n'play type thing?

smash can you make a sketch in microsoft paint or something quick so I ( and probably some others on this topic ) can get a rough Idea on what this robot will look like?will it be a humanoid?wheeled?2 ft tall?5 ft tall?

The point of the module system is to just connect everything to a I2C bus. So each module is a stand alone device. The main controller unit will not have any output but I2C. Now there was discussion of using the Axon. So we could change that because the Axon is so cool. Admin will through more of his weight into the idea if we center it around the Axon.

Now if we want to change to be centered around the axon then we need to possible change the entire design. I don't know the actual dimensions of the axon but maybe we should get Admin behind helping us design a module into the new axon 2 design. Using it as a base and build off it. Unless it has really weird board dimensions.

Or we could just say the axon is the controller and the modules all link together in a weird tower/grid pattern separate and you just connect the two with jumpers. Originally the axon didn't exist or was just coming out so we didn't base it on having such a cool base. So we wanted the modules to link together easily and just a simple connection between each module I.E. a 6 pin connector keyed to not hurt anything if plugged in backwards. That would transfer 5 volts power and the I2C signal to control everything. The only other external connectors would go to the sensors/motors and would all be board specific. We also specified that each module would be independent. So your main processor is not held down by taking sensor readings all the time. When it wants to know something it asks the sonar module what ranges it has stored in memory from the last time. The main controller would just do high end stuff. So lets say we have a servo controller designed to be a hexapod controller. Then the main navigation unit doesn't have to do anything but tell that module go left or rotate 45 degrees. All the hard stuff is precoded by experienced people (us) and it just works.

I prefer the I2C model that will simplify things on the user end. It makes our jobs harder but the noob who wants to make a little robot doesn't have to know that much and can get cooler robots faster. Thats the entire reason for this site anyway. With I2C also we get the ability to make pic and avr versions of each module. So you can still make them at home but don't have to change from your favorite MCU.

Edit: To cover the point about the mounting holes. These things are not holding up a truck. The only point of the screws is to hold it in place. It doesn't support any weight.

I think the point of the I2C was that it wouldn't need a specific MCU. Any one with I2C will work just fine for it. My vote goes into keeping I2C.

Also... everyone does realize that the project isn't about 1 robot right. (A set of modules and protocols and standards)

Quote

smash can you make a sketch in microsoft paint or something quick so I ( and probably some others on this topic ) can get a rough Idea on what this robot will look like?will it be a humanoid?wheeled?2 ft tall?5 ft tall?

because this worries me. Come on people its only like 8 pages . Everyone participating should at least have a decent grasp of the end goal.

Smash essentially all you need is a small AVR. The $50 robot core works fine. You need an MCU to translate the I2C into I/O or PWM what ever you use for the motor controller. I2C works kinda like USB but for chip to chip communications. You send a transmission down the bus and each controller looks for it's unique ID. There are 2 types of devices. Masters and Slaves. Masters either tell slaves to do something (Write) or ask them for data (Read). Slaves just wait for masters to ask them something. There can be several masters on one bus but they all need to play nice with each other. For instance your motor controller would be a slave. It could be a master but its not needed. The master would just say have go this speed and the motor controller says ok. Or the master can ask what speed is the left wheel going and the controller will just say 50% or whatever.

The message protocol is outlined in the I2C document on google docs. The commands sent inside the protocol are yours to figure out. For instance a command could be 11001111 for left wheel (1), forward (1), 00 to finish out the 4 bits and then (1111) for full speed. Or 1000 for half speed. You define those commands in the documentation and give you slave an address that will be unique to itself. So the master can say slave 0xFB01 do command 0xCF. Well I switched to hex by accident but no big deal you get the idea. If you can find a premade I2C PWM generator that fits the frame work Dunk worked out then you can replace the MCU with that IC.

Its not all that hard but a little bit harder then what you initially thought. But your hard work will pay off in the end if this gets off the ground.

Lets say you want to build a robot. You choice the module framework. Then you state what you want. I need 2 ultrasonic sensors, a motor controller, and a servo controller. The designs are already done. You piece it together and get to work on making your robot do stuff instead of the small stuff like how do I read data from my sensor. The plan is to produce the PCB designs and code for these modules and if you want you can assemble some and sell them to people or people can build it themselves. Kind of an open hardware/software platform to make the process of making really cool original robots faster and easier. No sense reinventing the wheel every time.

Keep at it your enthusiasm is making me think about getting back into this project. As soon as I finish moving to my new place and get my current health situation fixed I might join you

wow! in depth much? lol thanks for that asellith, i thought i would've needed a microcontroller to do this as the l298 would. is it possible to have say few things attached to one slave? like have an atmega8 attached to the i2c bus then have it running a few things itself? otherwise to me its wasted i/o ports. i did read somewhere that the master can select to read by saying the slaves name then saying a number for something attached eg. 0xFB01 (atmega) then 0xFB02 (servo controller)? and i keep hearing about this health condition, i figure its something serious? if i am allowed to ask, what is it? its fine if you dont feel like saying i was just curious/worried about our asellith get well soon,smash

sry guys now I read over the whole topic.It seems even cooler!it will be like mindstorms just better.individual modules, can be put together any way you want!everyone (if we get a lot of people) just makes 1 module(BTW is there anyone who would be willing to make a tutorial on how to implement I2C?)then we send them all to one leader and and he tests/puts them together.Inexpensive, good user interface, this could be better than mindstorms!(I know, we first have to design/build the thing )gotta go to school now...

yea that's the idea! but im hoping i can get some more people interested/building modules than just me and asellith. @dellagd for a tutorial on implementing c see i2c 101 and this http://www.instructables.com/id/I2C_Bus_for_ATtiny_and_ATmega/ i completely understand what i2c is and how to implement it and learnt it all in under a day!@project: if we had an mcu for every module wouldn't that mean programming every module? would it not make more sense to have like 3 modules plugged into one mcu which is plugged into the i2c bus, or would it be a one off program when we make the boards? i do want this board to be noob friendly i really do hope more people will pick up an interest tho, maybe if we can get some comps going like admin suggested in the other thread like a "best module design wins $50" or something along those lines...but im defiantly going to give this project my all and make a few modules as i think this idea is a really good one that has not been done before.

yea that's the idea! but im hoping i can get some more people interested/building modules than just me and asellith. @dellagd for a tutorial on implementing c see i2c 101 and this http://www.instructables.com/id/I2C_Bus_for_ATtiny_and_ATmega/ i completely understand what i2c is and how to implement it and learnt it all in under a day!@project: if we had an mcu for every module wouldn't that mean programming every module? would it not make more sense to have like 3 modules plugged into one mcu which is plugged into the i2c bus, or would it be a one off program when we make the boards? i do want this board to be noob friendly i really do hope more people will pick up an interest tho, maybe if we can get some comps going like admin suggested in the other thread like a "best module design wins $50" or something along those lines...but im defiantly going to give this project my all and make a few modules as i think this idea is a really good one that has not been done before.

If I have the money I am defiantly willing to build a moduleI don't know what is it, maybe a acceleration sensor, but I'll try to make one

also I was hoping I could help with programming since I have good knolage of C++

the module its self wouldn't be too expensive to make/test prototypes of but it would be the mass production that kicks you in the nads and only gives you an ice pack an hour later if you get what i mean? crappy metaphor i know! im only 14 and i haven't got a job and im going to attempt this so i cant see why half the other "richies" on this forum cant, no offense guys but yea, if this idea takes off sor will be famous! but that's in theory, right?

yeahhopefully this will make sor famous and make admin, you, me and Asellith richimagine how rich the guy who invented mindstorms is?we will be financed to build whatever kind of robot we want! sry, off topic.just had to get that out of my system

nice, im always up for optimism! but i don't think that mindstorms is all that good as you just put blocks together and "hey presto" i got a robot that i made all on my own. there isn't really much room for development as you are tied down to what the have not what you can build. with this project it is open source meaning people will have plans to it so they can build their own modules at their houses as they please to fit their needs. say if i wanted a specific module and i had already bought a full mindstorms kit ($$$) i wouldn't want to start over with real electronics so i would have to go with something different. so what i am saying is that mindstorms is limited to what they've come up with, compared to our idea which is open source anything is possible! always open to expansion, imagine how rich the creators of arduino are?

nice, im always up for optimism! but i don't think that mindstorms is all that good as you just put blocks together and "hey presto" i got a robot that i made all on my own. there isnt really much room for development as you are limited to what the have not what you can build.

I know we wouldn't like that, but regular people would (non roboticists)

you cant classify people as "non-robotocists" everyone is a robotocist in my mind they just haven't been educated yet. and we need to keep this on topic, no more talk about mindstorms or people, unless their me...

@Smash My health problems are all related to the fact I have Crohn's disease. right now I am having complications and doing tests to figure out what else is wrong. But when sick most of the time Hobbies go out the window and I have to spend most of my energy/time keeping my job

MCUs are cheap. So wasted I/O isn't that big a deal. I looked and couldn't find a small 8 pin AVR with I2C. Smallest is 28 pins so package size is still rather large but not a big deal. Lets take your motor controller as an example. The base module has the capacity to run 2 motors. With the MCU dealing with the communication side all on one board. You could include in the board design a header strip that could be an off bus connection. Your original MCU needs to support this in code but the idea is there. So you design the main board and an expansion board. The expansion board holds enough to do lets say 4 more motors. These two boards link together to create 1 modules from the main controllers view point but can be expanded to utilize as much of the MCU as you want. The main issue is that each module needs to have 1 function. So you couldn't add IR sensors to your motor controller because thats outside the scope of that module. You could add optional temp sensors to read the motor drivers temperature and output that on the bus if asked for.

The modules can start of simple but over time as people add to the project they can get more and more complex. So if I need a 2 motor controller I need x amount of parts and the board. but if later I want to add more to it then I just buy the optional parts I need now and solder them to the board. The MCUs code is already there to support it I just need to tell the main controller to use it.

@dellagd This is intended to fill the gab between mindstorms and build it from scratch kinda like we do now. Basically you would start building the $50 robot to get your feet wet and understand the basics then with this system you have the skills to make the modules without needed a ton of coding experience and you can get right into building more complex robots faster and easier. It will also work for more advanced guys to be able to build bigger better cooler stuff to inspire the younger crowd.

exactlywe can sell a starter kit and then you can buy more individual modules as you advance in roboticsthere can be a option to use the graphic interface or make even cooler things by typing your own code

i dibs motor controller and low power stepper!@asellith: im so sorry about the sickness, it must be horrible and for the mcu since one atmega8 here is $6 ($16 if i buy local) i may get some attiny2313's as they're $2 online. but i do see your point about needing one mcu per module and it makes complete sense. but i will try it with both, although i see the at tiny fit for the job as it has a few I/O ports which are more than enough for this project. and not to mention smaller.@dellagd, we could make the $50 robot board as a basic board or something like the arduino as the $50 board is pretty much the same as the arduino except for the usb and more memory but the $50 robot is plug'n'play!!

I think it would be kinda cool to have different cubes each housing different components of the robot (sensors, servos, mcu). Then have little pins (male and female) sticking out of each side of the cube which would be 5v and the i2c bus (you would also need a way to mechanically connect the cubes together). So then all you would have to do would be to stick the cubes together and program.

ya there could be metal plates on the sides of the cubes, some labeled F and some labeled M for female and male ports. there would be magnets surrounding them, ensuring that they stick together and that then go together the right way.I think we and people in the old sor project topic are really on to something.I will make a quick sketch of my idea when I get home

I don't like that idea. Too inflexible. This should be an easy way to start building a robot. That's too similar to Lego. If you want something to click together buy vex. I don't think we should go into the mechanical, but if we do it should be kept seperate from the electronics.