Posts | Comments

Planet Arduino

Archive for the ‘python’ Category

[Zoltán] sends in his very interesting implementation of a NumPy-like library for micropython called ulab.

He had a project in MicroPython that needed a very fast FFT on a micro controller, and was looking at all of the options when it occurred to him that a more structured approach like the one we all know and love in CPython would be possible on a micro controller too. He thus ended up with a python library that could do the FFT 50 times faster than the the pure Python implementation while providing all the readability and ease of use benefits that NumPy and Python together provide.

As cool as this is, what’s even cooler is that [Zoltan] wrote excellent documentation on the use of the library. Not only can this documentation be used for his library, but it provides many excellent examples of how to use MicroPython itself.

We really recommend that fans of Python and NumPy give this one a look over!

As outlined in this Circuit Digest write-up, with the right hardware, you can now control your computer using hand gestures. While interesting, this kind of technology can be a little expensive. But if you’d like to augment your notebook or laptop via simple gesture capabilities without breaking the bank, B. Aswinth Raj has your answer in the form of an Arduino Uno and two ultrasonic sensors.

His system places the two sensors at the top of a screen, which are read by the Uno. This data is then passed on to a Python program running on the host computer that allows for actions such as play/pause, fast-forward, and volume control while watching videos.

Given the nature of the setup, there’s no reason why more sensors or programming couldn’t be added for further control, perhaps as shortcut “keys” for your favorite design software package! You can read more about the project here, and see a demo of it below.

[B. Aswinth Raj] wanted to control a VLC player with hand gestures. He turned to two common ultrasonic sensors and Python to do the job. There is also, of course, an Arduino. You can see a video of the results, below.

The Arduino code reads the distance from both sensors — one for the left hand and the other for the right. This allows the device to react to single hand gestures that get closer or further away from one sensor as well as gestures involving both hands. For example, raising your left hand and moving it closer or further away will adjust the volume. The right hand controls rewind and fast forward. Raising both hands will start or stop playback.

Of course, since the Arduino is reading the gestures you could change them to suit you. We might have mounted the sensors further back (or, perhaps, added more sensors) so you could use trigonometry to triangulate the hand’s exact position. Well, perhaps not exact, but you could get an idea of the hand’s motion from right to left as well as forward and backward.

On the host computer side, Python receives serial data from the Arduino and then simulates keystrokes to get the desired result. Of course, this is also highly customizable.

By coincidence, we did a similar project a few years ago using one sensor and the Arduino’s ability to appear like a USB keyboard. We’ve also seen 8 sensors making piano music.


Filed under: Arduino Hacks

If there’s one thing that Hollywood knows about hackers, it’s that they absolutely love data visualizations. Sometimes it’s projected on a big wall (Hackers, WarGames), other times it’s gibberish until the plot says otherwise (Sneakers, The Matrix). But no matter what, it has to look cool. No hacker worth his or her salt can possibly work unless they’ve got an evolving Venn diagram or spectral waterfall running somewhere in the background.

Inspired by Hollywood portrayals, specifically one featured in Avengers: Age of Ultron, [Zack Akil] decided it was time to secure his place in the pantheon of hacker wall visualizations. But not content to just show meaningless nonsense on his wall, he set out to create something that was at least showing actual data.

[Zack] created a neural network to work through multi-label classification data in Python using the scikit-learn machine learning suite. The code takes the values from the neutral network training algorithm and converts them to RGB colors by way of an Arduino. Each “node” in the neutral network is 3D printed in translucent filament, and fitted with an RGB LED module. These modules are then connected to each other via side-glow fiber optic tubes, so that the colors within the tubes are mixed depending on the colors of the nodes they are attached to. This allows for a very organic “growing” effect, as colors move through the network node-by-node.

In the end this particular visualization doesn’t really mean anything; the data it’s working on only exists for the purposes of the visualization itself. But [Zack] succeeded in creating a practical visualization of machine learning, and if you’re the kind of person who needs to keep tabs on learning algorithms, some variation of this design may be just what you’re looking for.

If AI isn’t your thing but you still want a wall of RGB LEDs, maybe you can use this phased array antenna visualizer instead. If you’re really hip, maybe you’ll go the analog route and put a big gauge on the wall.


Filed under: Arduino Hacks, led hacks

What do you do when someone gives you a Wurlitzer 3100 jukebox from 1969, but keeps all the records? If you are like [Tijuana Rick], you grab an Arduino and a Rasberry Pi and turn it into a really awesome digital music player.

We’ll grant you, making a music player out of a Raspberry Pi isn’t all that cutting edge, but restoration and integration work is really impressive. The machine had many broken switches that had been hastily repaired, so [Rick] had to learn to create silicone molds and cast resin to create replacements. You can see and hear the end result in the video below.

[Rick] was frustrated with jukebox software he could find, until he found some Python code from [Thomas Sprinkmeier]. [Rick] used that code as a base and customized it for his needs.

There’s not much “how to” detail about the castings for the switches, but there are lots of photos and the results were great. We wondered if he considered putting fake 45s in the machine so it at least looked like it was playing vinyl.

Of course, you don’t need an old piece of hardware to make a jukebox. Or, you can compromise and build out a replica.

 

 


Filed under: Arduino Hacks, Raspberry Pi
Image © Barry Osborne 2017. Used with permission.


This post uses the Raspberry Pi sense hat to display the AuroraWatch UK alert status. It assumes you already have Raspbian installed on a Raspberry Pi, networking configured and enabled, and the sense hat fitted to the Pi.

The current status level is easily obtained from the AuroraWatch UK API with a custom python module. First, ensure you have the necessary python modules installed from the Raspbian software archive:

sudo apt-get update
sudo apt-get install python-lxml python-requests python-six

Then install two custom python modules. We will install them into the user profile, so run these commands as the user pi:

pip install --user --no-deps atomiccreate
pip install --user --no-deps aurorawatchuk

Finally, download the python script which fetches the status and displays it on the sense hat (I used bit.ly to shorten the original GitHub URL):

wget https://bit.ly/awuk-status-on-sense-hat -O awuk_sense_hat.py

The AuroraWatch UK status can then be displayed on the sense hat with this simple command:

python awuk_sense_hat.py

The program will monitor the current status and set the LED colours to show the status level (green, yellow, amber or red). For more information about the AuroraWatch UK status level meaning and interpretation see http://aurorawatch.lancs.ac.uk/alerts/. If you don't have a sense hat (I don't) it is even possible to try this with the sense hat emulator.

Credits

The geomagnetic activity status is courtesy of AuroraWatch UK and uses data from the SAMNET and AuroraWatchNet magnetometers.See also the AuroraWatch UK conditions of use for the API.

Thanks to Barry Osborne for testing the software with a real Raspberry Pi sense hat, and for providing the photograph.
Image © Barry Osborne 2017. Used with permission.


This post uses the Raspberry Pi sense hat to display the AuroraWatch UK alert status. It assumes you already have Raspbian installed on a Raspberry Pi, networking configured and enabled, and the sense hat fitted to the Pi.

The current status level is easily obtained from the AuroraWatch UK API with a custom python module. First, ensure you have the necessary python modules installed from the Raspbian software archive:

sudo apt-get update
sudo apt-get install python-lxml python-requests python-six

Then install two custom python modules. We will install them into the user profile, so run these commands as the user pi:

pip install --user --no-deps atomiccreate
pip install --user --no-deps aurorawatchuk

Finally, download the python script which fetches the status and displays it on the sense hat (I used bit.ly to shorten the original GitHub URL):

wget https://bit.ly/awuk-status-on-sense-hat -O awuk_sense_hat.py

The AuroraWatch UK status can then be displayed on the sense hat with this simple command:

python awuk_sense_hat.py

The program will monitor the current status and set the LED colours to show the status level (green, yellow, amber or red). For more information about the AuroraWatch UK status level meaning and interpretation see http://aurorawatch.lancs.ac.uk/alerts/. If you don't have a sense hat (I don't) it is even possible to try this with the sense hat emulator.

Credits

The geomagnetic activity status is courtesy of AuroraWatch UK and uses data from the SAMNET and AuroraWatchNet magnetometers.See also the AuroraWatch UK conditions of use for the API.

Thanks to Barry Osborne for testing the software with a real Raspberry Pi sense hat, and for providing the photograph.
Material necessari: 
-Joystick: Per moure una fitxa del Pong.
-Python: Per carregar el joc del Pong.
-Arduino: Per configurar el joystick.
-Ordinador: Per poder fer el projecte.
Procediment:
Importar libreria serial
Variable "score"
Variable del que arriba del port serie

Variables de x i y rectangle
Variables de x i y bola

Creem una variable per reduir a números (-1,0,1)

Velocitat--> variable només amb números
Velocitat bola--> sempre la mateixa, però canvia de sentit quan toca la paret o un objecte.

Quan la bola toqui una de les parets dels costats suma +1 al score del que ha marcat el punt.

Material necessari: 
-Joystick: Per moure una fitxa del Pong.
-Python: Per carregar el joc del Pong.
-Arduino: Per configurar el joystick.
-Ordinador: Per poder fer el projecte.
Procediment:
Importar libreria serial
Variable "score"
Variable del que arriba del port serie

Variables de x i y rectangle
Variables de x i y bola

Creem una variable per reduir a números (-1,0,1)

Velocitat--> variable només amb números
Velocitat bola--> sempre la mateixa, però canvia de sentit quan toca la paret o un objecte.

Quan la bola toqui una de les parets dels costats suma +1 al score del que ha marcat el punt.


Comunicació d'Arduino i Python




Playground

Entrada al blog de Luis Llamas

Instructables: Arduino & Python 

pySerial Documentation

Taller: Comunicaciones Seriales con Arduino y Python



  • Newsletter

    Sign up for the PlanetArduino Newsletter, which delivers the most popular articles via e-mail to your inbox every week. Just fill in the information below and submit.

  • Like Us on Facebook