#robotics | Logs for 2016-09-21

Back
[01:09:49] <anonnumberanon> This is exactly what I'm working on right now. CTC mode on timers to make PWMs.
[01:10:38] <anonnumberanon> Need to try disabling interrupts while servicing an ISR. In theory that delays other interrupts.
[01:11:05] <mrdata> do you really want to delay those?
[01:11:29] <mrdata> try to make ISR as short as possible
[01:12:08] <mrdata> btw, the phrase "while servicing an ISR" is redundant
[01:12:25] <mrdata> ISR=interrupt service routine
[01:13:14] <rue_house> http://www.thingiverse.com/thing:1718984
[01:13:43] <rue_house> anonnumberanon, pwmfor hobby servos?
[01:13:55] <rue_house> cause, thats WHY my code only does 8 servos
[01:14:02] <rue_house> and I do the serial polled in the main loop
[01:14:29] <mrdata> btw is there an accurate 3D model for king tut's sailplane? http://www.touregypt.net/images/touregypt/air2.jpg
[01:15:10] <mrdata> printable even
[01:19:42] <rue_house> no, and its just a bird
[01:21:25] <rue_house> a sparrow I beleive
[01:21:25] <rue_house> do YOU know the free air speed of a swallow?
[01:21:25] <rue_house> (airspeed of an unlaiden swallow)
[01:23:22] <mrdata> is that an african or a european swallow?
[01:24:09] <rue_house> I dont,
[01:24:13] <mrdata> ok, you insist it's "just a bird"; but the question is about whether an accurate model exists
[01:24:15] <rue_house> AEEEEIIIIIIIIII
[01:26:01] <mrdata> i saw a brief documentary on this object, that pointed out there was a depression on the side that made it seem like there was a missing piece
[01:26:36] <mrdata> and it noted that a cross-piece at the tail would be needed to turn this into a glider
[01:27:56] <anonnumberanon> yeah i've seen your code rue_house it uses the right method
[01:28:08] <mrdata> meanwhile archeologists insist there is no evidence that ancient egyptians were interested in flight
[01:28:25] <rue_house> they could have had kites
[01:28:30] <rue_house> it wouldn't surprise me
[01:28:52] <anonnumberanon> mrdata, that's the jargon for the ISR code, called "servicing the ISR". It's whatever you do in the ISR.
[01:28:57] <mrdata> wouldnt surprise me, either; however, if this glides, then it's at least a toy that a boy king would want to keep
[01:29:18] <mrdata> anonnumberanon, you are servicing the interrupt
[01:29:29] <anonnumberanon> rue_house, however I need to look at it more cause at first reading I didn't see a reason why you couldn't do more than 8 servos.
[01:29:38] <anonnumberanon> mrdata, well it's just like, the jargon, man
[01:29:55] <mrdata> not servicing the servicer or other redundant jargon that ignores the acronym
[01:30:20] <mrdata> if you read that someplace, the author is being sloppy
[01:30:20] <anonnumberanon> factoring the factories factory
[01:30:31] <mrdata> like saying ATM machine
[01:31:58] <mrdata> you might write "invoking the ISR", perhaps
[01:34:09] <rue_house> anonnumberanon, more than 10 servos and there would have to be more than 1 interval timer
[01:34:20] <rue_house> and the instruction delays would start to get awkward
[01:35:17] <rue_house> how about PIN Number?
[01:36:49] <mrdata> Personal Identification Nnumber Number
[01:36:55] <rue_house> yea!
[01:37:46] <rue_house> http://www.thingiverse.com/thing:9728
[01:38:02] <rue_house> with a slight 4th dimentional rotation, that would print much easier
[02:11:19] <mrdata> i kind of like it, as is
[02:33:44] <anonnumberanon> rue_house, but yeah it seems like ill just do PWMs and a UART receiver on one micro and then RF and a UART sender on another one.
[02:34:30] <anonnumberanon> else if I want to put the RF also on the PWM generator it's just too much time spent trying to figure out how to synchronize the RF well with the rest, unless I start liking it when I get to it.
[05:26:08] <z64555> still using that atmega?
[05:31:17] <veverak> any tips how to exchange data between esp and arduino?
[05:31:31] <veverak> found out I don't want to send masive ammount of data to esp and contorl leds with it
[05:33:02] <Jak_o_Shadows> Aint the traditional thing serial?
[05:34:07] <veverak> hmm, esp should have two of them, true
[05:34:48] <deshipu> one of them is useless, because the rx pin is used by the flash memory
[05:34:59] <deshipu> veverak: I'm using i2c
[05:35:21] <veverak> deshipu: sounds good
[05:35:30] * veverak got unpleasant defects on rgb leds
[05:35:55] <veverak> and as I look at implementation of func to setup those leds
[05:36:09] <veverak> it disables interrupts for i2c, but afaik it could be interrupted by something else
[05:36:27] <veverak> with proper communication to arduino, arduino should be able to avoid these problems
[05:36:58] <deshipu> veverak: yup, you can look at this https://bitbucket.org/thesheep/controller/src/e2ec8dc3a6d8c8e8c6b7aad0ed6045248611542a/controller.ino?at=default&fileviewer=file-view-default
[05:37:09] <deshipu> veverak: it's a simple slave on the arduino just for setting servos
[05:37:20] <veverak> good
[05:37:27] <deshipu> I believe setting leds would be similar
[05:37:53] <veverak> let me check
[05:37:58] <veverak> i2c is 100kb/s ?
[05:38:07] <deshipu> 400
[05:38:11] <veverak> I have 60 leds, 30fps, 3 bytes per led
[05:38:15] <deshipu> well, it can be 100 or 400
[05:38:25] <veverak> 8*3*30*60
[05:38:41] <veverak> 42.3kb/s
[05:38:42] <veverak> good :)
[05:38:55] <veverak> deshipu: yeah, but 100 is bare minimum afaik
[05:39:07] <deshipu> no. you can get down as slow as you want
[05:39:14] <deshipu> the clock is controlled by the master
[05:39:51] <deshipu> the arduino slave supports speed of clock_speed/16
[05:40:32] <deshipu> so for 8Mhz you should have up to 500k
[05:40:35] <veverak> "minimal maximal speed devices should be capable of"
[05:40:37] <veverak> :)
[05:40:59] <veverak> but it's true that in case of eps+arduino it sould be higher
[05:41:01] <deshipu> a megahertz for 16Mhz arduino
[05:41:29] <z64555> just like with instant messaging, you can send a message faster than you compose it, and read it, for that matter
[05:41:31] <deshipu> well, at certain speed you get probalems with driving down the pullups that need to be stronger
[05:41:49] <veverak> still at 60 leds and 30 fps
[05:42:00] <deshipu> yeah, should be fine
[05:42:07] <deshipu> when you get speed problems, you can switch to SPI
[05:42:21] <deshipu> that 10Mhz to start with
[05:42:30] <veverak> well
[05:42:35] <deshipu> esp can do up to 80Mhz I think
[05:42:40] <veverak> only thing I care about is that arduino got HW resources to process it
[05:42:56] <veverak> I need to avoid anything that could make interrupts to flow of sw running on it
[05:43:18] <deshipu> well, i2c receive is handled by an interrupt...
[05:43:55] <veverak> :/
[05:44:04] <veverak> I thought it's handled in a way it won't interfere
[05:44:14] <deshipu> depends how you write the code
[05:44:50] <deshipu> generally avoid doing any work in the interrupt, just update the array of rgb values
[05:45:52] <veverak> on the contrary
[05:46:09] <veverak> if I set everything in the interrupt (just send data you will receive to the leds)
[05:46:27] <veverak> esp can avoid getting it into problems but managing the frequency of i2c messages
[05:46:29] <veverak> ;)
[05:47:26] <veverak> *with managing
[05:47:30] <veverak> nah
[05:47:47] <veverak> but it's ugly thing propably
[05:49:02] <deshipu> well, I recently added clock stretching support to the software i2c in micripython on the esp8266
[05:49:15] <deshipu> so even if the slave slows down, it shouldn't hurt
[05:49:28] <deshipu> (though the patch is not merged yet)
[05:49:45] <veverak> nah
[05:50:09] <veverak> interrupt updates led array
[05:50:09] <veverak> and sets "new" flag
[05:50:09] <veverak> data to leds is set only when "new" flag is on
[05:51:14] <deshipu> that's how I do it with the servos
[05:51:49] <deshipu> but you will need the clock stretching anyways
[09:20:09] <rue_house> esp8266 dosn't have a 'serial over wifi' capability?
[09:24:19] <deshipu> rue_house: not built-in
[09:24:25] <deshipu> rue_house: the wifi stack is in software
[09:24:34] <deshipu> at least partially
[09:25:08] <deshipu> (assuming you mean sockets)
[09:30:10] * rue_house looks into the 8266
[09:31:55] <rue_house> "only 20% of MIPS has been ocupied by wifi stack"? who wrote this?
[09:32:31] <rue_house> of its all chinglish
[09:32:39] <rue_house> heh
[09:32:43] <rue_house> oh, its all ..
[09:37:06] <veverak> damn it
[09:37:09] <veverak> for my Bc. thesis
[09:37:19] <veverak> I have to research all laternatives to what I am doing abd state why mine is better
[09:37:22] <veverak> (for something)
[09:37:58] <rue_house> if your writing a hobby servo controller instead of using mine, I'd like to read that
[09:38:24] <veverak> nope
[09:38:26] <veverak> :)
[09:41:24] <veverak> but!
[09:41:46] <veverak> good thing is that most of the robots are projects in some reasearch institute that didn't made it opensource
[09:41:57] <veverak> my goal is to make something open-source
[09:43:21] <rue_house> :)
[09:43:26] <rue_house> and how you gonna do that?
[09:43:43] <veverak> *mine will be open source
[09:43:57] <veverak> ie, thesis will be accepted
[09:45:14] <rue_house> I suggest starting with a server that will dissapear unexpectedly
[09:45:31] <veverak> :D
[09:45:32] <rue_house> then getting as many people to use your code as a dependency in their project as possable
[09:46:38] <rue_house> make sure the server dissapears after there are a lot of online project documents listing it for the dependency downloads
[09:46:53] <veverak> good thing that it will be ros based then :P :)
[09:47:12] <veverak> (ros once it's accepted hosts every package and things)
[09:47:39] <rue_house> be sure as some point to rewrite your code in such a way that all the function names are the same, but the arguments and return values are different
[09:48:12] <veverak> also, each package contains doc related to it
[09:48:14] <rue_house> then, only post documentation on the previous version
[09:48:15] <veverak> :)
[09:48:57] <rue_house> throw in some undocumented functionallity that makes no sense and you have achived it
[09:49:00] <rue_house> open source code.
[09:49:35] <rue_house> if you feel like getting advanced, include vaporware as dependencies to your project
[09:50:24] <rue_house> but of course make sure its dependent on a verry specific version of vaporware that cant be found, and it itself dependent on a specific version of vaporware
[09:50:41] <rue_house> from servers that nolonger exist
[09:50:56] <rue_house> by people who cant be found
[09:51:08] <deshipu> rue_house: this all is not specific to open source, you know, it's just that in open source you can actually see all the horrible things
[09:51:32] <deshipu> rue_house: in fact, it's pretty much industry standard for closed source
[09:52:22] <rue_house> I was surprised that as a registered nintendo developer, I had to go to russia ftp sites to get what I needed to write code for a gameboy
[09:52:35] <veverak> rue_house: I sense frustration from you
[09:52:38] <veverak> :)
[09:52:42] <rue_house> me!?!?!!
[09:52:55] <deshipu> frustration leads to fear, fear leads to anger, anger leads to suffering
[09:53:36] <deshipu> a shit not give you must
[09:53:37] <rue_house> yes yes, steer clear of the dark side...
[09:53:50] <deshipu> relax and watch the flames
[09:54:09] <deshipu> bring some marchmallows
[09:54:16] <rue_house> but master, down to just two marshmellows I am.
[09:55:42] <rue_house> .MODEL tiny ; begining of the program
[09:55:42] <rue_house> .386
[09:55:42] <rue_house> .CODE
[09:55:42] <rue_house> org 100h
[10:07:29] <veverak> damn it
[10:07:33] <veverak> seeing all that robots
[10:07:36] <veverak> all that different projects
[10:07:46] <veverak> makes me wanna build at least 4 alternatives of mine
[10:08:35] <veverak> 1. make it hexapod, 2. add wheels on it, 3. 4DOF legs, 4. dynamixel-based one
[10:08:47] <deshipu> veverak: why not all 4
[10:08:50] <deshipu> veverak: in one
[10:09:01] <deshipu> veverak: like the Asterisk
[10:09:39] <veverak> that would be awesome
[10:09:54] <veverak> but I still feel that quad/hexa are ment for different use cases
[10:09:57] <deshipu> http://www-arailab.sys.es.osaka-u.ac.jp/index.php?option=com_content&view=article&id=78&Itemid=111&lang=en
[10:10:16] <deshipu> veverak: you can always walk on 4 legs and use 2 as manipulators
[10:10:34] <veverak> hmm
[10:10:42] <deshipu> veverak: http://newatlas.com/six-legged-japanese-robot-can-pick-up-objects/20895/pictures?thumb=true#picture2
[10:11:18] <veverak> cool
[10:11:33] <deshipu> veverak: http://newatlas.com/six-legged-japanese-robot-can-pick-up-objects/20895/pictures?thumb=true#picture8
[10:11:38] <deshipu> manipulators
[10:11:48] <veverak> hmm
[10:12:06] <veverak> my intuition told me that it should be better to make manipulators out of middle legs?
[10:12:46] <deshipu> depends on what you are manipulating
[10:13:20] <veverak> also
[10:13:26] <veverak> if one builds quadrupeds
[10:13:35] <veverak> http://roos-design.com/wp/wp-content/uploads/2014/10/26-textured-side.jpg one shall build one of these
[10:13:40] <veverak> pew pew :)
[10:13:44] <deshipu> meh
[10:14:01] <deshipu> good luck making it walk on straight legs
[10:14:28] <deshipu> see how they actually had to make the front legs longer to make it look right?
[10:14:56] <veverak> :D
[10:14:57] <deshipu> also the hind right leg is longer than the hind left one
[10:15:39] <deshipu> it's probably made from rubber metal
[10:15:45] <veverak> it's true that http://vignette4.wikia.nocookie.net/starwars/images/5/5e/AT-TE_TCW.jpg/revision/latest?cb=20090425021909
[10:15:48] <veverak> seems more realistic
[10:16:16] <deshipu> you want a realistic quadruped battle mech?
[10:16:23] <deshipu> watch "short peace"
[10:17:36] <veverak> damn it
[10:17:42] <veverak> a lot of robots
[10:17:52] <veverak> and I suppose that for "hexapod robot" I will get even more
[10:21:15] <deshipu> veverak: https://youtu.be/KF9iBrsN_F8?t=249
[10:22:44] <veverak> :)))
[10:30:20] <veverak> cool
[14:34:58] <z64555> mkay... so i need to set the GPIO pins to output, and set them to generate an output signal from the timers to actually get an output signal from the pins.