tag:blogger.com,1999:blog-59686952483804460572024-02-20T10:43:56.221+01:00PMC's BlahMarinhttp://www.blogger.com/profile/15089029793504830782noreply@blogger.comBlogger8125tag:blogger.com,1999:blog-5968695248380446057.post-59441523222740414972010-03-30T14:23:00.002+02:002010-03-30T14:54:05.049+02:00Pinguino and LCD Module (4 bit data bus version)OK, here we have a 4 bit version of LCD Module driver.<br />
<br />
It is roughly based on LCD example from <a href="http://pinguino.koocotte.org/index.php/LCD_Example">Pinguino Wiki</a>.<br />
<br />
The source code can be found on <a href="http://pastebin.com/MgKQGHvv">pastebin</a>.<br />
<br />
And here is the photo:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGeQ2dk0x_MjUkMhf4UFI3dq-XMGayNA0IuxENjrkugrRwUOYXbH2xNDHQV9_Ok4HMBuHmXWm1HQTQCXDBayA2NlvGztMd9mFT7yCS1Ndr51dSQduB75DfHIOEu9SOLc2gJ32IcnJE9Zw/s1600/Pinguino_LCD.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="266" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGeQ2dk0x_MjUkMhf4UFI3dq-XMGayNA0IuxENjrkugrRwUOYXbH2xNDHQV9_Ok4HMBuHmXWm1HQTQCXDBayA2NlvGztMd9mFT7yCS1Ndr51dSQduB75DfHIOEu9SOLc2gJ32IcnJE9Zw/s400/Pinguino_LCD.jpg" width="400" /></a></div>Marinhttp://www.blogger.com/profile/15089029793504830782noreply@blogger.com1tag:blogger.com,1999:blog-5968695248380446057.post-64790598088474782632010-03-21T11:52:00.001+01:002010-03-21T11:52:32.310+01:00Drilling Software Progress ReportLast night I made some significant progress in PCB Drilling Software.<br />
<br />
I added tracking of holes drilled, progress bar and ETA estimation.<br />
<br />
Everything is coded in TCL/TK. The icon set used (modified) is from KDE's Oxygen Theme.<br />
<br />
Of course, the screenshot:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6anK-bfA7x0uu0czUXbg8xHx41F1_rjhco5OMzjcSCRnSCY_1GoiP3nfoVIQmUcS7jP4ZWVK-l2ab1DdPpletb2V5X939n62Gej3s4eIVZiR1rP2teKWIy5RrEh0cJOsGMEQWM8wciXM/s1600-h/MyCNC-20100321-1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="254" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6anK-bfA7x0uu0czUXbg8xHx41F1_rjhco5OMzjcSCRnSCY_1GoiP3nfoVIQmUcS7jP4ZWVK-l2ab1DdPpletb2V5X939n62Gej3s4eIVZiR1rP2teKWIy5RrEh0cJOsGMEQWM8wciXM/s320/MyCNC-20100321-1.png" width="320" /></a></div><br />
<br />
The drillfile displayed is for the board with 6 Pinguino 4550 Light boards.<br />
<br />
<br />
bb4now,<br />
PMCMarinhttp://www.blogger.com/profile/15089029793504830782noreply@blogger.com0tag:blogger.com,1999:blog-5968695248380446057.post-86614942964155334172010-03-19T13:53:00.008+01:002010-03-19T14:07:35.172+01:00PCB Dilling Machine ProgressYesterday we made some progress with PCB Drilling Machine.<br />
<br />
The CNC Machine is currently driven by Atmel 90C2051, but my plan is to switch it completely to Pinguino.<br />
<br />
But, for now, I can show you how the machine drills in the test set-up. Software is done (not production ready). Calibration of the motors and the drill is done.<br />
<br />
One more thing to do is to speed up the drill pull-out. Now the speed of the drill in the 'down' phase is the same as in the 'up' phase.<br />
<br />
More on that during the weekend when I hope to show you first Pinguino PIC18F4550 based PCBs drilled by Pinguino itsefl!<br />
<br />
For now, some obligatory YouTube videos of the machine in action (OK, more-or-less action):<br />
<br />
CNC PCB Drilling Machine - Overview<br />
<br />
<object width="410" height="260"><param name="movie" value="http://www.youtube.com/v/beCjKTJ-R3k&hl=en_US&fs=1&"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/beCjKTJ-R3k&hl=en_US&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="410" height="260"></embed></object><br />
<br />
CNC PCB Drilling Machine - Zoom Detail 2<br />
<br />
<object width="410" height="260"><param name="movie" value="http://www.youtube.com/v/kEsaRNDnI2g&hl=en_US&fs=1&"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/kEsaRNDnI2g&hl=en_US&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="410" height="260"></embed></object><br />
<br />
bb4now,<br />
PMCMarinhttp://www.blogger.com/profile/15089029793504830782noreply@blogger.com2tag:blogger.com,1999:blog-5968695248380446057.post-70674176889857814232010-03-18T09:28:00.000+01:002010-03-18T09:28:21.356+01:00Pinguino as Voltmeter V2Yesterday I improved the Pinguino as Voltmeter Python UI.<br />
<br />
The scale has numbers, the needle is read and there are some other small UI improvements. But the most significant change is that the widget is not repainted every 20 milliseconds. Now it is repainted only when needle moves. The Class still stays under 50 lines of code.<br />
<br />
There has been no changes to Pinguino Class.<br />
<br />
The new version can be found on <a href="http://pastebin.com/2tQVavYL">pastebin</a>.<br />
<br />
And here is the screenshot:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5-fH_4xTvL4HfGvYXMpLOxI819NFVimpj_9Uf1jogU5475Gtl7BYyTJ-tWw-jLFnvkFyBziNWfp494f_p_LMaowV8sBNmSyCYY_idKk5B1QmW-4lFvM00RAVkfeoRMtvaZTwOS17wX9M/s1600-h/AnalogMultimeter1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5-fH_4xTvL4HfGvYXMpLOxI819NFVimpj_9Uf1jogU5475Gtl7BYyTJ-tWw-jLFnvkFyBziNWfp494f_p_LMaowV8sBNmSyCYY_idKk5B1QmW-4lFvM00RAVkfeoRMtvaZTwOS17wX9M/s320/AnalogMultimeter1.png" width="320" /></a></div><div class="separator" style="clear: both; text-align: center;"><br />
</div><div class="separator" style="clear: both; text-align: left;">bb4now,</div><div class="separator" style="clear: both; text-align: left;">PMC</div><div class="separator" style="clear: both; text-align: left;"><br />
</div>Marinhttp://www.blogger.com/profile/15089029793504830782noreply@blogger.com1tag:blogger.com,1999:blog-5968695248380446057.post-30847585682131476362010-03-16T21:52:00.001+01:002010-03-17T19:03:46.110+01:00Pinguino as Voltmeter (Multimeter)Well, today I managed to put up a little python script which uses Pinguino as Voltmeter.<br />
<br />
The script can be found on <a href="http://pastebin.com/nmEp675Y">pastebin</a>. It is quite short, but it implements two classes: Analog Multimeter for the nice Voltmeter gauge pictured below, and Piguino which abstracts Pinguinos USB interface.<br />
<br />
The driving Pinguino script is on <a href="http://pastebin.com/AugGMP4v">pastebin</a> too.<br />
<br />
So, what you need is Linux with installed python, PyKDE4, PyQt4 and PyUSB. In order to install PyUSB you will ned libusb too.<br />
<br />
Just upload the Pinguino script to Pinuguino and run the python script and you should get something like this:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgM86gchTSryVY886OsGOZUTaLOUMwiHYmGLliLJvJpEZxzQuoLqnSbfDl6Ohitou21Ssq3OC1pUrWXNy8MfrNm2OC5UU1mB6p2yenCtz5CJN_WjfD4bIJkrAU8eQKKY-eC1vrEnRAWHjA/s1600-h/AnalogMultimeter.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgM86gchTSryVY886OsGOZUTaLOUMwiHYmGLliLJvJpEZxzQuoLqnSbfDl6Ohitou21Ssq3OC1pUrWXNy8MfrNm2OC5UU1mB6p2yenCtz5CJN_WjfD4bIJkrAU8eQKKY-eC1vrEnRAWHjA/s320/AnalogMultimeter.png" /></a></div><br />
Oh, and you should bring some current to PIN 13 (first analog input) on Pinguino. You can try to put a trimmer resistor in front of the PIN 13 on the breadboard an play with it to see gauge moving!<br />
<br />
That's all folks!<br />
<br />
bb4now,<br />
PMCMarinhttp://www.blogger.com/profile/15089029793504830782noreply@blogger.com1tag:blogger.com,1999:blog-5968695248380446057.post-15867174427541951722010-03-13T12:31:00.001+01:002010-03-17T19:14:38.567+01:00Pinguino and perlYou can use perl to communicate with Pinguino via USB.<br />
<br />
To do it you have to install libusb library and Device::USB module for perl.<br />
<br />
After that you can upload this program to Pinguino:<br />
<br />
testusb.pde:<br />
<span style="font-family: 'courier new';"></span><br />
<span style="font-family: 'courier new';"><blockquote><br />
// USB Test<br />
// Marin Purgar marin.purgar@gmail.com<br />
// Use with led_on.pl and led_off.pl companion programs<br />
<br />
uchar cmd;<br />
<br />
void setup(void) {<br />
pinMode(0, OUTPUT);<br />
digitalWrite(0, HIGH);<br />
}<br />
<br />
void loop(void) {<br />
if (USB.available()) {<br />
cmd = USB.read();<br />
}<br />
if (cmd == 'N') {<br />
digitalWrite(0, HIGH);<br />
}<br />
if (cmd == 'F') {<br />
digitalWrite(0, LOW);<br />
}<br />
}<br />
<br />
// EOF</blockquote></span><br />
<br />
And you can create two perl programs to turn the LED on (sending the character 'N' to Pinguino) and off (sending the character 'F' to Pinguino):<br />
<br />
led_on.pl:<br />
<span style="font-family: 'courier new';"></span><br />
<span style="font-family: 'courier new';"><blockquote><br />
#!/usr/bin/perl -w<br />
<br />
use strict;<br />
use warnings;<br />
<br />
use Device::USB;<br />
<br />
my $usb = Device::USB->new() || die "Unable to initialize libusb!";<br />
$usb->debug_mode(2);<br />
my $dev = $usb->find_device(0x04d8, 0xfeaa) || die "Unable to find USB device!";<br />
$dev->open() || die "Unable to open USB device!";<br />
$dev->set_configuration(3);<br />
$dev->claim_interface(0);<br />
$dev->bulk_write(0x01, "N", 100);<br />
<br />
# EOF</blockquote></span><br />
led_off.pl:<br />
<span style="font-family: 'courier new';"></span><br />
<span style="font-family: 'courier new';"><blockquote><br />
#!/usr/bin/perl -w<br />
<br />
use strict;<br />
use warnings;<br />
<br />
use Device::USB;<br />
<br />
my $usb = Device::USB->new() || die "Unable to initialize libusb!";<br />
$usb->debug_mode(2);<br />
my $dev = $usb->find_device(0x04d8, 0xfeaa) || die "Unable to find USB device!";<br />
$dev->open() || die "Unable to open USB device!";<br />
$dev->set_configuration(3);<br />
$dev->claim_interface(0);<br />
$dev->bulk_write(0x01, "F", 100);<br />
<br />
# EOF</blockquote></span><br />
By running led_on.pl or led_off.pl you can turn the LED on/off via USB using perl.<br />
<br />
Next, I am going to put some sensors (TCRT5000) on my protoboard and try to get sensor status from it via USB and perl.<br />
<br />
Stay tuned ...Marinhttp://www.blogger.com/profile/15089029793504830782noreply@blogger.com0tag:blogger.com,1999:blog-5968695248380446057.post-90980421752393339782010-03-13T10:11:00.002+01:002010-03-17T21:28:41.713+01:00Pinguino!<div style="text-align: center;"><div style="text-align: left;">Last two weeks I have been playing with Pinguino. Pinguino is PIC (from Microchip, the company) based Arduino-like experimental board. It supports USB Communication and Power-over-USB, so it's very handy for experiments with PIC technology. The basic PCB is very simple and easy to make.<br />
<br />
You can find more about the project at <a href="http://jpmandon.blogspot.com/">Hacklab News Blog</a>.<br />
<br />
And now for some photos of the boards we made.<br />
<br />
The "PinguinoTeam Croatia" proudly presents:<br />
<br />
</div><a href="http://farm5.static.flickr.com/4056/4427108270_05682fe93c.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" src="http://farm5.static.flickr.com/4056/4427108270_05682fe93c.jpg" style="cursor: pointer; float: left; height: 333px; margin: 0pt 10px 10px 0pt; width: 500px;" /></a></div>Marinhttp://www.blogger.com/profile/15089029793504830782noreply@blogger.com0tag:blogger.com,1999:blog-5968695248380446057.post-30084171304829524822009-10-24T10:41:00.000+02:002009-10-24T10:48:43.713+02:00Google Wave<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_WXski1xfYu7PK5Om346Buly84TpcABb9EC5DrcW-Romfjul5g2YGmJqes-Pfd6BI9bI_3HfuVM3J1-p-pGWBxBtR2mElIGQxBrcx9ykhgrQAcqGJPJNExCTzVMKKvZU4LO9sp7rl-nE/s1600-h/GoogleWaveNew.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 187px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_WXski1xfYu7PK5Om346Buly84TpcABb9EC5DrcW-Romfjul5g2YGmJqes-Pfd6BI9bI_3HfuVM3J1-p-pGWBxBtR2mElIGQxBrcx9ykhgrQAcqGJPJNExCTzVMKKvZU4LO9sp7rl-nE/s400/GoogleWaveNew.png" alt="" id="BLOGGER_PHOTO_ID_5396085657339108946" border="0" /></a><br />Danas sam dobio pozivnicu za Google Wave.Marinhttp://www.blogger.com/profile/15089029793504830782noreply@blogger.com0