#robotics | Logs for 2016-02-21

Back
[02:48:59] <rue_house> ok so drilling a 3/4" hole thru 4" of solid aluminum isn't a peice of cake
[02:50:07] <anonnumberanon> it's a piece of aluminum?
[02:50:21] <rue_house> yes
[02:51:44] <rue_house> they are aluminum rollers
[02:51:50] <rue_house> I need a 7/8" hole
[02:51:57] <rue_house> the next step will be borring
[02:55:13] <z64555> rue_house: it isn't, if you don't have enough coolant
[02:55:23] <z64555> or a sharp bit
[02:55:39] <rue_house> or a long enough bit?
[02:55:43] <z64555> that too
[02:55:54] <z64555> oh man.
[02:55:55] <z64555> no
[02:55:57] <z64555> no no no no
[02:56:04] <z64555> Don't try to drill from both sides
[02:56:18] <z64555> I can garuntee you that the holes will not line up
[02:56:22] <rue_house> no
[02:56:30] <z64555> *guarantee
[02:56:42] <rue_house> I have to bore it up to 7/8" anyhow
[02:56:57] <z64555> ok, that gives you a bit of wiggle room
[02:57:13] <rue_house> the tailstock only feeds about 29mm anyhow
[02:57:23] <z64555> lol...
[03:00:09] <anonnumberanon> yOU're using rollers to make something or you are making rollers?
[03:00:40] <anonnumberanon> what diameter if using rollers
[03:01:02] <rue_house> I'm making a pipe bender
[03:01:36] <rue_house> the rollers are about 4" dia
[03:02:45] <anonnumberanon> ah i 've been working with piping all week
[03:03:01] <rue_house> roll bender
[03:03:06] <anonnumberanon> just fixed the aluminum coolant lines to the back of my car, 4 of them were blown due to the cold
[03:03:15] <anonnumberanon> and having bare water in them
[03:06:10] <anonnumberanon> I can't wait to bake my pipe and see how it turns out tomorrow.
[03:28:51] * z64555 has a found memory of a bending jig he used to make brass hoops
[03:28:54] <z64555> *fond
[03:37:15] <Jak_o_Shadows> Ok, so does anybody have any general tips on using state machines on uCs? The device is an i2c slave that does some stuff
[03:37:54] <rue_bed> you want to make an i2c state machine?
[03:39:53] <Jak_o_Shadows> Um. THe i2c bit is kinda coincidental I suppose
[03:40:08] <Jak_o_Shadows> It's more I want to do stuff based on recieving some command via i2c
[03:40:22] <Jak_o_Shadows> e.g read soem bits, write some bytes, write some other bytes, read some other bytes
[03:41:07] <Jak_o_Shadows> I THINK I have an idea of how a state machine works (but am open to listening), but I am not quite sure how to implement it
[03:43:42] <anonnumberanon> start by writing it and drawing it on paper and take a picture and show us
[03:46:47] <Jak_o_Shadows> I'm not sure I can :( I think this project has some IP stuff around it
[03:47:37] <anonnumberanon> just copyright the drawing then
[03:48:05] <Jak_o_Shadows> haha.
[03:50:35] <Jak_o_Shadows> Sorry about hte bad picture
[03:50:40] <Jak_o_Shadows> http://www.pasteall.org/pic/show.php?id=99552
[03:51:56] <Jak_o_Shadows> So that's a table with the transitions, and a list of what code happens at each transition
[03:52:23] <Jak_o_Shadows> I may not have the concept of a state machien completely down
[03:57:56] <z64555> Make one of these: https://en.wikipedia.org/wiki/State_diagram
[03:58:08] <z64555> That'll help you track all possible routes between states
[03:58:45] <z64555> You can make a state machine then by running a loop with a switch statement (or a bunch of if/else blocks)
[03:58:50] <Jak_o_Shadows> Yeah. That is ALMOST what the table is meant to be.
[03:59:12] <z64555> and change states from within each statment based on the transition criteria
[03:59:17] <Jak_o_Shadows> yeah. Thing is, most of the time the state machine is doing nothing isn't it in this case.
[03:59:27] <Jak_o_Shadows> because i'm driven so much by i2c communicaton
[03:59:38] <z64555> so you have an "idle" state
[03:59:56] <z64555> which would loop back onto itself on that state diagram
[04:00:05] <Jak_o_Shadows> yup.
[04:00:18] <Jak_o_Shadows> I think I understand that bit.
[04:00:52] <Jak_o_Shadows> Thing is, I have a somewhat computationally intense process (that will give different answers each time) that I want to keep the answers recent
[04:01:19] <Jak_o_Shadows> So that sorta wants to be running concurrently with my state machine I think.
[04:01:42] <z64555> ex: while(0){switch(state) { case 0: do_this(); break; case 1: do_that()' break; default: error(); } }
[04:02:07] <Jak_o_Shadows> Yeah. That's about what I was thinking
[04:02:07] <Jak_o_Shadows> thanks
[04:03:04] <z64555> Often, the I2C module can run by itself, and generate an interrupt
[04:03:13] <Jak_o_Shadows> Yep, it can
[04:03:23] <z64555> During the interrupt routine, you can queue a state change
[04:03:53] <z64555> and the state machine can see that it wants to change states, and after its done it'll do so accordingly
[04:04:10] <z64555> Or, you can interrupt the state it is in and force it to change states. depending on what you want to do
[04:04:26] <Jak_o_Shadows> How can I get it to interrupt what state it's in?
[04:04:28] <z64555> that's a bit harder to do, though
[04:04:38] <Jak_o_Shadows> The ISR will return to where it came from?
[04:04:53] <z64555> right, which would be somewhere within the state machine's opcode
[04:05:04] <Jak_o_Shadows> Ah.
[04:05:14] <Jak_o_Shadows> So bugger around with the program counter or something something?
[04:05:40] <z64555> pretty much. I can do it in assembler, but I don't know how to do it in C
[04:06:20] <z64555> perhaps using setjumps or something
[04:06:32] <Jak_o_Shadows> haha, fair enough.
[04:06:41] <Jak_o_Shadows> I might avoid that, unless it becomes necessary somehow
[04:06:52] <Jak_o_Shadows> What about running that other task concurrently?
[04:06:55] <z64555> Plz try to. It makes things messy
[04:07:16] <z64555> concurrency is on the order of OS's
[04:07:29] <Jak_o_Shadows> Yeah.
[04:07:47] <Jak_o_Shadows> I suppose I could just run it in the idle state.
[04:07:50] <z64555> The new C++11 standard has a threading library, and I think theres some pthread.lib available
[04:07:55] <Jak_o_Shadows> That would probably be good enough
[04:08:02] <Jak_o_Shadows> I'm on a stm32 arm chip :D
[04:08:07] <Jak_o_Shadows> (I actually rather like it)
[04:08:18] <anonnumberanon> i DON'T UNDERStand that image you pasted (nor do I want to, in the state it is at)
[04:08:54] <z64555> but yeah, work on that state diagram first, so you have a map to go by. :)
[04:09:53] <Jak_o_Shadows> Haha. I've done a bit with Markov Chains, so state transition matrices are familiar enough with me
[04:19:37] <anonnumberanon> draw a state diagram and the code will be easy
[04:19:59] <anonnumberanon> https://upload.wikimedia.org/wikipedia/commons/b/bc/Mealymachine_jaredwf.png
[04:20:17] <anonnumberanon> replace the 1/1 and other junk by what triggers a change of state
[04:20:32] <anonnumberanon> when you're done with taht you can do the code like z64555 showed
[19:38:38] <anonnumberanon> work on car done I'm now mobile, coolant flushed many random red pieces of things got out of the system, pipe was rock hard out of the oven, not a single leak, WE'RE IN BUSINESS
[19:42:43] <theBear> "red things" eh ? that's umm, interesting
[19:43:00] <theBear> unless you put that magic seal any leaks stuff in there earlier
[19:43:09] <theBear> also, i thought rockhard was not-good
[20:13:08] <akem> hola
[20:13:14] <mrdata-> yo
[20:14:05] <anonnumberanon> just bought the car last month who knows what all the owner assholes put in it
[20:14:19] <anonnumberanon> although it may have been sealant of the red variety
[20:14:38] <anonnumberanon> Now it's all green and it will stay that way.
[20:15:08] <mrdata-> splendid
[20:17:06] <theBear> you seen that sealant stuff ? like pouring little chunks of plasticey exploded candle in there, then you sposed to run it 20 mins or so till the juice gets nice and hot, and i guess the things melt and force into any cracks
[20:58:39] <akem> my IQ is getting bigger, i can feelit
[21:00:28] <theBear> maybe it been taking a queue from the nips... i heard they are getting bigger... also the carpenters are big in the east, so they say
[21:08:59] <z64555> That's just the hematoma talking.
[21:09:18] * z64555 knows that's not the right spelling
[21:09:38] <z64555> or maybe it is?
[21:09:42] * z64555 gives up
[21:09:56] <theBear> is he like the delillama ?
[21:10:06] <theBear> you know, the one that makes teh sammiches
[21:13:19] <anonnumberanon> theBear, I don't know if it's that but since there was an important leak maybe they tried to fix it with that sort of snake oil.
[21:13:28] <anonnumberanon> I recovered a LOT of it in the water.
[21:15:04] <anonnumberanon> Had to fix 4 spots of aluminum piping that takes the juice to the rear heaters, most likely caused by freezing water in them. Went through about 20 dremel cutting wheels. Good thing I had a 35 pack on hand i previously had bought for cheap. I like having all of the tools :)
[21:16:26] <anonnumberanon> Bought an angle grinder just for this task cause tired of replacing dremel cutting wheels and the slowness of using a dremel for that. Turned out the angles allowed me to use the angle grinder on only one problem area. Not a waste of money though, this is a tool you always need. ESPECIALLY for car work.
[21:31:12] <eadthem> anyone know of any usb based control boards for robotics
[21:31:49] <eadthem> I could do a atmel for this, but sense most of the code will be in c++ id rather not have 2 bodys of code
[21:33:09] <eadthem> the robot is just a belt driven X Y Z Theta pick and place robot
[21:33:20] <eadthem> Z is hobby servo based
[21:33:25] <eadthem> so is theta
[21:49:29] <theBear> i gota admit it's not the silliest idea i ever heard (the chunky leak-fixer juice stuff) and if you were the dodgy type i bet it'd at least seal things long enough for an inspect + sale
[21:50:54] <theBear> tho not mentioning it would be what industry insiders and whistleblowers both call "a dick move"
[21:51:09] <flyback> this is where I get off
[21:51:13] <flyback> goodbye
[21:51:30] <theBear> heh, that's what all the girls say, usuall in that order too, in my experience
[21:51:55] <flyback> too late
[21:52:01] <flyback> down the hatch :)
[21:52:42] <theBear> when you get a submarine ?
[21:53:32] * flyback sings the mash song
[23:12:36] <anonnumberanon> theBear, moral of the story, do the work like you do it with you as the end user
[23:12:44] <anonnumberanon> That way: no regrets.
[23:13:29] <anonnumberanon> It may be trendy to be an irresponsible asshole nowadays but that'll close you doors to have a meaningful life.
[23:13:33] * anonnumberanon is rambling again
[23:14:43] <anonnumberanon> I think I'm overdue for today's episode of Gundam.
[23:25:36] <z64555> trendy? that's more of a matter of honesty than "trends"
[23:25:55] <z64555> honesty/integrety, w/e
[23:26:20] <anonnumberanon> Being the asshole is trendy yes.
[23:26:38] <anonnumberanon> You can be very superficially successful with it.
[23:27:07] <z64555> nah uh, that's being a douche. asshole's do things where everybody wins (sort of) with them as top benificiary
[23:28:42] <z64555> ex: stealing a drunk's drink
[23:29:34] <z64555> vs. stealing the entire keg
[23:41:13] <rainIX> can anyone here recommend a good motor controller board?
[23:41:57] <anonnumberanon> One that has a joystick to do it by hand and a serial comm to usb.
[23:42:53] <rainIX> can you give me an example?
[23:42:57] <anonnumberanon> Doesn't the controller depend on the use, such as max motor power, precision, analog/digital?
[23:43:19] <anonnumberanon> For what type of motor?
[23:43:45] <anonnumberanon> http://www.circuitstoday.com/wp-content/uploads/2011/01/h-bridge-motor-driver.png
[23:44:21] <rainIX> the board is for basic DC two way motors.
[23:44:47] <anonnumberanon> what board