#robotics Logs
May 06 2017
#robotics Calendar
12:01 AM DagoRed: Crap, I should have fixed my bot today.
12:30 AM Anniepoo_: 8cD
12:31 AM Anniepoo_: Z axis installed this evening
12:32 AM DagoRed: nice
12:34 AM Anniepoo_: so far it's been pretty straightforward
12:35 AM Anniepoo_: but we'll see when stuff starts moving
12:36 AM n3164: ?
12:40 AM Anniepoo_: ??
12:40 AM Anniepoo_: building aa 3d printer from kit this weekend
12:43 AM DagoRed: I will never build a 3d printer. I work with 2 hacker spaces and they both have been major pains.
12:44 AM Anniepoo_: 8cD many other machines are majore pains too!
12:44 AM DagoRed: They are... but I know I wouldn't do anything useful with a 3d printer.
12:45 AM Anniepoo_: 8co investment casting is proving tricky
01:07 AM mrdata: it seems that the japaneswe are teaching robots to sword fight, https://www.youtube.com/watch?v=F6UxmpbSQGU
01:35 AM rue_shop3: I think a slug shorted out my mosfet
01:37 AM Anniepoo_: slug as in "is dating Annie's snail"? or AS in "good for free parking"?
01:41 AM mrdata: or as in "police your brass"
02:20 AM rue_shop3: as in common variety garden slug
03:35 AM mrdata: those pesky molluscs
03:36 AM mrdata: oh, wait, is it
03:36 AM mrdata: checking
03:36 AM mrdata: yes, it's a gastropod mollusc
08:33 AM Ahmed___: would someone help me please ? https://electronics.stackexchange.com/questions/303743/pid-line-follower-robot
08:34 AM Ahmed___: ace4016: are you there, please I need you
08:53 AM Ahmed___: somebody helps me please :)
09:00 AM Tom_itx: don't rely on someone else's code to do your own work
09:01 AM Ahmed___: you're right
09:01 AM Ahmed___: its problematic
09:01 AM Ahmed___: do you have an idea or an algorithm ?
09:01 AM Ahmed___: I'm ready to implement it right now
09:02 AM Tom_itx: 3 sensors. left center right. do the logic from there
09:03 AM Ahmed___: a truth table ?
09:03 AM Ahmed___: or should I detect a junction and then make a decission
09:03 AM Tom_itx: however you choose to implement it
09:04 AM Ahmed___: when the left detects it should reverse the direction ?
09:04 AM Ahmed___: and the same for the right ?
09:34 AM ace4016: Ahmed___, you really need to learn how to code without thinking about the langauge. writing out what you want to do and how you think you would do it is important for any coder (most don't actually write it out, but they grasp the translation of what they want to do, to how to do it in code)
09:35 AM ace4016: it might help you if you try to spell it out in plain English/Arabic
09:36 AM Ahmed___: ok
09:36 AM ace4016: also, even though the ada fruit libs don't accept negatives, they surely allow you to move in reverse, correct?
09:36 AM Ahmed___: yes
09:36 AM Ahmed___: so how to fix it ?
09:36 AM Ahmed___: at T junctions
09:37 AM Ahmed___: it moves smoothly at a line
09:37 AM Ahmed___: but when it finds a T junction it deviates
09:37 AM ace4016: instead of simple math, you'll have to do some logic to set the direction to FORWARD or REVERSE for the motorX.run
09:37 AM Ahmed___: can you show me your idea please ?
09:37 AM Ahmed___: the robot is running now
09:37 AM Ahmed___: I want to do implement it
09:38 AM Ahmed___: so right now I'm checking the position
09:38 AM Ahmed___: if its 0 means the left one is detected do the reverse
09:40 AM ace4016: maybe later; need to let dogs out and such
09:41 AM Ahmed___: :(
09:41 AM Ahmed___: please
09:41 AM Ahmed___: its urgent ace4016 :(
09:41 AM Ahmed___: just simple pseudocode
09:44 AM ace4016: you already wrote the pseudocode
09:44 AM Ahmed___: the fix :D
09:44 AM Ahmed___: simple math please
09:44 AM Ahmed___: I don't know how to do it
09:44 AM Ahmed___: and I will understand it
09:44 AM ace4016: there is no simple fix to your problem
09:45 AM ace4016: you're not looking at what you're trying to do and implementing that into code
09:45 AM ace4016: you're just jumping into code
09:46 AM Ahmed___: :(
09:51 AM Ahmed___: ace4016: what's the fix ? please ?
09:51 AM Ahmed___: what's the some logic to set the direction to forward or reverse?
09:51 AM Ahmed___: based on what factors
10:26 AM ace4016: Ahmed___, i have no idea what your PID is putting out and if it goes negative. if it goes negative, i'm guessing it wants the motor to move in reverse perhaps? though your code seems a bit wonky with how you compute left and right motor speeds
10:28 AM Ahmed___: ace4016: can you write a pseudo code ?
10:28 AM Ahmed___: in my exmaple ?
10:28 AM ace4016: nope. i don't write code until i understand the problem, and right now I don't fully grasp all factors to take into account
10:29 AM Ahmed___: the problem is at pid negative values it sets one direction and stops the other motor
10:29 AM Ahmed___: I want the reverse actio
10:29 AM z64555: probably not a software issue then, but a hardware one
10:30 AM ace4016: it's a software issue
10:30 AM ace4016: his logic is just wrong
10:30 AM ace4016: so, i'm going to ignore everything in the loop function Ahmed___ for now. in your set_motors function, you check to see if motor speed is less than 0
10:30 AM ace4016: right?
10:31 AM z64555: set_motors clamps it to be within 0 and M1_maximum_speed
10:32 AM ace4016: yup, but you can reverse the motor. try not to give away the answer. let him work out the answer
10:32 AM * z64555 nods
10:34 AM z64555: I have a strong urge to headdesk, now that I've looked at things
10:34 AM ace4016: :P
10:38 AM Ahmed___: ace4016: yes right, sorry I was eating
10:39 AM Ahmed___: so I check if leftmotorspeed is negative reverse the motor ?
10:39 AM Ahmed___: and the same for the right ?
10:39 AM ace4016: yea.
10:39 AM ace4016: but
10:40 AM Ahmed___: but ?
10:40 AM ace4016: you have to do something to the speed you pass to the motor, right? as it doesn't want negatives
10:41 AM Ahmed___: just reverse the direction and set it to full speed
10:41 AM ace4016: but then you'd be ignoring what the controller is trying to tell you
10:42 AM Ahmed___: so how would I use it ?
10:43 AM Ahmed___: yes it doesnt want negatives
10:44 AM Ahmed___: make it 0
10:44 AM Ahmed___: and reverse the direction
10:44 AM Ahmed___: there is no other solution
10:44 AM ace4016: ...
10:44 AM ace4016: are you ok with throwing away information?
10:44 AM Ahmed___: no
10:44 AM Ahmed___: : (
10:44 AM Ahmed___: I just don't know the answer
10:44 AM Ahmed___: just give me hints
10:44 AM ace4016: how do you turn a negative number positive with the same magnitude?
10:45 AM Ahmed___: mag(a);
10:45 AM Ahmed___: *-1
10:45 AM ace4016: is there a function mag?
10:45 AM Ahmed___: no
10:45 AM Ahmed___: multiply it with -1
10:46 AM ace4016: k. so, putting that all together, what do you do when the control law gives you a negative motor speed?
10:47 AM Tom_itx: we don't fix things here, we make fixers
10:48 AM Ahmed___: (Y)
10:48 AM Ahmed___: https://pastebin.com/f3fJUBc7
10:49 AM Ahmed___: I think this is correct
10:50 AM Tom_itx: there are basically 2 types of pwm drive. Sign magnitude and differential
10:50 AM Tom_itx: yours appears to use sign magnitude
10:50 AM Ahmed___: yes
10:50 AM Tom_itx: with differential, 50% pwm is stop
10:51 AM Tom_itx: with sign magnitude 50% pwm is half speed
10:51 AM Ahmed___: is my code understanding wrong ?
10:52 AM Tom_itx: didn't look
10:53 AM Ahmed___: ace4016: is my understanding of the pseudo code correct ?
10:54 AM ace4016: kind of
10:55 AM Ahmed___: what's missing ?
10:55 AM ace4016: what happens in the case that both motor1 and motor2 are negative? (i'm not sure if that will/could/should happen)
10:56 AM Ahmed___: stop ?
10:57 AM ace4016: will it?
10:57 AM ace4016: you have the code right there. walk through it
10:59 AM Ahmed___: ok
10:59 AM Ahmed___: I'm trying my pseudo code right now
10:59 AM Ahmed___: and will tell you the results
10:59 AM Ahmed___: or do you think its problematic ?
10:59 AM ace4016: maybe
11:00 AM Ahmed___: why ?
11:00 AM Ahmed___: if both motor speed are negative
11:00 AM Ahmed___: I don't know what will happen
11:00 AM Ahmed___: :/
11:00 AM ace4016: walk through the code
11:02 AM Tom_itx: there are too many PCIe variations
11:02 AM ace4016: hehe
11:02 AM z64555: yes, it's like people independantly came up with their own version
11:02 AM Tom_itx: my board doesn't support PCIe 3.0 x4
11:03 AM Tom_itx: dammit
11:03 AM Tom_itx: what socket is the i5?
11:03 AM ace4016: LGA 1156?
11:04 AM ace4016: though i think it depends on the i5 model (assuming there are big differences between the couple of intel sockets)
11:04 AM Tom_itx: LGA 1151 it appears
11:05 AM Tom_itx: at least that's the one i have
11:05 AM Tom_itx: reading about the PCIe SSD
11:06 AM z64555: sheesh, my coffee cup looks naked. So used to it stained black like an oil drum
11:07 AM robopal: :S
11:10 AM Ahmed___: ace4016: the code is totaly wrong, it deviates off the line
11:11 AM ace4016: the code is never wrong; your logic is what's wrong :P
11:12 AM Ahmed___: hehe
11:12 AM Ahmed___: whats wrong with the logic there please ?
11:12 AM Ahmed___: https://pastebin.com/f3fJUBc7
11:12 AM Ahmed___: if they are both positive, sets the motor speed using the positive values
11:13 AM Ahmed___: if they are negative, sets it using the negative values ( reverse both motors )
11:13 AM z64555: and if either are negative?
11:13 AM Ahmed___: it should set the motor to negative values
11:13 AM z64555: even though the speed is a positive value?
11:14 AM z64555: right now, your logic is assuming they are either both positive, or both negative
11:14 AM ace4016: not quite
11:14 AM ace4016: it's assuming only one is negative and ignores the posibility that the other is also negative
11:14 AM z64555: yes
11:15 AM Ahmed___: https://pastebin.com/gBwgSMGe
11:15 AM Ahmed___: I think this is correct
11:16 AM Ahmed___: isn't it ?
11:16 AM z64555: it's closer to the solution.
11:16 AM Ahmed___: what's missing please :(
11:16 AM Tom_itx: http://www.tomshardware.co.uk/samsung-sm961-ssd,review-33585.html
11:16 AM ace4016: le sigh
11:16 AM * Tom_itx wants
11:17 AM ace4016: Ahmed___, seriously, stop changing code before you understand the problem
11:17 AM Ahmed___: I missed if both are negatives
11:17 AM Tom_itx: ace4016 you're barking up a dead tree
11:17 AM Tom_itx: later...
11:17 AM ace4016: hehe
11:18 AM Ahmed___: https://pastebin.com/wXePgmWz
11:18 AM ace4016: you were almost there about two pastes back
11:18 AM ace4016: you just had to remove some code
11:19 AM Ahmed___: https://pastebin.com/f3fJUBc7
11:19 AM Ahmed___: this one ?
11:19 AM z64555: ok, now you're just shooting blind. lol
11:19 AM Ahmed___: z64555: what about the last post?
11:19 AM Ahmed___: the last one
11:19 AM Ahmed___: isn't it correct ?
11:19 AM ace4016: yes, that one.
11:19 AM Ahmed___: it covers all the cases
11:20 AM ace4016: no, it doesn't. there's an issue with it.
11:20 AM Ahmed___: which is
11:20 AM ace4016: stop changing code and follow the case of what happens when both motor speeds are negative https://pastebin.com/f3fJUBc7
11:20 AM ace4016: line by line, what happens?
11:21 AM Ahmed___: it won't do anything
11:21 AM Ahmed___: because I didn't cover that case
11:21 AM ace4016: no.
11:21 AM ace4016: you're guessing
11:21 AM ace4016: walk the code.
11:21 AM z64555: Read each line of code as if you where reading this text.
11:21 AM Ahmed___: if both are negative I didn't cover it
11:21 AM ace4016: start at line 18. motor1speed is less than 1. what happens?
11:21 AM z64555: Then translate that line of code into what it is trying to do
11:22 AM Ahmed___: if its -10, it will make it 10. and sets the speed
11:23 AM Ahmed___: that's it
11:23 AM z64555: What happens if both motor1speed and motor2speed are negative?
11:24 AM z64555: "it won't do anything because I didn't cover that case" You actually did
11:24 AM Ahmed___: yes
11:24 AM z64555: look at line 29
11:24 AM Ahmed___: but it will call two functions
11:24 AM ace4016: Ahmed___, let me state this a different way. why are you setting things with motor2speed if you haven't checked its value yet in the case when motor1speed is negative? also, what happens when both values are positive? when do you call motorx.run?
11:25 AM z64555: I'd better step back, two teachers and one student makes for a more confused student
11:25 AM Ahmed___: if both values are positive it will call the positive function
11:26 AM Ahmed___: z64555: at line 29, it motor speed 2 is negative, it will negate it, sets the motor speed, but the problem if BOTH are negative, it will do crazy things
11:26 AM ace4016: oh right, didn't see that part. so ignore the second half of the question; you still have the first half
11:27 AM Ahmed___: ace4016: so it should if motor1speed is negative, it just sets its speed and ignore the motor2speed
11:27 AM ace4016: why?
11:28 AM Ahmed___: because if motor2speed is also negative, it would do the other direction
11:28 AM Ahmed___: so its confusing
11:29 AM Ahmed___: :(
11:29 AM ace4016: >_>
11:30 AM Ahmed___: where is the problem ? the problem that I see if both are negatives, it will call two functions in two directions
11:30 AM ace4016: i'll ask it again Ahmed___. why are you doing anything with motor2 if you haven't checked it?
11:31 AM Ahmed___: its checked
11:31 AM Ahmed___: if motorspeed2 < 0
11:31 AM z64555: no it's not
11:31 AM z64555: that's in a seperate block
11:31 AM ace4016: ^
11:31 AM Ahmed___: omg
11:31 AM Ahmed___: I got it
11:32 AM Ahmed___: its set however its not used
11:32 AM ace4016: in the if statement starting at line 18, you only check motor1speed, yet within that if statement you make decisions about motor2speed and motor2
11:32 AM z64555: And, I might add, that seperate block overwrites the first block's values
11:32 AM ace4016: ^
11:34 AM Ahmed___: https://pastebin.com/uHnhHwLn
11:34 AM Ahmed___: fixed it :)
11:35 AM Ahmed___: correct now ?
11:36 AM ace4016: what happens when one of the values is positive and the other negative?
11:36 AM z64555: nope. There's an error with the block starting at line 35.
11:37 AM Ahmed___: z64555: should I check for other conditions ?
11:37 AM Ahmed___: should I check for other conditions ?
11:37 AM ace4016: also, you can do if(value == thisThing) { // do something with this thing} else {// do something else}...that might make the code cleaner in handling all these cases :P
11:37 AM z64555: (he means add comments)
11:38 AM ace4016: rule of thumb also is to only affect the value of what you're checking, unless other things are dependent on that value as well
11:39 AM ace4016: you've semi-fixed that issue
11:39 AM Ahmed___: https://pastebin.com/w35amDpv
11:39 AM z64555: Ahmed___: what's the difference between an if{} and a if{}else{} statement?
11:40 AM Ahmed___: if something, then do other thing
11:40 AM Ahmed___: if(true){ } do this
11:40 AM z64555: yes
11:40 AM z64555: now
11:40 AM z64555: what's if{} else if {} do?
11:40 AM z64555: *what does
11:41 AM Ahmed___: if condition is true, else if condition is true
11:41 AM z64555: when is the second if statement checked?
11:42 AM Ahmed___: if the first statement is false
11:42 AM z64555: Is it checked when the first statement is true?
11:42 AM Ahmed___: yes
11:42 AM z64555: incorrect.
11:43 AM ace4016: Ahmed___, so if motor1speed is negative, you set the motor to run backwards and feed a valid value to setSpeed. but why are you setting motor2 if motor1speed is positive?
11:43 AM Ahmed___: https://pastebin.com/VDCxgFaM
11:43 AM Ahmed___: omg I got confused :'(
11:43 AM Ahmed___: I hope this is correct
11:43 AM ace4016: Ahmed___, slow down when you're coding. don't change code nilly willy.
11:43 AM Ahmed___: I think this is correct
11:43 AM Ahmed___: if motor1speed is negative
11:44 AM Ahmed___: it does change it
11:44 AM Ahmed___: if its not
11:44 AM Ahmed___: it checks motorspeed2
11:44 AM Ahmed___: if its negative it does change
11:44 AM Ahmed___: if its false
11:44 AM ace4016: no, it doesn't
11:44 AM ace4016: you're not reading your code
11:44 AM ace4016: computers do *EXACTLY* what you're telling them to do
11:44 AM z64555: go back to this one: https://pastebin.com/uHnhHwLn
11:44 AM ace4016: not what you *THINK* they should be doing
11:45 AM ace4016: so code is never wrong, just programmers :P
11:45 AM z64555: In set_motors_negative(), there is an error with the if statement at line 35
11:45 AM z64555: what is it
11:48 AM Ahmed___: missing ;
11:48 AM Ahmed___: https://pastebin.com/kfbgT6zZ
11:48 AM Ahmed___: how about this one z64555
11:49 AM Ahmed___: this is full fix https://pastebin.com/aeqXJy0t
11:49 AM z64555: incorrect.
11:50 AM z64555: You're looking at a syntax error, which is indeed an error but it is not what we are currently focusing on.
11:50 AM z64555: We are focusing on logic errors, which involve your use of if {} statements
11:51 AM z64555: Please do not make changes until you discuss with us what you think the error may be
11:51 AM Ahmed___: ok
11:52 AM z64555: https://pastebin.com/uHnhHwLn
11:52 AM z64555: There is an error with the if statement starting at line 35. What is the error?
11:53 AM Ahmed___: it means if both motors are negative, make it positive
11:53 AM z64555: Look above. Is there anything that modifies those two values already?
11:54 AM Ahmed___: yes correct
11:54 AM Ahmed___: other statments overwrites that condition already
11:54 AM Ahmed___: so they should be be put after that line 35
11:54 AM z64555: incorrect.
11:55 AM z64555: Yes, there are statements that overwrites the two values
11:55 AM z64555: but
11:55 AM z64555: your solution is incorrect.
11:56 AM Ahmed___: give me hints please
11:56 AM z64555: Is the code within the block starting at line 35 needed?
11:56 AM z64555: since blocks at 18 and 26 already operate on the same values?
11:57 AM Ahmed___: no its not needed
11:57 AM z64555: Ok. One more thing
11:57 AM z64555: Would the block at 35 ever be entered?
11:57 AM z64555: In order for its code to be executed, both motor2speed and motor1speed must be negative.
11:58 AM Ahmed___: yes
11:58 AM Ahmed___: it might be
11:58 AM z64555: Why is that a problem?
12:00 PM Ahmed___: yes it will overwrite what the above blocks do
12:01 PM z64555: that's not what I asked. I asked what was wrong with line 35 checking if motor2speed and motor1speed where negative
12:01 PM Ahmed___: dunno :/ :(\
12:02 PM z64555: We said earlier that motor2speed and motor1speed were modified by blocks at line 18 and line 26
12:02 PM z64555: How are they modified?
12:02 PM Ahmed___: if both are negatives
12:02 PM Ahmed___: one block is executed
12:02 PM Ahmed___: and the other block is executed also
12:02 PM z64555: correct. Do either of the blocks modify the value of motor1speed and/or motor2speed?
12:03 PM Ahmed___: yes it does
12:03 PM z64555: What does it change them to?
12:04 PM Ahmed___: if motor1speed is < it sets its speed positive and reverse the direction
12:04 PM z64555: it sets the speed positive.
12:04 PM z64555: Line 35 checks to see if they are negative
12:04 PM z64555: but, as you just stated, both blocks at line 18 and 26 set them to positive
12:05 PM Ahmed___: so it won't be executed at all
12:05 PM Ahmed___: if both are negative
12:05 PM Ahmed___: because they are already set positive
12:05 PM z64555: correct.
12:05 PM Ahmed___: so it should be OR
12:05 PM Ahmed___: not &&
12:05 PM z64555: incorrect.
12:05 PM Ahmed___: aha
12:05 PM Ahmed___: if > 0
12:06 PM z64555: incorrect
12:06 PM Ahmed___: omg
12:06 PM Ahmed___: :(
12:06 PM Ahmed___: dunno
12:06 PM z64555: Is the block at 35 needed at all?
12:06 PM Ahmed___: n
12:06 PM Ahmed___: no
12:06 PM z64555: And we just stated that it's never entered
12:06 PM Ahmed___: yes
12:06 PM z64555: so what good is it? it's dead code
12:06 PM Ahmed___: yes I will remove it
12:06 PM z64555: correct.
12:07 PM Ahmed___: is there any other problem ?
12:07 PM z64555: set_motors_negative is almost complete. make your changes and we will progress
12:07 PM Ahmed___: what else is missing ?
12:08 PM z64555: make the changes first, and pastebin them, please
12:08 PM Ahmed___: https://pastebin.com/hXEnnKHq
12:09 PM z64555: Next issue, this one should be shorter, hopefully.
12:09 PM z64555: Lines 16 and 17 clamp the max value of the speed.
12:09 PM Ahmed___: yes if left speed motor is negative and the other is positive
12:09 PM z64555: What's wrong with lines 16 and 17?
12:10 PM Ahmed___: there is no need for it
12:10 PM z64555: incorrect.
12:10 PM Ahmed___: because we assume the speed is negative
12:10 PM Ahmed___: there is no need for it
12:11 PM z64555: incorrect. there still is a need to clamp the values.
12:11 PM Ahmed___: if speed < -maxspeed
12:11 PM z64555: these subroutines may be considered the "firmware," the drivers for the motor.
12:12 PM Ahmed___: if(speed < - maxspeed) speed = -maxspeed
12:12 PM z64555: They are the last spot to do safety checks for your hardware. If bad data gets through, you run the risk of damaging your hardware, or worse
12:12 PM Ahmed___: correct
12:12 PM z64555: Yes, you are on the right track with your equations
12:13 PM Ahmed___: https://pastebin.com/5XBS4msx
12:13 PM Ahmed___: it should < -minspeed
12:14 PM z64555: hm, I don't see any changes on that paste
12:14 PM Ahmed___: line 16, 17 changed
12:14 PM Ahmed___: clamp the value to -maxspeed
12:15 PM z64555: well, you still have the same problem. You're only checking one side.
12:15 PM Ahmed___: no I change both sides
12:16 PM z64555: of the 0. You're only checking if they're negative, but ignoring if they're over the positive maximum.
12:17 PM Ahmed___: fixed it
12:17 PM Ahmed___: https://pastebin.com/yMXQAkGv
12:17 PM z64555: So the check should be closer to something like {min_speed <= speed <= max_speed}
12:17 PM z64555: closer, but still incorrect.
12:17 PM z64555: lines 20 and 21 are correct
12:18 PM z64555: lines 17 and 18 need adjustment
12:18 PM Ahmed___: remove the negative
12:19 PM z64555: on?
12:19 PM Ahmed___: https://pastebin.com/SCryL5KX
12:19 PM z64555: almost done
12:19 PM z64555: lines 17 and 18 still need adjustment
12:21 PM Ahmed___: https://pastebin.com/xqMKvbRR
12:21 PM Ahmed___: min_speed <= speed <= max_speed
12:21 PM Ahmed___: speed > speed
12:21 PM Ahmed___: speed > maxspeed speed = maxspeed
12:21 PM z64555: correct.
12:21 PM z64555: On to the next issue.
12:22 PM ace4016: choo choo
12:22 PM Ahmed___: :D
12:22 PM z64555: in set_motors_negative, What happens when the values are positive?
12:22 PM Ahmed___: it won't be do anything
12:22 PM Ahmed___: cuz it works with just negative numbers
12:22 PM z64555: Can we do anything to change that?
12:23 PM Ahmed___: if motorspeed > 0 return
12:23 PM z64555: What would handle the positive values then?
12:23 PM z64555: since this subroutine won't do anything
12:23 PM z64555: with positive values
12:23 PM Ahmed___: the above subroutine
12:24 PM z64555: do we really need two different subroutines to work on the same data?
12:24 PM Ahmed___: no
12:24 PM z64555: ok, so lets merge the two together
12:24 PM z64555: What can we modify in set_motors_negative so that they'll work with positive values?
12:26 PM z64555: hint: if {} else {}
12:27 PM Ahmed___: if(motor1speed >0 ) else if ( motorspeed < 0 )
12:27 PM z64555: incorrect. You're mostly there, however.
12:28 PM Ahmed___: if motot speed is positive, then work with the positive code, else work with the negative code
12:28 PM z64555: Flip your sentance backwards
12:29 PM Ahmed___: if negative work with negative codes, else work with positive code
12:29 PM z64555: Yes.
12:29 PM z64555: What would the if statement look like, then?
12:30 PM Ahmed___: https://pastebin.com/PBhdwZvz
12:30 PM z64555: Correct.
12:30 PM Ahmed___: thanks !
12:31 PM z64555: Ok, so walk through the code one more time and talk it out
12:32 PM Ahmed___: we first clamp the values to minspeed<speed<maxspeed
12:32 PM z64555: yes.
12:32 PM Ahmed___: if motospeed is negative, we reverse the direction otherwise it's positive we set it forward
12:32 PM z64555: yes
12:32 PM Tom_itx: are we getting anywhere yet?
12:33 PM z64555: yes.
12:33 PM Tom_itx: phew
12:33 PM Ahmed___: thanks so much guys
12:33 PM z64555: Ahmed___: Ok, just clean up your sytnax errors and get your indents, and that subroutine is ready to go
12:33 PM Ahmed___: thanks
12:33 PM Tom_itx: i want a samsung SM961 but my MB won't support it :(
12:34 PM Tom_itx: 1TB
12:34 PM z64555: In the future, do make an effort to put comments in your code
12:34 PM Ahmed___: ok
12:34 PM Tom_itx: never comment asm code!!!!!
12:34 PM z64555: As it will help describe parts of the code which may be difficult to understand
12:34 PM z64555: shush Tom :P
12:34 PM Tom_itx: hah
12:35 PM Tom_itx: i was trying to lear a new language and the examples i had were in russian
12:35 PM Tom_itx: oops type language
12:35 PM z64555: I guess they were in a rush to get the example. :P
12:36 PM z64555: Ahmed___: one last thing
12:36 PM z64555: Do you know about scope?
12:37 PM Ahmed___: no
12:37 PM Ahmed___: not that good
12:37 PM Ahmed___: but I can use logic analayzer
12:38 PM z64555: Scope is the term used to describe how a value is modified/influence across the entire program
12:38 PM z64555: *influenced
12:38 PM Ahmed___: aha
12:38 PM Tom_itx: and here i thougt it was a mouthwash
12:38 PM z64555: In the subroutine set_motors, the motor1speed and motor2speed variables have a scope that's only within the set_motors() subroutine
12:39 PM z64555: Therefore, any modifications done to those variables within set_motors will not show up outside of set_motors
12:39 PM z64555: Unless set_motors calls another function
12:40 PM z64555: *another function that uses those variables as an input.
12:40 PM z64555: In C and C++, variables may be passed to functions as a copy, as a pointer, or as a reference
12:41 PM z64555: Copies will always be locked into the scope of their function
12:41 PM z64555: Variables referenced by a pointer can be modified, as can references
12:42 PM z64555: this is a copy (int var); This is a pointer (int* var) and this is a reference (int& var)
12:43 PM z64555: Passing variables through pointers and references is a chapter on its own, so I won't be covering that today
12:43 PM ace4016: :D
12:45 PM z64555: just keep in mind for now that modifications done to parameter variables (such as motor1speed and motor2speed) won't show up in the function that calls set_motors() ;
12:52 PM Ahmed___: خن
12:52 PM Ahmed___: ok
12:52 PM Ahmed___: thanks so much
12:53 PM z64555: :)
01:26 PM Anniepoo3dprinte: 8cD all axes installed
01:26 PM deshipu: add a few more hatchets
01:26 PM ace4016: making a battle bot? :P
01:27 PM Anniepoo3dprinte: 8cP
01:27 PM Anniepoo3dprinte: extruder, wiring, and software yet to do
01:29 PM z64555: 3d printer, most likely
01:34 PM Anniepoo3dprinte: yes, 3D printer 8cD
01:38 PM synja: anyone here who has done environmental sound recognition before?
01:40 PM z64555: what sound(s) are you trying to recognize? I'd imagine it's just an application of acoustics, filtering, and a FLIE or a nueral net
01:57 PM synja: yes, it is, but i was wondering about processing time before i get there
01:58 PM synja: for let's say, 1000 classifiers
01:58 PM synja: running once per audio feed
02:09 PM Anniepoo3dprinte: I kinda sorta do that for my day job
02:13 PM synja: resources?
02:13 PM Anniepoo3dprinte: what sounds are you trying to discriminate?
02:15 PM synja: day to day
02:16 PM Anniepoo3dprinte: no - are you trying to figure out what brand of car passed thru a tunnel with a microphone, or are you
02:16 PM Anniepoo3dprinte: trying to figure out if it rained yesterday from sound,
02:16 PM Anniepoo3dprinte: or?
02:18 PM Anniepoo3dprinte: darn, the cable wrap they supplied is hard to work with
02:20 PM z64555: synja: point being, the more complex the sound byte you're trying to recognize, the more processing time is needed to recognize it
02:21 PM Anniepoo3dprinte: also, you're asking about a very complex field.
02:22 PM Anniepoo3dprinte: it's impossible to meaningfully point you at resources without knowing what sort of sounds we're talking about
02:22 PM Anniepoo3dprinte: and you're being secretive
02:24 PM z64555: monotone sounds, which range from a beep to a continous tone, is the simplest to work on. All you need to do is continously compare the audio feed against a single frequency
02:25 PM z64555: but anything more complex than that needs some time in a signal processor
02:26 PM z64555: or two
03:55 PM anniepoo: ran out of cable wrap
03:55 PM anniepoo: 8cd need to go get some - there's a Napa auto parts in town, will try them
03:55 PM SpeedEvil: Learn cable lacing!
03:55 PM SpeedEvil: :)
03:59 PM robopal: yeah
04:04 PM anniepoo: hmm.... that's a good idea
04:07 PM anniepoo: Trying to think what I have around for lacing
04:08 PM anniepoo: OK - gotta confess- 75% or so of cable lacing is done, it's all with transparent spiral wrap, I don't want to do the rest of it in some other color, it'd clash
04:15 PM anniepoo: hmm... you know, if I'd thought of it first, I have some black powder coat that'd make the printer look really old fashioned. That would have been a cool look - maybe with some brass hardware
04:20 PM SpeedEvil: :)
04:43 PM z64555: yes, because we had 3d printers in the industrial age. :D
04:44 PM anniepoo: Put one of those old flush mount analog meters on it, wired to extruder temp or something
04:44 PM z64555: galvanometer. :D
04:45 PM anniepoo: 8cD maybe some tubes and ginormous capacitors
04:45 PM anniepoo: and selenium rectifiers
04:45 PM anniepoo: bakelight terminal strips
04:45 PM anniepoo: cloth coated wire (actually IS some of that on the printer, for the heater)
04:46 PM * anniepoo remembers fondly the days when electronics were warm and hummed slightly
04:46 PM z64555: they still are warm, and they hum slightly
04:46 PM z64555: although at a much higher pitch than we can hear
05:08 PM tttb: i'd like to see a super-computer given a gigantic spider-robot body with eyes and other senses
05:08 PM tttb: but what goal should it be given?
05:10 PM robopal: make a web between the earth and the moon
05:11 PM z64555: be the psych examiner in colleges
05:11 PM z64555: "So, human. Why have you decided to become an art major?"
05:12 PM Anniepoo3dprinte: "I have inferiority complex and wish to be poor"
05:12 PM Anniepoo3dprinte: 8cD
05:12 PM Anniepoo3dprinte: (actually, art majors have reasonable employment prospects.)
05:12 PM Anniepoo3dprinte: (its art history that's bad)
05:13 PM Anniepoo3dprinte: (and, like engineering or anything else, you have to actually be good at it)
05:13 PM Anniepoo3dprinte: and I have spiral wrap and am continuing with printer making
05:13 PM Anniepoo3dprinte: 8cD
05:14 PM z64555: Art history is a major?
05:15 PM z64555: I can see that as being an elective, a minor, or an independent research. But not many opportunities for employment
05:17 PM Anniepoo3dprinte: 8cD Listen to Prairie Home Companion - often brought to you by the association of English Majors
05:18 PM Anniepoo3dprinte: (another impossible-to-get-a-job field)
05:18 PM Anniepoo3dprinte: (oddly, architecture's very hard to make a living doing as well)
05:21 PM Anniepoo3dprinte: the wiki page for physics major redirects to engineer
05:21 PM z64555: lol.
05:22 PM z64555: Dropping hints there, I guess
05:27 PM Anniepoo3dprinte: just noticed that the thermistor's not yet installed.... wondering if I missed a step, or instructions are bonkers
05:28 PM z64555: its supposed to go in around the time you put in the heater
05:28 PM z64555: but before you it on, of course
05:28 PM Anniepoo3dprinte: Niiiiice.... about 7:45am this morning
05:30 PM Ahmed___: ace4016: the robot is zig zaging and its very slow
05:30 PM Ahmed___: https://pastebin.com/PBhdwZvz4
05:30 PM Ahmed___: my last edit
05:30 PM Ahmed___: z64555: are you there?
05:31 PM Ahmed___: its no where both motors should be forward
05:31 PM z64555: Ok, now you're in the tuning phase of your PID
05:31 PM Ahmed___: but its zig zagin and its very slow
05:31 PM z64555: that's what it does when it's not tuned
05:32 PM z64555: But
05:32 PM z64555: The fact that it is zig-zagging means that it the PID is working
05:32 PM z64555: If it had veered off one direction and not try to go back to the line
05:32 PM z64555: That's when you know something's broke
05:32 PM Anniepoo3dprinte: ok, I'm suspecting it's already installed
05:32 PM Ahmed___: the robot is not moving forward
05:32 PM Ahmed___: it zigzags over the line and its very slow
05:33 PM Anniepoo3dprinte: there's a JST connector marked '13EO' in the cable harness coming from the extruder head
05:33 PM Ahmed___: #define Kp 15//experiment to determine this, start by something small that just makes your bot follow the line at a slow speed #define Kd 17//xperiment to determine this, slowly increase the speeds and adjust this value. ( Note: Kp < Kd)
05:33 PM Anniepoo3dprinte: it isn't associated with anything else, and ever other cable is accounted for
05:33 PM z64555: that link is broken, by the way
05:34 PM z64555: Also, keep in mind that we were only focused on the left/right control. We didn't do anything to set its forward or reverse speed
05:36 PM Ahmed___: the robot is moving left and right
05:36 PM Ahmed___: left and right
05:36 PM Ahmed___: zig zag between left and right
05:36 PM z64555: yes, you keep saying that.
05:36 PM Ahmed___: yes
05:36 PM z64555: Do you have any part in your program that tells it to go forward?
05:36 PM Ahmed___: I want to set its forward and reverse speed
05:36 PM Ahmed___: no
05:36 PM z64555: then work on that
05:37 PM Ahmed___: if error == 0. move forward ?
05:37 PM z64555: no
05:37 PM z64555: that's seperate from your left/right control
05:37 PM z64555: Your bot has a "differential drive" mechanism
05:38 PM z64555: its total forward speed is the sum of the two motor speeds
05:38 PM Ahmed___: https://pastebin.com/p94WV0Yb
05:38 PM z64555: if there is a difference between the two motor speeds, it will turn
05:40 PM Ahmed___: I'm setting it forward now
05:40 PM Ahmed___: then the control loops decides left or right
05:41 PM ace4016: where did you get your PID equation from Ahmed___?
05:41 PM Ahmed___: I wrote it
05:42 PM z64555: This is just a PD equation, there isn't an I term in it
05:42 PM Ahmed___: yes
05:42 PM ace4016: and does it really output a value such that the control law produces a single scalar that is added or substracted to the maksimum speed to determine the left and right speeds?
05:42 PM Ahmed___: yes
05:42 PM ace4016: that was the issue i was going to come back to
05:42 PM Anniepoo3dprinte: ok, the Y axis endstop is actually at end of instructions
05:42 PM ace4016: as that doesn't seem correct
05:43 PM Ahmed___: ace4016: why ?
05:43 PM ace4016: when i get back, if z64555 hasn't gotten to it, i'll discuss it
05:43 PM Anniepoo3dprinte: (no written instructions, and the videos won't seek on this ancient pc)
05:44 PM z64555: It looks like he got most of it already, just needs to make smart tweaks here and there
05:44 PM Ahmed___: z64555: is the code of setmotors(255,255) correct ?
05:44 PM Ahmed___: before the loop
05:45 PM z64555: line 4 is irrelevant, as it is shortly overwritten later in the loop
05:45 PM Ahmed___: but the robot doesn't move forward at all
05:45 PM Ahmed___: it zigzags
05:45 PM z64555: yes, that's what untuned controllers do
05:46 PM z64555: First of all
05:46 PM z64555: How did you determine the error equation should be 2000 - position
05:47 PM Ahmed___: desired - current
05:47 PM z64555: is 2000 the value of the sensors when the line is in the middle?
05:48 PM Ahmed___: yes
05:48 PM z64555: ok.
05:48 PM z64555: where do you set the values of Kp and Kd?
05:49 PM Ahmed___: up
05:49 PM z64555: and where is lastError declared?
05:49 PM Ahmed___: #define Kp 2 #define Kd 7
05:49 PM Ahmed___: as a global variable
05:49 PM z64555: good
05:50 PM z64555: What is the value of M1_maksimum_speed
05:50 PM Ahmed___: 250
05:51 PM z64555: Do you see the problem here?
05:52 PM Ahmed___: no
05:52 PM z64555: Your error value is very large compared to your speed
05:53 PM Ahmed___: so how would be the best parameter ?
05:53 PM z64555: additionally
05:53 PM z64555: Look at line 13
05:53 PM Ahmed___: divide by 4
05:53 PM z64555: what's wrong there?
05:53 PM Ahmed___: the sign is wrong
05:53 PM Ahmed___: it should be -
05:53 PM z64555: incorrect
05:54 PM Ahmed___: whats wrong with it
05:54 PM z64555: What does set_motors do to the speed within the first 7 lines?
05:54 PM Ahmed___: it clamps the speed to max speed
05:54 PM z64555: yes.
05:55 PM rue_shop3: too much gain
05:55 PM rue_shop3: unstable loop
05:55 PM z64555: oh definitely too much gain, but it is a stable loop
05:55 PM z64555: it's oscillating
05:56 PM rue_shop3: needs a less gain at the pole freq
05:56 PM rue_shop3: ;)
05:56 PM Ahmed___: https://pastebin.com/tt3UB8ZU
05:56 PM Ahmed___: is this correct ?
05:57 PM rue_shop3: hwo many sensors do you have?
05:57 PM Ahmed___: 5
05:57 PM z64555: No, you took out your forward speed
05:57 PM z64555: You bot couldn't go forward before, it definitely won't go forward now
05:57 PM rue_shop3: 5 is a good number, are they evenly spaced?
05:57 PM rue_shop3: I used 6, with a larger space between the middle two
05:58 PM Ahmed___: z64555: where is the problem, I don't see it
05:58 PM Ahmed___: its too much gain yes
05:58 PM Ahmed___: the error is big
05:58 PM Ahmed___: should I clamp it ?
05:58 PM rue_shop3: how wide is your line, what is the spacing of the sensors?
05:58 PM Ahmed___: 3cm
05:58 PM Ahmed___: is the wide
05:58 PM Ahmed___: the spacing is 1.5
05:58 PM z64555: Why is it a bad idea to set your forward speed to maximum?
05:58 PM z64555: within the main loop
05:59 PM Ahmed___: cuz of too much gain
05:59 PM z64555: no
05:59 PM z64555: Because your subroutine, set_motors, will clamp the values right there
05:59 PM rue_shop3: ok, and the sensors are digital, not each an analog value
05:59 PM z64555: meaning you'll have one motor running at top speed and the other motor significantly slower
05:59 PM z64555: and your resulting delta between the two
05:59 PM z64555: Won't be what you originally intended
06:00 PM Ahmed___: yes that's what is happening
06:00 PM rue_shop3: 00100
06:00 PM z64555: So, how do we fix that easily?
06:00 PM rue_shop3: 01100
06:00 PM rue_shop3: 01000
06:00 PM rue_shop3: 11000
06:00 PM rue_shop3: 10000
06:00 PM Ahmed___: rue_shop3: its analog sensor
06:00 PM Ahmed___: not digital
06:00 PM rue_shop3: ah
06:01 PM rue_shop3: all 5 are analog?
06:01 PM Ahmed___: yes
06:01 PM Ahmed___: z64555: how ? I'm curious :)
06:01 PM rue_shop3: ok
06:01 PM Ahmed___: my teacher
06:01 PM rue_shop3: hmm,
06:01 PM * rue_shop3 thinks on how he might deal with that
06:01 PM z64555: Think about it, what have I been talking about for the past few minutes?
06:02 PM Ahmed___: is there is too much error, too much data going to the control loop
06:02 PM Ahmed___: values are too big
06:02 PM Ahmed___: and they are clamped by the set speed function
06:02 PM z64555: rue_shop: it might be a bank of photoresistors, which each on scaled up relative to the sensor's position
06:02 PM rue_shop3: you have to use relative values between the sensors, because the ambient light will totally mess with the DC offsets
06:03 PM z64555: Ahmed___: well, lets ignore the problem with the error values for now, since we can tweak the values of Kp and Kd to resolve that
06:03 PM z64555: lets focus on the problems with lines 13 and 14, first
06:03 PM z64555: https://pastebin.com/p94WV0Yb
06:04 PM Ahmed___: the error will be clamped
06:04 PM Ahmed___: part of it will be set by the motor speed
06:04 PM Ahmed___: so its not correc
06:04 PM Ahmed___: correct
06:04 PM z64555: incorrect. The error is not clamped.
06:04 PM z64555: the speed is what is clamped
06:05 PM Ahmed___: yes
06:05 PM z64555: Ok. So, if motorSpeed ends up positive
06:05 PM z64555: line 13 is moot.
06:05 PM z64555: and line 14 is still functional.
06:05 PM z64555: But
06:05 PM z64555: the difference between the left and right motor speeds
06:06 PM z64555: Will not be what is intended
06:06 PM z64555: So it will turn at half the rate
06:06 PM z64555: How can we resolve that, without going into set_motors to change things?
06:07 PM Ahmed___: take the difference between the left motor speed and right motor speed
06:07 PM Ahmed___: and scale the total speed by it
06:07 PM z64555: no
06:08 PM Ahmed___: ?
06:10 PM z64555: leftmotorspeed and rightmotorspeed must not exceed the maximum. otherwise set_motors will give an incorrect correction
06:11 PM z64555: What's the simplest way of making sure leftMotorSpeed and rightMotorSpeed stay below M1_maksimum_speed?
06:12 PM Ahmed___: just clam LeftMotorSpeed > maxspeed then LeftMotSpeed = maxspeed
06:12 PM z64555: no
06:12 PM z64555: How do you make sure you don't speed up when going down a hill on your bike, or car?
06:13 PM Ahmed___: put a limiter
06:13 PM z64555: you slow down
06:13 PM Ahmed___: if ( leftMotorSpeed > maxspeed then leftMotorSpeed = min speed
06:14 PM z64555: Change m1_maksimum_speed in lines 13 and 14 to some other constant
06:14 PM z64555: that is significantly below the value of m1_maksimum_speed
06:14 PM z64555: You will need to modify set_motors if you want to go at the maximum speed, but right now we're focused on getting something working so you can play with the PID
06:17 PM Ahmed___: will try it now
06:18 PM Ahmed___: I made the new constant half the max speed
06:21 PM z64555: It'll probably still zig-zag a whole lot, but you might get a bit more forward motion
06:21 PM z64555: We still have to tackle the problem with your Kp and Kd
06:21 PM Ahmed___: divide by kp ?
06:21 PM z64555: no
06:21 PM Ahmed___: not mul
06:21 PM z64555: no
06:22 PM z64555: Can your bot do floating point arithmetic?
06:22 PM Ahmed___: no
06:22 PM Ahmed___: its an arduino
06:23 PM Ahmed___: atmega
06:23 PM Ahmed___: it does it in software
06:23 PM z64555: ok, then we'll have to scale down your error
06:24 PM z64555: We can't get smaller gains, but we can make the error smaller, which in effect allows us to get a smaller overall gain with the same values
06:24 PM Anniepoo3dprinte: 8cD
06:24 PM Tom_itx: 9eF
06:24 PM Ahmed___: error = error /4
06:24 PM Anniepoo3dprinte: and now, only slightly before completing, I finally find the build instructions (on website, not on included SD card)
06:24 PM z64555: Yes, start with that, and then set Kd to 0
06:25 PM z64555: Then play with Kp until you get something usable.
06:26 PM z64555: Kp should not be negative, but Kd can be negative
06:28 PM Ahmed___: thanks
06:28 PM Ahmed___: will try that now
06:32 PM z64555: If you can't get a satisfactory result with Kp, then adjust your downscaler on the error, and try again
06:32 PM Anniepoo3dprinte: 8cD
06:32 PM Anniepoo3dprinte: ok, I should do some work for employer
06:33 PM z64555: Yes, they tend to get upset when you're not working for them. :P
06:35 PM Tom_itx: i've tried to get fired multiple times but it just doesn't happen
06:35 PM Tom_itx: guess it doesn't help i'm self employed :D
06:35 PM z64555: :P
06:35 PM Ahmed___: ace4016: how are you connected to multiple irc clients in many rooms /
06:36 PM Ahmed___: ?
06:36 PM Tom_itx: you join them
06:36 PM ASRock_pc: just like that
06:38 PM Tom_L: or that
06:39 PM z64555: showoff :P
06:39 PM Tom_itx: i didn't realize i had 3 on this pc
06:43 PM * rue_shop3 says to the rues "dont do it"
06:46 PM rue_shop1: do what?
06:46 PM rue_shop3: where are the rest of us anyhow?
06:48 PM * anniepoo is in here
06:48 PM anniepoo: 8cD I'm no longer at the 3D printer-
06:49 PM * rue_shop3 turns off the 3d printer
06:49 PM rue_shop3: Ahhhhhhh, nice and quiet again
06:49 PM rue_shop3: anniepoo, I need to make a boat registration plate for my mothers boat...
06:49 PM rue_shop3: what method you think I should use?
06:49 PM rue_shop3: 3d print numbers?
06:50 PM rue_shop3: cnc ?
06:50 PM rue_shop3: print masks and use paint?
06:50 PM anniepoo: 8cD Just paint it by hand?
06:50 PM rue_shop3: etch something in metal maybe?
06:51 PM rue_shop3: cast the characters in aluminum?
06:51 PM anniepoo: why don't you 3D print a mask
06:51 PM rue_shop3: hmm
06:51 PM anniepoo: that'd be pretty simple
06:51 PM rue_shop3: 23k3092
06:51 PM anniepoo: it's a dead easy print - then use that to stencil on numbers
06:51 PM rue_shop3: so, saves a few characters
06:52 PM anniepoo: what are legal requirements?
06:52 PM rue_shop3: 3" high
06:52 PM rue_shop3: black on ... something contrasting
06:52 PM rue_shop3: legally I think they are supposed to be laser-cannon resistant
06:53 PM rue_shop3: but I'm not tooooooo sure.....
06:53 PM anniepoo: oh, good - laser cannons should be resistant to most methods you've touched on
06:53 PM rue_shop3: erm...
06:53 PM rue_shop3: ok
06:53 PM rue_shop3: !
06:53 PM anniepoo: I'd avoid metal - boats get wet, and your mom's boat is probably wet with salty water, which is esp. bad
06:56 PM anniepoo: and vice versa
06:59 PM rue_shop3: oh yea
06:59 PM rue_shop3: wood and paint might be prefferable materials
07:00 PM ace4016: Ahmed___, i only have one IRC client up and i'm only on one computer
07:01 PM anniepoo: Wood gets dry rot
07:01 PM anniepoo: plastic is bombarded with UV
07:01 PM z64555: metal rusts
07:02 PM rue_shop3: not aluminum or stainless
07:02 PM rue_shop3: or lead
07:02 PM rue_shop3: or copper
07:02 PM z64555: they oxidize
07:02 PM rue_shop3: yea
07:02 PM z64555: Copper is generally good, all it does is get greener
07:02 PM anniepoo: aluminum corrodes pretty bad around salt water
07:03 PM rue_shop3: only iron and nickel rust
07:03 PM z64555: not sure how well it is around maritime
07:04 PM anniepoo: copper corrodes pretty quick. Electrical gear on boats is hell
07:04 PM z64555: This doesn't need electrical contact, it just needs to be structurually sound enough to hold the number in a recognizable state
07:05 PM anniepoo: I'd usno, but copper is still copper
07:05 PM z64555: usno?
07:05 PM anniepoo: sorry, tramp chars
07:06 PM z64555: tramp chars??
07:06 PM anniepoo: No, but copper is still copper
07:08 PM anniepoo: I'd paint'em on,
07:09 PM anniepoo: what kind of boat is it? (material)
07:12 PM rue_shop3: fiberglass
07:16 PM anniepoo: Use an epoxy paint if you're truly concerned about long lasting
07:16 PM anniepoo: and scuff the surface under it
07:24 PM Tom_itx: rue_shop3, engraved stainless plate
07:24 PM Tom_itx: anniepoo so did you start over after reading the directions?
07:25 PM Tom_itx: http://tom-itx.no-ip.biz:81/~webpage/cnc/pendant/pendant2.jpg
07:25 PM Tom_itx: rue_shop3, engrave it like i did on my pendant
07:34 PM z64555: blah, I need to get my build environement for the LM4F set up again. so I can get my quad flying
07:44 PM anniepoo: nope!
07:45 PM anniepoo: I need to finish something for work, then I'm back at it
07:57 PM rue_shop3: :) I'm gonna melt down some aluminum while I think on it
07:57 PM rue_shop3: tho I printed some templates on paper
07:59 PM Tom_itx: don't spill it on your toes
08:03 PM mrdata_: good idea
08:37 PM rue_shop3: 14 aluminum muffins
08:37 PM rue_shop3: not bad
08:37 PM rue_shop3: cleans up part of the shop
08:42 PM Tom_itx: how do they machine?
08:43 PM Tom_itx: or is the aluminum too soft
08:43 PM rue_shop3: right now its too hot
08:44 PM rue_shop3: I degassed it good, it should go fine, but its for re-melting
08:44 PM rue_shop3: I just have to clean up the pile every so often
08:44 PM Tom_itx: how much can you get in a pot?
08:51 PM rue_shop3: prolly 5L if I got stupid about it :)
08:51 PM rue_shop3: I usually do 3-4L
08:52 PM rue_shop3: *I think *
08:52 PM rue_shop3: I'll measure sometime and see if its a lot less than I think
08:52 PM Tom_itx: that's pretty good size
08:52 PM rue_shop3: I wanted to be able to make descent castings
08:53 PM rue_shop3: its like when your making a printer and you think you need a 24"x24" bed
08:53 PM Tom_itx: do you add anything to the top to skim off the crud?
08:53 PM Tom_itx: i know they did at a place i used to work on a casting machine
08:53 PM rue_shop3: I use borax for degassing and sodium-free salt for flux
08:53 PM Tom_itx: yeah borax
08:54 PM rue_shop3: I dont think I have it backwards
08:54 PM Tom_itx: flux?
08:54 PM z64555: slag. <3
08:54 PM rue_shop3: I just did what the internet said to :)
08:54 PM Tom_itx: does that bind the aluminum better when pouring?
08:54 PM rue_shop3: dunno
08:54 PM rue_shop3: someting makes a difference tho
08:54 PM rue_shop3: I need to make a temp meter for the aluminum, your supposed to pour between a certian temp range
08:55 PM Tom_itx: non contact temp?
08:55 PM rue_shop3: na, an electrometal thing
08:55 PM Tom_itx: or do you have a thermocouple
08:55 PM rue_shop3: thermocouple!
08:55 PM rue_shop3: yea I got one
08:55 PM rue_shop3: type K
08:56 PM Tom_itx: hmm
08:56 PM Tom_itx: stainless?
08:56 PM rue_shop3: dont have it on a handle with a meter tho
08:56 PM rue_shop3: well, er...
08:56 PM rue_shop3: its bare actually
08:56 PM rue_shop3: so I need to make a thing
08:56 PM Tom_itx: no reaction to the aluminum?
08:57 PM rue_shop3: I wouldn't dip it right in...
08:57 PM rue_shop3: I have to make a thing
08:58 PM rue_shop3: my todo list isn't getting shorter
08:58 PM rue_shop3: 16 things...
08:59 PM rue_shop3: my LM2907 arrived for the new cnc machine
08:59 PM rue_shop3: I'd like to play with them
09:00 PM rue_shop3: oooo power supply
09:00 PM rue_shop3: hmmm needs a class D power stage...
09:00 PM rue_shop3: do you know how to cook rubarb?
09:00 PM Tom_itx: nope
09:00 PM Tom_itx: never did that
09:00 PM Tom_itx: my grandmother did
09:00 PM * rue_shop3 looks to anniepoo ?
09:00 PM Tom_itx: made pie too
09:01 PM rue_shop3: anyone?
09:02 PM rue_shop3: lola8088
09:02 PM rue_shop3: she would know
09:03 PM Tom_itx: Combine 1/4 cup of sugar and 1/4 cup of water in a saucepan. Bring to a boil over medium heat and stir until sugar has dissolved. Add the rhubarb and bring sauce back to a boil. Reduce heat to a simmer and cook uncovered until rhubarb is crisp-tender, approximately 10 minutes.
09:03 PM Tom_itx: http://www.wikihow.com/Cook-Rhubarb
09:04 PM Tom_itx: basically the same thing
09:04 PM Tom_itx: must be ok then
09:13 PM anniepoo: 2 more connections to make, a bunch of careful checking, cable organization, install covers, and first power up
09:13 PM anniepoo: rhubarb -
09:13 PM Tom_itx: BOOM!
09:14 PM anniepoo: has to be cooked rather long time - it's inedible raw
09:14 PM Tom_itx: that's what i've heard too
09:15 PM anniepoo: yup - though I've already applied power just to check power supply, then to check main board and fan
09:15 PM anniepoo: then went back and connected everything
09:18 PM * rue_shop3 sits at the desk with a completely puckered up face
09:18 PM rue_shop3: inedible? oh...
09:19 PM anniepoo: yes, as in 'you have to cook rhubarb'
09:22 PM anniepoo: oh yes - you have to add lots of sugar
09:23 PM anniepoo: it's kind of like cooking with lemons. It's really acidic
09:24 PM anniepoo: my mom made rhubarb pie sometimes
09:24 PM anniepoo: 8c9
09:24 PM rue_shop3: good recipie for rubarb you have?
09:24 PM anniepoo: 8c( sadly didn't teach me
09:24 PM rue_shop3: <head-desk>
09:25 PM anniepoo: hang on, let me look at some, bet I can basically find it
09:25 PM anniepoo: it's not like there's a lot of variation
09:25 PM anniepoo: I do remember cinnamon
09:25 PM rue_shop3: pie or something...
09:25 PM rue_shop3: ok, thats good I have cinnamin
09:25 PM rue_shop3: I have sugar
09:26 PM anniepoo: http://allrecipes.com/recipe/12316/fresh-rhubarb-pie/
09:27 PM anniepoo: I'd say add about 1/2 tbsp or so cinnamon to that recipe, you've got my mom's version
09:31 PM anniepoo: ok, now I'm wanting to make a pie
09:31 PM anniepoo: I have canned pumpkin at home
09:31 PM anniepoo: 8cD
09:31 PM Jak_o_Shadows: https://www.aliexpress.com/item/Rctimer-SD-Logger-BlackBox-Flight-Data-Recorder/32677010032.html?spm=2114.01010208.3.206.w3XmQC&ws_ab_test=searchweb0_0,
09:31 PM Jak_o_Shadows: searchweb201602_2_10152_10065_10151_10130_10068_436_10136_10157_10137_10060_10138_10131_10155_10062_10132_10156_10133_10154_10056_10055_10054_10059_10099_10103_10102_10096_10147_10052_10053_10050_10107_10142_10051_10084_10083_10080_10082_10081_10110_10175_10111_10112_10113_10114_10181_10037_10183_10182_10185_10078_10079_10077_10073_10070_10123,searchweb201603_9,ppcSwitch_4&btsid=8fb27e59-a392-4cbd-bdea-eab1db284e18&algo_expid=
09:31 PM Jak_o_Shadows: 82cdcf4c-9baf-4b45-8839-c8c08f0fc7a3-28&algo_pvid=82cdcf4c-9baf-4b45-8839-c8c08f0fc7a3 is really neat
09:31 PM Jak_o_Shadows: oh gosh, sorry for that ulr
09:32 PM anniepoo: 8cD
09:32 PM Jak_o_Shadows: http://www.ebay.com.au/itm/Openlog-Serial-Data-Logger-Open-Source-Data-Recorder-ATmega328-Support-Micro-SD-/262944779371?hash=item3d38baec6b:g:s5EAAOSwE0JY-CrI is another view, for cheaper
09:32 PM anniepoo: well, I'm going to go home and cook
09:32 PM anniepoo: 8c9
09:37 PM z64555: inedible rhubarb is an understatment, it's downright poisoness
10:01 PM Anniepoo_: 8cD
10:02 PM Anniepoo_: waiting for pie shells to thaw a bit so I can poke'em before going in oven
10:03 PM mrdata_: mm... pie
10:16 PM synja: sorry my connection was shut
10:18 PM synja: anniepoo, not specific attributes through overall disparity of sound, although that's my next step. right now it's mostly just collecting sounds, verified through q-learning, in its everyday experiences.
10:18 PM Anniepoo_: pi -
10:18 PM Anniepoo_: no such thing as 'overall disparity of sound'
10:19 PM synja: well then, whatever it's called by taking trained data against the different artifiacts concerning a similar sound
10:20 PM synja: i often arrive at ideas far before i learn of the terminology, so forgive the misnomers
10:21 PM Anniepoo_: well, you don't have a problem domain here
10:22 PM synja: meaning there's already open-source code concerning it?
10:27 PM Anniepoo_: no
10:27 PM Anniepoo_: meaning 'you don't have a problem'
10:28 PM Anniepoo_: because it's too vague a problem to approach - 'distinguish environmental sounds'
10:29 PM Anniepoo_: you mean distinguis the sound of a jet on takeoff that will make it to destination vs one that will lose an engine?
10:29 PM Anniepoo_: or do you mean distinguish a highland scotts accent from an Edinborough accent?
10:30 PM Anniepoo_: or do you mean identify bird calls?
10:30 PM Anniepoo_: or hate speech?
10:30 PM Anniepoo_: or waltzes?
10:31 PM z64555: Can't really make a solution if you don't know what it is exactly you are looking for
10:33 PM synja: bird calls and accents yes, jet destination no, emotional recognition via audio and waltzes yes
10:33 PM synja: i know what i'm looking for
10:33 PM Anniepoo_: you ask for resources - should I point you towards the whole huge phons/sons literature, or frequency domain work, or machine learning, or ?
10:34 PM Anniepoo_: well, if you can do all those, you get a nice shiny PhD
10:34 PM synja: machine learning algorithms for this type of problem
10:34 PM synja: specifically
10:34 PM z64555: or should get one, at any rate
10:34 PM Anniepoo_: then you should look at recurrant and convolutional neural networks
10:35 PM z64555: pretty sure a fuzzy logic engine can get the job done just fine, but NN's are the newest shiny
10:35 PM Anniepoo_: I"d recommend you start by reading the sections of Artificial Intelligence, A Modern Approach, by Peter Norvig
10:35 PM synja: hehe z64555
10:36 PM * Anniepoo_ is smelling pumpkin pie
10:36 PM z64555: the motional recognition tho. that'll be a real trick
10:36 PM synja: emotional?
10:36 PM z64555: which would be something worthy of a NN
10:36 PM synja: perhaps
10:36 PM z64555: yes, emotional. fingers typing faster than my eyes can proofread
10:37 PM synja: i learned from a blind pastor once that it was possible
10:37 PM synja: that i helped
10:37 PM synja: i've been learning and applying hypotheses to learn about it
10:37 PM synja: it's interesting
10:37 PM synja: work parallel to ekman's in microexpressions
10:38 PM z64555: eh, emotional expression needs a whole lot more than just audio, though
10:38 PM Anniepoo_: synja, you can't study everything
10:38 PM synja: of course there's a semantic side
10:38 PM synja: Anniepoo_, i beg to differ
10:38 PM z64555: Can't study everything in a lifetime. :D
10:38 PM z64555: unless you live forever :D
10:38 PM synja: then again, you don't need to know everything
10:38 PM synja: you just need to know where to find it and how
10:39 PM Anniepoo_: https://www.xkcd.com/863/
10:39 PM synja: there are flyweights in all skills
10:39 PM synja: you just have to learn to recognize and utilize them
10:40 PM z64555: ah, there's that keyword
10:40 PM z64555: 'just'
10:40 PM Anniepoo_: really? How good a sculptor are you? Are you a qualified psycotherapist? How do you feel the French election will effect the Hungarian economy? Can you suggest a good reagent for slowing down the process of RNA transcription?
10:40 PM synja: i'm not putting in a macro for you
10:41 PM z64555: I like to consider myself a novice sculptor, I can make a decent clay figure, but don't expect me to make any statues :D
10:41 PM Anniepoo_: 8cD
10:42 PM z64555: I stay as far away from politics as I can, so I am not qualified to make any sort of opinion on it
10:42 PM synja: i'm a decent musician (violin,piano,guitar), i haven't drawn anything in years, but i loved how precise it could be, very little politics
10:42 PM z64555: and for RNA transcription, I suggest tea. At least it sounds like it would help
10:43 PM Anniepoo_: lol
10:43 PM z64555: percussionist here, and I still have a trumpet I've been putting off learning for years
10:43 PM z64555: I need to get a mute or something to practice quitely
10:43 PM Anniepoo_: I know zilch, zip, zero about music
10:43 PM z64555: Or get used to wearing ear plugs
10:43 PM synja: to slow rna transcription
10:44 PM synja: maybe lowering levels of transcriptase?
10:44 PM z64555: Anniepoo_ Do you know programs?
10:44 PM Anniepoo_: I've tried to learn to sculpt off and on, fimo and omigarumi are about my speed
10:44 PM Anniepoo_: as in computer programs? Yes, a few of them
10:44 PM z64555: music is exactly that
10:45 PM z64555: ...and then there's jazz
10:45 PM Anniepoo_: yes, and bizarrely, I once won an award for being part of a team that designed a musical instrument
10:46 PM Anniepoo_: but I know relatively little about music
10:47 PM z64555: music is both a program, and an emotion (or sequence of them)
10:47 PM z64555: learning how to play an instrument is the gateway to learning to play music
10:48 PM z64555: and can be viewed as a by-product of your brain, and maybe even your soul, from day-to-day living
10:48 PM synja: what a load of crap :P
10:50 PM z64555: Or it can be viewed as a sort of neural net program
10:50 PM z64555: with one hell of a randomizer
10:50 PM synja: that's closer
10:50 PM synja: randomize the analysis/implementation of the patterns
10:50 PM synja: not the data itself
10:51 PM z64555: no, you still can randomize the data
10:51 PM synja: you can but that's not the essence of most music
10:51 PM synja: music is based on logic and patterns
10:51 PM z64555: and where do those patterns come from?
10:51 PM synja: the emotional aspect takes that to many levels
10:52 PM synja: from other people's work, or a slight amalgamation
10:52 PM z64555: "slight" amalgamation
10:52 PM z64555: If that were true, then music wouldn't exist
10:52 PM synja: combining certain attributes but not other
10:53 PM synja: i said most music
10:53 PM z64555: If music was simply a self-modifying algorithm, then there had to have been a seed. Even looking at bird song or similar sounds in nature doesn't quite fit the bill
10:54 PM synja: there are aspects to it
10:54 PM z64555: most commercial music, perhaps
10:54 PM synja: at least i'm naming them objectively instead of saying, "can be viewed as a by-product of your brain, and maybe even your soul, from day-to-day living"
10:55 PM synja: there's also a semantic nature as well
10:55 PM z64555: What's wrong with the by-product statement?
10:55 PM z64555: It's been my experience that you can't force creativity and expect a pleasant result
10:55 PM synja: it just pushes the epistemology to subjectivity
10:56 PM synja: creativity is mostly recognizing patterns independent from data type
10:58 PM * z64555 hums a little tune which has no name
11:03 PM synja: randomized data is a last ditch effort and should be avoided unless it's requiredd
11:08 PM synja: well i g2g
11:14 PM z64555: meh, randomized data is not a last ditch effort
11:14 PM z64555: but, I can't continue my arguement while he's gone
11:14 PM z64555: :(
11:15 PM Anniepoo_: sigh....
11:16 PM Anniepoo_: The Chudnovsky brothers are well respected mathematicians
11:17 PM Anniepoo_: the New Yorker was going to do a bio article on them
11:17 PM Anniepoo_: they asked that their names not be used, because they felt they were just workers in the field, no different than many other good mathematicians
11:20 PM z64555: :)
11:26 PM Anniepoo_: one day in a menlo park mcdonalds I started conversation with guy at next table who'se reading a celestial mechanics text
11:26 PM Anniepoo_: turns out it's AH Reddy....
11:37 PM mrdata: nice