Scraping Blogs For Fun And Profit

Sometimes when you’re working on a problem, a solution is thrown right at your face. We found ourselves in this exact situation a few days ago while putting together Hackaday’s new retro edition; a way to select a random Hackaday article was needed and [Alexander van Teijlingen] of codepanel.net just handed us the solution.

To grab every Hackaday URL ever, [Alex] wrote a small Python script using the Beautiful Soup screen scraping library. The program starts on Hackaday’s main page and grabs every link to a Hackaday post before going to the next page. It’s not a terribly complex build, but we’re gobsmacked a solution to a problem we’re working on would magically show up in our inbox.

Thanks to [Alex], writing a cron job to automatically update our new retro edition just got a whole lot easier. If you’d like to check out a list of every Hackaday post ever (or at least through two days ago), you can grab 10,693 line text file here.

Programming FPGAs With Python

If you’ve ever wanted to jump into the world of FPGAs but don’t want to learn yet another language, you can now program an FPGA with Python. PyCPU converts very, very simple Python code into either VHDL or Verilog. From this, a hardware description can be uploaded to an FPGA.

The portion of the Python language supported by PyCPU is extremely minimal, with only ints being the only built-in data type supported. Of course ifs and whiles are still included along with all the assignments and operators. A new addition is a way to get digital IO access with Python, and obvious requirement if you’re going to be programming Silicon.

PyCPU surely won’t replace VHDL or Verilog anytime soon, but if you’re looking to get into FPGAs and the ‘telling a chip what to be’ paradigm it offers, it’s certainly a tool worth looking into.

Hats off to [hardsoftlucid] for sending this in. Our wonderful (we mean that, really) noticed a few mistakes when this was first posted. Those mistakes have been corrected.

Simplest Of SL4A Microbridge Examples

We’re familiar with the daunting task of sifting through mountains of code in hopes you can learn how something works. So when a simple example like this SL4A LED toggle comes along we’re thankful for the trimmed fat. If you’re looking to use an Android device to control your Arduino hardware this will be huge shove in the right direction.

The microbridge is used to get the Arduino talking with the Android phone. It involves a USB host shield that lets you connect the two devices via a USB cable. With the USB debugging enabled on the phone, you can use Scripting Layer for Android as a user interface. In this case, a set of Python scripts builds the button and readout seen on the screen above. They also handle sending and receiving commands based on user input. This means you don’t really need to know anything about Android development. We think it would be a great way to get your project through the development stages, and you could learn to write a traditional App later on.

Continue reading “Simplest Of SL4A Microbridge Examples”

Catch Neighborhood Speeders With Your Webcam

[John] is keeping the neighborhood safe by keeping an eye out for speeders. Well, he’s really keeping a webcam out for speeders. His technique doesn’t use radar or lasers. He’s processing webcam frames in Python to calculate speed.

It comes down to some basic image manipulation. He firsts gathers the images necessary to make the calculations by using a motion-detecting webcam program called YawCam. The images are analyzed to establish which parts have changed between frames; this gets rid of all the stationary objects. Now the frames can be compared to establish the distance in pixels. By calibrating the shot through measurements of the target area, this data can be directly converted into actual distance. It is then compared with the timestamps from each frame to arrive at speed. This can be used for vehicles on the street like we see above, or more whimsical measurements like pet turtle progress.

Physical Email Box — Mail Flag And All

We gave you a side view because we really like the red new-mail flag. Sure it works the opposite of how USPS boxes do (where the flag tells the letter carrier there is outgoing mail to be picked up) but it’s still a fun touch. What you can’t see here is that this physical email box has a character LCD screen to read your messages and a set of buttons on the top to send back replies.

[Eraclitux’s] project puts an Arduino, LCD, a few buttons, and a servo motor inside of a metal project box. It connects to his computer and takes commands over the USB cable. The Python script is where most of the magic happens. This is a good reference project if you’re interested in using POP and SMTP packages to interface your Python scripts with an email server. You’re pretty limited on responses, with preprogrammed messages to reply “Yes”, “No”, or “Read”. But it’s journey that matters, not the destination.

Continue reading “Physical Email Box — Mail Flag And All”

Grabbing Data From A Rigol ‘scope With Python

While a fancy Rigol 1052E oscilloscope is a great tool and a wonderful portable oscilloscope we heartily recommend, sometimes you just need to use the more ‘advanced’ functions of an oscilloscope. Luckily, [cibomahto] figured out how to use a Rigol scope with Python, allowing for easy remote viewing and control of a Rigol 1052E ‘scope on any desktop computer.

[cibomahto]’s Python script grabs the screen and can send commands to the oscilloscope, effectively obviating the need for the slightly-terrible Rigol Ultrascope software. Not only that, controlling the 1052E is possible under OS X and Linux because of the portable Python nature of [cibomahto]’s work.

The Rigol DS1052E has become the de facto standard oscilloscope to grace the workbenches of makers and hackers around the globe. With a small price tag, the ability to double the bandwidth, and an active homebrew development scene, we doubt [cibomahto]’s work of grabbing data over USB will be the last hack we’ll see for this fine machine.

Thanks to [Markus] for sending this one in.

Adding Speech Control To An Old Robotic Arm

[Joris Laurenssen] has been hanging onto this robotic arm for about twenty years. His most recent project uses some familiar tools to add voice control for each of the arm’s joints.

The arm has its own controller which connects via a DB-25 port. [Joris’] first task was to figure out what type of commands are being sent through the connection. He did some testing to establish the levels of the signals, then hooked up his Arduino and had it read out the values coming through the standard parallel connection. This let him quickly establish the simple ASCII character syntax used to command movement from the device. There’s only eight command sets, and it didn’t take much work to whip up a sketch that can now drive the device.

The second portion of the project is to use voice commands to push these parallel signals to the arm. Instead of reinventing the wheel he decided to use the speech recognition feature of his Android phone. He used Scripting Layer for Android (SL4A) and a Python script to interpret commands, push them to his computer via Telnet, and finally drive the arm. We’ve embedded the video demo after the break. He gives the commands in Dutch but he overlaid comments in English so you can tell what’s going on.

Continue reading “Adding Speech Control To An Old Robotic Arm”