LabVIEW: Making a window active

A small issue that I have been trying to resolve is when a LabVIEW application runs and multiple windows are open, the need is often there to bring a window to the front as some stages of the application. 

Now I am sure there are many ways to perform this task, but the easiest and most reliable way that I found is to use the user32.dll that is part of the windows installation. This dll is easily accessed by using Call Library Function Node. This can be found in Connectivity >> Libraries & Executables.


The three methods that are used are FindWindowA, SetForegroundWindow and ShowWindow. By wiring these us and adding the correct window name that you want to bring forward, when the program is run whatever window name is selected will be brought to the front. 

There are many other tasks that can be performed by using the user32.dll. I have used it in a few other places in my programs and will add some more posts in the future of where it can be used.

To download the example VI, use this link.

Greg

2W red LED bicycle light update

If you missed the first post about my modified bicycle light, take a look here
So I used my light last weeks at #moonlightmass and it was super cool. I got a few comments about how bright it is and I suppose it’s not a great idea to use this light in a crowd of people. To be seen out on the road by cars, this light is great.

Here is a picture of the modified light mounted on the seat post with the battery pack and controller mounted in a box under the saddle.

Here is a quick video of the light in action.

There are still a few software changes that I need to do like complete the low battery indicator and I also want to add a few more light functions, but that will come when I get a chance.

Greg

Bicycle light using two 1W red LED’s

I bought a 1200 lumen light the other day so that I can cycle before and after work when it is still dark. It works really well to light my way, but I also wanted a decent back light. After all, the cars generally come from behind and need to see you.
Instead of simply buying one, I decided to make one by recycling an old bicycle light that I had lying around and use two 1W red LED’s that I have also had for a while and never used.
The first hurdle I had to overcome was to design a power supply capable of delivering at least 350mA and one that could supply 6.4V, enough for two LED’s. I also wanted to use at the most, two 1.2V NiMH batteries.
The next choice I had to make was what controller I wanted to use. I settled on a small, low cost micro controller. I also decided to run the entire circuit off 5V. This would slightly under drive the LED’s, but would safely power the micro without using two power supplies.
For the power supply, I went with the LM2623 which is capable of supplying 2A with an input of as low as 0.8V.

For the micro controller I went with the PIC12F615 which has an internal nMCLR pull up and an internal 4MHz oscillator which keeps the pin count low.

To drive the 1W LED’s, I am using a BD139 transistor. I am driving it just below its limit, but I had a few lying around so just used one. I am using a PWM signal of 1KHz and the LED’s are on for 50ms and then off for 250ms. At the moment I only have one setting but I plan to add more in my next version, different flash rates and solid on.
I use one of the analog inputs to measure the battery voltage. By doing this I can turn on the 3mm LED when the battery voltage goes below 2V. This means that I won’t run the battery’s too flat and damage them.
The battery’s and controller are housed in a plastic box which I have tied neatly under my saddle and the light is attached to my seat post. 
At the moment this is my prototype which works, but isn’t 100% complete. I still need to tweak the part of the program that measures the battery voltage and I also want to play around with the current limiting resistor so that I can get the max brightness out of the 1W LED’s. I also have to test how long the circuit will run on two AA battery’s.
I will be testing it tonight at Cape Town’s #moonlightmass to see how it performs. I will also get some pictures or videos and put them in a follow-up post. 
If you want the DesignSpark schematic and the micro controller code, use this link.
Greg

Adding source code to Blogger

I have been trying for quite some time to add source code to my blog. Just copying and pasting the code works fine, but there is no proper formatting or colours used in normal source code editors. After browsing the internet and reading many examples, I finally came across this website that helped me get it done.
I have used the SyntaxHighlighter script and from what I have seen, this seems to be the most used method. It supports a number of different programming languages and once set up, very easy to implement.
Please back up your blog before trying this as you need to edit the html template. From your Dashboard, navigate to Template, and then select Edit HTML. A warming will pop up so select Proceed. The HTML template will now be displayed.
Navigate down in the template to find </head>
Copy the code below and paste it above </head>


































Preview your template to ensure that it still looks ok. If all is fine, then save the template and close the editor.
The next step is to make the script work. You do this by using the <pre> and </pre> HTML tag. In between these tags is where you add your code. You also need to specify which script to use depending on what language your source code is in. Here is the example I used to display C# source code.

private void UpdateCounter()

{

if (iCounter.Value < 50000)

{
iCounter.Value++;

{

}
else

iCounter.Value = 1;
}
}
You need to add the tags and code in the HTML editor. Once the source code has been added, then you can go back the the text editor to complete the post.
That’s about it. Once the template has been edited and your set up is correct, adding source code it pretty easy.
Greg

LabVIEW: Event Structure vs While Loop

When I started working with Event Structures in LabVIEW, I wondered what the difference was in terms of CPU usage. In a small program, managing efficiency might not be an issue but in a large testing environment where many processes need to be performed, the need for managing efficiency becomes quite important.
To test the difference in CPU usage between using the standard While Loop, which can get messy very quickly and the Event Structure, I wrote a simple program. The While Loop and Event Structure options are placed in different cases which is selected before the program is run. Both options monitor two buttons, display a message when either button is pressed and has a counter which shows how many times the loop is run.
The Event Structure monitors two buttons and displays a message for each. 
The While Loop also monitors two buttons but as it can be seen from the front panel above, it is quite a bit more messy than the Event Structure. If any more button or inputs need to be monitored, this method can quite easily get out of hand.
Here is the CPU monitor comparison of the two options being run. On the left is the Event Structure only using 5% and on the right is the While Loop which is using 30%. There are ways to slow the While Loop down like adding a loop delay but I wanted to show the extremes.
I hope this helps and can provide some display on the different ways to do a similar process.
To download the example VI, use this link.
Greg