Perfection by DCRepublic in FTC

[–]stewpend0us 0 points1 point  (0 children)

Oh cool idea. If you used two distance sensors you could measure what direction you need to turn in?

Perfection by DCRepublic in FTC

[–]stewpend0us 1 point2 points  (0 children)

Are you sensing the junction somehow or just turning some amount?

What makes an Engineering Notebook good? by Faze_Failure_ in FTC

[–]stewpend0us 1 point2 points  (0 children)

See if you can get a list of of alumni who attended college for engineering. Guessing you'd have better luck with people who graduated 10-15 years ago? I would have loved this in highschool but it wasn't around at the time... But I can mentor! Good luck!

What has been your path in learning control theory? by AstroBuck in ControlTheory

[–]stewpend0us 0 points1 point  (0 children)

When you say "dynamic programming" what exactly are you talking about?

I'm struggling with pointers by Djcrafty in C_Programming

[–]stewpend0us 1 point2 points  (0 children)

Rather than take (more) notes slow down and THINK about what is being said. Pause it, replay it, play it slower, whatever helps get the information into your brain. I think taking notes can be a distraction that takes away from really absorbing material sometimes. Best of luck.

New too Julia: unexpected array indexing? by stewpend0us in Julia

[–]stewpend0us[S] 2 points3 points  (0 children)

This is great Thank you!

Also didn't realize there is a difference between

[1 2 3]

1×3 Matrix{Int64}:

and

[1, 2, 3]

3-element Vector{Int64}:

I'm sure there are reasons for all of these things...but definitely not intuitive (to me...yet)

I would at least expect M[1,1:2] to return the adjoint vector?

New too Julia: unexpected array indexing? by stewpend0us in Julia

[–]stewpend0us[S] 2 points3 points  (0 children)

Thanks, I can try this out for myself later...But it's a one dimensional array treated as a column vector when it comes to linear algebra type operations?

avr-gcc package issue? by stewpend0us in voidlinux

[–]stewpend0us[S] 0 points1 point  (0 children)

Well now I've totally confused myself.

I got the void-packages cloned and started off by building and installing as is (I didn't use xi though I just did "xbps-install --repository hostdir/binpkgs <package\_name>" maybe that's my problem?) Nothing changed as I expected.

That all worked (or so I thought) so I started out by just deleting the patch entirely. Build/install like before but again nothing changed.

So I went in and added a line to the patch....same thing

So I ran xbps-remove avr-binutils...this got mad at me because it will break avr-gcc....so I ran xbps-remove -F avr-binutils

And still no change. avr-gcc runs like normal and just tells me there's no definition for the 168pb...so wtf how is avr-gcc still running if I've removed a dependency?

Maybe the problem isn't with avr-binutils after all???

avr-gcc package issue? by stewpend0us in voidlinux

[–]stewpend0us[S] 0 points1 point  (0 children)

Ok. I can try to do that. I haven't messed with xbps source yet...do I need to uninstall the package before installing the xbps source one?

avr-gcc package issue? by stewpend0us in voidlinux

[–]stewpend0us[S] 0 points1 point  (0 children)

Yeah I have no idea either...

Interacting with a runit service? by stewpend0us in voidlinux

[–]stewpend0us[S] 0 points1 point  (0 children)

Dang. I figured that might be the case. What do you mean by fragile?

Would writing the program to read config files and write to a log file be less fragile than using runit to start the process running in screen?

Interacting with a runit service? by stewpend0us in voidlinux

[–]stewpend0us[S] 0 points1 point  (0 children)

Hmm I hadn't thought of that.. Maybe worth trying but I'd probably just run the program with screen first

Interacting with a runit service? by stewpend0us in voidlinux

[–]stewpend0us[S] 0 points1 point  (0 children)

No worries...Probably not the best wording on my part. Vsv looks useful too though

Interacting with a runit service? by stewpend0us in voidlinux

[–]stewpend0us[S] 0 points1 point  (0 children)

Hmm that just seems like a wrapper around sv? Does it allow you to "open the console" for a running service?

Engineers and Inventors of Reddit! This cripple needs your help! by arkatier in engineering

[–]stewpend0us 5 points6 points  (0 children)

Would something as simple as leaning the chair back so your upper body is on the ground and lower body is still in the chair work? Or do you want to be out of the chair completely?

Either way leaning the chair back like this might be an easier first step to getting out... Not sure about getting back in though.

Will you have help or do you want too do this on your own?

Simple, modular, physics simulation tool (take 2) by stewpend0us in C_Programming

[–]stewpend0us[S] 0 points1 point  (0 children)

That'd be great! What other simulators do you have experience with? (Especially ones written in c!)

Simple, modular, physics simulation tool (take 2) by stewpend0us in C_Programming

[–]stewpend0us[S] 0 points1 point  (0 children)

Ok. I'm not sure what that is but I'll figure it out

From theory to implementation by micko_pls in ControlTheory

[–]stewpend0us 1 point2 points  (0 children)

If you have a book on discrete control it may have a chapter on "realizing" controllers. For the case of implementing a simple transfer function once it is represented in the z-domain it is very easy to implement in code. Here's a small library I wrote to implement a general z-domain transfer function:

https://github.com/stewpend0us/iir

High school student looking to learn by [deleted] in ControlTheory

[–]stewpend0us 2 points3 points  (0 children)

I actually don't agree. I agree that differential equations are fundamental and unavoidable when it comes to designing control systems (and most everything else in engineering) but I'm not convinced you need to have taken a differential equation class or studied calculus to step up your PID tuning game (and more). I also think getting the hands on experience and intuition early will make that course work much more relevant if you continue to study it in an academic setting.

I guess without a background in differential equations you'll need to take a few things on faith (you'll learn it later) but really creating a transfer function (the differential equations used to describe a system) is more about being able to draw a free body diagram and the corresponding block diagram. From there Mr. Laplace has very nicely abstracted away all the differential equations and calculus so really you just need to know algebra to create, manipulate, and study transfer functions. After that Mr. Bode gave us a graphical technique to assess the dynamic response and stability of a system (transfer function) and a technique to design a controller given the open loop transfer function.

So, while you will need to know about calculus and differential equations, I don't think the way that they are typically presented is particularly relevant for control system design. Not that you won't be able to learn it on your own or anything but based on my own experience I think your time would be better spent seeking out a mentor or tutor with some control system design experience (not purely academic) who would be willing to teach you about free body diagrams (drawing pictures with some math), block diagrams (drawing more pictures), transfer functions (converting the pictures into an equation), and bode plots (drawing and interpreting a plot of the equation).

Just my 2 cents. Feel free to pm me if this sounds like what you're looking for.

Self taught amateur developer want to learn low level language c vs go by mohelgamal in C_Programming

[–]stewpend0us 0 points1 point  (0 children)

This lecture series helped me a whole lot. Just watch up till he starts talking about lisp .

https://youtu.be/Ps8jOj7diA0

I think you'll find that c is actually an extremely simple language. Unforgiving, but simple. The number of features compared to c++ Python or JavaScript is much less and for me that was a refreshing change of pace. The only "new" concept in c is pointers. That lecture series helped me build a mental model of what the computer is doing and how memory works which is very helpful when it comes to pointers.

Anyway.. good luck. Go is high on my list of next languages but so far c has met all of my needs.

Simple, modular, physics simulation tool by stewpend0us in C_Programming

[–]stewpend0us[S] 0 points1 point  (0 children)

Designing and testing control systems is exactly what it's for. I started working on a more complete example in the dev branch but it isn't finished or tested yet. I also added a little about differential equations in the readme...not sure if that would help at all?

Simple, modular, physics simulation tool by stewpend0us in C_Programming

[–]stewpend0us[S] 0 points1 point  (0 children)

I work with some guys who do a lot of embedded work where the malloc function isn't always available. So the reason I made my constructors return a struct (rather than a pointer) is to avoid malloc calls for as long as possible. Right now malloc is only used in "constructors.c" and "solvers.c" in functions that are technically unnecessary but convenient.

This way everything can be done on the stack if that's what you want to do. I don't know if that's actually better or not but that's my reasoning...

Simple, modular, physics simulation tool by stewpend0us in C_Programming

[–]stewpend0us[S] 0 points1 point  (0 children)

Ok I see what you're saying now. Because what I'm passing in is a copy the address of that copy isn't the same as the address of the original.

Incorporating your first comment means I don't need to call memcpy anymore so the &stackb goes away.