Analog circuit simulation library? - genetic-programming

I'm working on a genetic programming tool and I'd like to evolve analog circuits. Can anyone suggest a library or tool or even a reference for hooking my GP code up? I just need some way to have something like SPICE evaluate the circuits that are created by my code. I've seen reference to plain text representations of the circuits (netlists) which are used by tools like SPICE. I'd like to know if there is a better way to connect to a simulator than to run it and pass the netlist on standard input. My code is written in C, in case you're wondering what sort of library I'm interested in.

Modelica has various circuit analysis capabilities.

SPICE is the reference electronics simulator.
I think it's mostly written in Forth, these days mostly using a Forth-to-C translator. I'd try to integrate it simply reading its text output to pick the values you want to {min/max}imize

Related

Is it impractical to use GNU Radio without the Companion GUI?

I have a relatively new M1-based Macbook but Companion isn't stable. It will, for example, crash as soon I as I try to choose the "File" or "Edit" menus and has crashed while I was attempting to adjust parameters.
I am able to communicate with and obtain samples from my Ettus N210 just fine but I'd like to eventually try to use the DVB-S2 receive blocks.
This is all a bit new to me, but I'm an experienced Python programmer and don't mind if I have to write some code. I don't necessarily need a Qt application to be generated--I'm fine with wiring things up and writing data to a file.
Is it practical to do this? Can someone point me to a resource, perhaps a tutorial, on writing things without using the Companion code generator?
The GNU Radio Companion (GRC) is just a design tool. It's a companion.
GNU Radio has tutorials that explain writing flow graphs in Python.
Go to https://tutorials.gnuradio.org and click on "Understanding a Flowgraph's Python Code".
Didactically, most of the things you need to learn are of the "what is the logic behind doing this DSP", which is really a math/signal processing thing, not just a Python coding excercise. Unless you've built similar signal processing flow systems before, I'd strongly discourage trying to do what you're intending to do. Get a VM in which GRC works (see comment), and do the tutorials from start to finish in the specified order. Trying to learn GNU Radio, flowgraph-based DSP design AND doing all by hand instead of having a handy graphical design tool is a recipe for frustration.

Modern language IDE similar to QBasic?

I'm trying to find a modern environment similar to what I found great about QBasic but making up for the flaws. The purpose of this is to code with my 6 year old son.
I'm looking for an IDE that uses a modern language, has the ability to draw graphics and play audio, and doesn't force the User to jump around much between coding and running their application.
In QBasic you had basically two modes: Edit and Run. There were no third party libraries required for creating graphics or generating Audio tones (that I remember). You never had more than one "window" opened at a time.
Is there a modern day equivalent IDE which uses a modern language that provides what I'm looking for?
I don't want him to have to jump around between various windows, try to wrap his mind around window toolkits, understand the command line, or use OOP just to get started. My end goal is to create simple graphical games with him -- not printing text out to the console.
(Preferably cross platform or useable on Mac OSX since that's what we have at the house. Preferably Python based since that's my language of choice.)
QBasic is a great option. You can purchase an old PC from a thrift store and run QBasic on it. There is the option of QB64 which can run on both Mac and Windows. Hope this is helpful.
I'd suggest QB64, almost 100% compatible with QBasic/QuickBasic but runs on Windows.
You could maybe try Small Basic, it aimed to recreate the ease-of-use and educational purposes of the old BASIC languages build into home computers from the 1980s
The Small Basic project was initiated following this article on Salon:
Why Johnny can’t code (David Brin, 2006)

plotting robot path

I am writing code for rrt(rapidly exploring random trees) which is a sampling based motion planning algorithm.I wrote the code in MATLAB but now i am writing it in c++.
I want to know how can we plot the robot path in real time with all the obstacles.
What I want is this: I want to see my robot traversing the space.So basically it's about the graphics.I am trying to use sfml but I am having problems with it.Some people suggested using opencv or opengl but I think they are not easy to use.I am looking for a simple to use library.
If opencv or opengl is the answer then please tell me what specifically i need to use in these libraries.I am working on linux(ubuntu 11.10)
You might want too look into using the internal matlab compiler for generating a standalone application directly from your M-code. That way you don't have to rewrite everything form scratch.
I have used the following link a couple of times just to refresh my memory
http://technologyinterface.nmsu.edu/5_1/5_1f/5_1f.html
Eg if you have made an M function with the following content(Example from link):
function y=PolyValue(poly,x)
poly=[1 2 -1 4 -5];
x=[5, 6];
y=polyval(poly, x)
you could use the command
mcc -m PolyValue
to compile the program.
This command would then give you the files necessary for implementation in a larger c++ program.
It should even support Gui elements and graphs.
Something like http://www.ros.org/news/2011/01/open-motion-planning-library-ompl-released.html
may be what you are looking for.
I've worked in both OpenCV for some image recognition projects and OpenGL for rendering displays and whether you go with a library like above or render it yourself is really up to how complex the display needs to be. Ask yourself some questions about how many different obstacle scenarios you are looking at. Are there a large multitude of possible shapes for the obstacles and the robot? Is the problem deterministic (in terms of both the robot's movement and the environment)?
In terms of OpenGL and OpenCV being not easy to use for those new to them, this is very much the case, but choosing to work in C++ makes the problem more difficult for beginners. As another user has mentioned, wrapping your Matlab code instead of throwing it away may be a viable option. Even running the matlab engine in the background to run your scripts through C++ may be viable, if speed is not a critical factor. See http://au.mathworks.com/help/matlab/matlab_external/introducing-matlab-engine.html for more information.

Which IDE to use for ATMega32 micro controller coding

I am involved in a project which requires designing a mini rover (mars rover types). I am using ATMega32 micro controller. I have other hardware like DC motors, IR sensors etc. My query is that is there any IDE that I can use to code the micro controller? It must be user friendly since I am new to the concept of micro controller coding, and also it must have simulators. I did look it up on the net, but there are so many terms associated with it, that it confused me in the end. I think a simple IDE where I can write code, test it using simulator would be enough. Any suggestions?
I would try the Arduino's IDE: http://www.arduino.cc/en/Main/Software
It supports a lot of things such as building and debugging and interfacing with avrdude all from inside the IDE, so definitely a good one for embedded work, though I've never used it myself.
Also, while you are there, you may want to give the Wiring libraries a try. They are really nice for new people and are specifically for the ATMega32(I think).
There's no silver bullet.
Start here http://www.atmel.com/dyn/products/tools_v2.asp?family_id=607
Look for some videos on Youtube to learn.
Arduino is also a very good choice like Earlz wrote.
The best IDE to use would be ATMEL STUDIO 6. You can find it here http://www.atmel.com/microsite/atmel_studio6/. Also you would need a ICSP programmer to burn the .hex file into the Atmega32. Note: The ICSP programmer can also be use to program other atmega chips

3d files in vb.net

I know this will be a difficult question, so I am not necessarily looking for a direct answer but maybe a tutorial or a point in the right direction.
What I am doing is programing a robot that will be controlled by a remote operator. We have a 3D rendering of the robot in SolidWorks. What I am looking to do is get the 3D file into VB (probably using DX9) and be able to manipulate it using code so that the remote operator will have a better idea of what the robot is doing. The operator will also have live video to look at, but that doesn't really matter for this question.
Any help would be greatly appreciated. Thanks!
Sounds like a tough idea to implement. Well, for VB you are stuck with MDX 1.1(Comes with DirectX SDK) or SlimDX (or other 3rd party Managed DirectX wrapper). The latest XNA (replacement for MDX 1.1/2.0b) is only available for C# coder. You can try some workaround but it's not recommended and you won't get much community support. These are the least you need to get your VB to display some 3d stuffs.
If you want to save some trouble, you could use ready made game engine to simplified you job. Try Ogre, and it's managed wrapper MOgre. It was one of the candidate for my project. But I ended up with SlimDX due to Ogre not supporting video very well. But since video is not your requirement, you can really consider it. Most sample would be in C# also, so you need to convert to VB.Net to use. It won't be hard.
Here comes the harder part, you need to export your model exported from SolidWorks to DirectX Format (*.x). I did a quick search in google and only found a few paid tools to do that. You might need to spend a bit on that or spend more time looking for free converter tools.
That's about it. If you have more question, post again. Good Luck
I'm not sure what the real question is but what I suspect that you are trying to do is to be able to manipulate a SW model of a robot with some sort of a manual input. Assuming that this is the correct question, there are two aspects that need to be dwelt with:
1) The Solidworks module: Once the model of the robot is working properly in SW, a program can be written in VB.Net that can manipulate the positional mates for each of the joints. Also using VB, a window can be programmed with slide bars etc. that will allow the operator to be able to "remotely" control the robot. Once this is done, there is a great opportunity to setup a table that could store the sequencial steps. When completed, the VB program could be further developed to allow the robot to "cycle" through a sequence of moves. If any obstacles are also added to the model, this would be a great tool for collission detection and training off line.
2) If the question also includes the incorporation of a physical operator pendent there are a number of potential solutions for this. It would be hoped that the robot software would provide a VB library for communicating and commanding the Robot programatically. If this is the case, then the VB code could then be developed with a "run" mode where the SW robot is controlled by the operator pendent, instead of the controls in the VB window, (as mentioned above). This would then allow the opertor to work "offline" with a virtual robot.
Hope this helps.