AVC Course Preview Video

via SparkFun Electronics Blog Posts

It’s now officially April, which means the AVC is just a couple months away! If you’ve never heard of the SparkFun AVC, it stands for Autonomous Vehicle Competition, and it has become our signature event.

alt text

This year, the event is being held at our new HQ in beautiful Niwot, Colorado. To help the AVC Competitors get ready, we’ve created a course preview video, showing you (generally) what you can expect.

If you haven’t yet registered as a competiro, there is still time to do so…

Register as a Competitor

If you just want to come check out the event, grab a ticket using the form below!

We’ll post more updates as the event approaches - hope to see you there!

comments | comment feed

First Pi in space

via Raspberry Pi

Recently you may have seen some of the awesome things that Dave Akerman has been doing with Raspberry Pi and Balloons. For the eclipse he was able to capture this image from his high altitude payload.

Dave who’s been doing high altitude flights for some time has racked up some pretty impressive bragging rights including the first Raspberry Pi (B, A and A+) in near space.

As many of you will also be aware we will be sending a pair of Raspberry Pi B+ to the International Space station later this year as part of our Astro Pi competition.

We felt a little sorry for the Pi B 2, as it’s never even been close to space! Having recently joined the education team, and with a little experience in launching a near space flight with my school, I wanted to do something about this. So for the last few weeks I’ve been working on launching a Pi 2 with a helium balloon and a Pi In The Sky (PITS) board. Here you can see the PITS+ board stacked on my Pi 2 ready for launch.

IMAG0380

This morning around 6:00am we launched our payload and sent it soaring to near space! However something quite remarkable happened….

The first part of the flight went well, the payload ascended rapidly and sent back some early flight images.

However, we then we lost contact with the payload at around 10,000m…

About 15 minutes later we re-established contact and were shocked to find it was at 37,000m above ground level! This is a much faster rate of ascent than we’d expected, roughly 6x quicker!

In fact it didn’t stop there, and appears to be rising still, the last piece of telemetry data we received put the payload at around 113,000m (that’s technically outer space!)

scene00146

We don’t know how but the payload appears to have reached escape velocity and is continuing to ascend. We’ve received a couple of images from the flight and are hoping they keep coming!

Wow! This is the first Pi in Spaaaacceeee……

Meet The Machines That Build Complex PCBs

via Hackaday » hardware

You can etch a simple PCB at home with a few chemicals and some patience. However, once you get to multilayer boards, you’re going to want to pay someone to do the dirty work.

The folks behind the USB Armory project visited the factories that build their 6 layer PCB and assemble their final product. Then they posted a full walkthrough of the machines used in the manufacturing process.

The boards start out as layers of copper laminates. Each one is etched by applying a film, using a laser to print the design from a Gerber file, and etching away the unwanted copper in a solution. Then the copper and fibreglass prepreg sandwich is bonded together with epoxy and a big press.

Bonded boards then get drilled for vias, run through plating and solder mask processes and finally plated using an Electroless Nickel Immersion Gold (ENIG) process to give them that shiny gold finish. These completed boards are shipped off to another company, where a pick and place followed by reflow soldering mounts all the components to the board. An X-Ray is used to verify that the BGA parts are soldered correctly.

The walkthrough gives a detailed explanation of the process. It shows us the machines that create products we rely on daily, but never get to see.


Filed under: hardware

Using Arduino Esplora with graphical programming languages

via Arduino Blog

esplorascratch

Alan Yorinks shared on Arduino Community on Gplus a physical computing environment he created to make it easier for 10 and 11 year old’s to start playing. He picked up an Arduino Esplora, and wrote some software so that it could be controlled from the Scratch and Snap! graphical programming languages. According to Alan, the Arduino Esplora has on-board integrated sensors, actuators and make it a perfect match for the graphical programming languages that the kids love to use.

By combining an Arduino Esplora microcontroller with the esp4s library and either the Scratch or Snap! programming languages, that first line of code can be written in minutes!

Take a look at his documentation on Github.

ArduinoEsplora retail package

SparkFun Heading to Wondercon

via SparkFun Electronics Blog Posts

This coming weekend, April 3-5, SparkFun is heading to sunny Anaheim to take part in the wonderful Wondercon. Wondercon is part of the Comic Con circuit and is sure to be an awesome time!

Conductive Thread (Thick) - 50'

DEV-10120
$ 10.95
1
LilyPad LED Blue (5pcs)

DEV-10045
$ 3.95
1

While we’re there, we’re doing a single LED workshop on April 4th from 3-4pm in Room 210 at the Anaheim Convention Center. We’ll be using conductive thread and LilyPad LEDs (as seen above). You’ll have a choice to do a fabric Arc Reactor (Avengers) or a Flux Capacitor (Back to the Future) in the workshop!

If you’re going to attend and want to learn about adding LEDs and other electronics to your costuming and cosplay projects, stop by our workshop! Hope to see you there!

comments | comment feed

MagPi Issue 32 – out now!

via Raspberry Pi

In case you hadn’t noticed, Issue 32 of The MagPi, the Raspberry Pi magazine, came out at the end of last week – and we think it’s terrific.

magpi32

This month’s issue is packed with tutorials, reviews, features about your Pi projects, and much more. As always, you’ll find lots and lots of content from the Pi community. Build an IoT door lock with Dr Simon Monk! See if Willem Koopman can gurn so extravagantly that Open CV won’t recognise his face as a face! Dr Sam Aaron will walk you through some Sonic Pi tips and tricks, and we continue the series on writing games in Python.

You can win a Raspberry Pi model A+; learn about some of the Raspberry Pi crowdfunding projects that shot for the moon (and find out which ones missed); and have an in-depth look at our distributed weather station project, the work Naturebytes is doing with the Pi, UNICEF’s Raspberry Pi work with Syrian refugees, and much, much more.

As always the MagPi is a free download. (If you’d like to support us by buying a copy on Google Play or the Apple App Store so you can use the magazine on your tablet, we’d be really grateful – but we are committed to making sure a PDF will always be available for free.) This is Russell Barnes’ second month as editor; we think he’s doing an amazing job.

Head over to www.raspberrypi.org/magpi/ to get your copy!

 

 

Raspberry Pi – Translator

via Wolf Paulus » Embedded | Wolf Paulus

Recently, I described how to perform speech recognition on a Raspberry Pi, using the on device sphinxbase / pocketsphinx open source speech recognition toolkit. This approach works reasonably well, but with high accuracy, only for a relatively small dictionary of words.

Like the article showed, pocketsphinx works great on a Raspberry Pi to do keyword spotting, for instance to use your voice, to launch an application. General purpose speech recognition however, is still best performed, using one of the prominent web services.

Speech Recognition via Google Service

Google’s speech recognition and related services used to be accessible and easy to integrate. Recently however, they got much more restrictive and (hard to belief, I know) Microsoft is now the place to start, when looking for decent speech related services. Still, let’s start with Google’s Speech Recognition Service, which requires an FLAC (Free Lossless Audio Codec) encoded voice sound file.

Google API Key

Accessing Google’s speech recognition service requires an API key, available through the Google Developers Console.
I followed these instructions for Chromium Developers and while the process is a little involved, even intimidating, it’s manageable.
I created a project and named in TranslatorPi and selected the following APIs for this project:

Goggle Developer Console: Enabled APIs for this project

Goggle Developer Console: Enabled APIs for this project

The important part is to create an API Key for public access. On the left side menu, select API & auth / Credentials. Here you can create the API key, a 40 character long alpha numeric string.

Installing tools and required libraries

Back on the Raspberry Pi, there are only a few more libraries needed, additionally to what was installed in the above mentioned on-device recognition project.

sudo apt-get install flac
sudo apt-get install python-requests
sudo apt-get install python-pycurl

Testing Google’s Recognition Service from a Raspberry Pi

I have the same audio setup as previously described, now allowing me to capture a FLAC encoded test recording like so:
arecord -D plughw:0,0 -f cd -c 1 -t wav -d 0 -q -r 16000 | flac - -s -f --best --sample-rate 16000 -o test.flac
..which does a high quality, wave type recording and pipes it into the flac encoder, which outputs ./test.flac

The following bash script will send the flac encoded voice sound to Google’s recognition service and display the received JSON response:

#!/bin/bash
# parameter 1 : file name, containg flac encoded voiuce recording
 
echo Sending FLAC encoded Sound File to Google:
key='<TRANSLATORPI API KEY>'
url='https://www.google.com/speech-api/v2/recognize?output=json&lang=en-us&key='$key
curl -i -X POST -H "Content-Type: audio/x-flac; rate=16000" --data-binary @$1 $url
echo '..all done'
Speech Recognition via Google Service - JSON Response

Speech Recognition via Google Service – JSON Response

{
  "result": [
    {
      "alternative": [
        {
          "transcript": "today is Sunday",
          "confidence": 0.98650438
        },
        {
          "transcript": "today it's Sunday"
        },
        {
          "transcript": "today is Sundy"
        },
        {
          "transcript": "today it is Sundy"
        },
        {
          "transcript": "today he is Sundy"
        }
      ],
      "final": true
    }
  ],
  "result_index": 0
}

More details about accessing the Google Speech API can be found here: https://github.com/gillesdemey/google-speech-v2

Building a Translator

Encoding doesn’t take long and the Google Speech Recognizer is the fastest in the industry, i.e. the transcription is available swiftly and we can send it for translation to yet another web service.

Microsoft Azure Marketplace

Creating an account at the Azure Marketplace is a little easier and the My Data section shows that I have subscribed to the free translation service, providing me with 2,000,000 Characters/month. Again, I named my project TranslatorPi. On the ‘Developers‘ page, under ‘Registered Applications‘, take note of the Client ID and Client secret, both are required for the next step.
regapp1

regapp2

Strategy

With the speech recognition from Google and text translation from Microsoft, the strategy to build the translator looks like this:

  • Record voice sound, FLAC encode it, and send it to Google for transcription
  • Use Google’s Speech Synthesizer and synthesize the recognized utterance.
  • Use Microsoft’s translation service to translate the transcription into the target language.
  • Use Google’s Speech Synthesizer again, to synthesize the translation in the target language.

For my taste, that’s a little too much for a shell script and I use the following Python program instead:

# -*- coding: utf-8 -*-
import json
import requests
import urllib
import subprocess
import argparse
import pycurl
import StringIO
import os.path
 
 
def speak_text(language, phrase):
    tts_url = "http://translate.google.com/translate_tts?tl=" + language + "&q=" + phrase
    subprocess.call(["mplayer", tts_url], shell=False, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
 
def transcribe():
    key = '[Google API Key]'
    stt_url = 'https://www.google.com/speech-api/v2/recognize?output=json&lang=en-us&key=' + key
    filename = 'test.flac'
    print "listening .."
    os.system(
        'arecord -D plughw:0,0 -f cd -c 1 -t wav -d 0 -q -r 16000 -d 3 | flac - -s -f --best --sample-rate 16000 -o ' + filename)
    print "interpreting .."
    # send the file to google speech api
    c = pycurl.Curl()
    c.setopt(pycurl.VERBOSE, 0)
    c.setopt(pycurl.URL, stt_url)
    fout = StringIO.StringIO()
    c.setopt(pycurl.WRITEFUNCTION, fout.write)
 
    c.setopt(pycurl.POST, 1)
    c.setopt(pycurl.HTTPHEADER, ['Content-Type: audio/x-flac; rate=16000'])
 
    file_size = os.path.getsize(filename)
    c.setopt(pycurl.POSTFIELDSIZE, file_size)
    fin = open(filename, 'rb')
    c.setopt(pycurl.READFUNCTION, fin.read)
    c.perform()
 
    response_data = fout.getvalue()
 
    start_loc = response_data.find("transcript")
    temp_str = response_data[start_loc + 13:]
    end_loc = temp_str.find(""")
    final_result = temp_str[:end_loc]
    c.close()
    return final_result
 
 
class Translator(object):
    oauth_url = 'https://datamarket.accesscontrol.windows.net/v2/OAuth2-13'
    translation_url = 'http://api.microsofttranslator.com/V2/Ajax.svc/Translate?'
 
    def __init__(self):
        oauth_args = {
            'client_id': 'TranslatorPI',
            'client_secret': '[Microsoft Client Secret]',
            'scope': 'http://api.microsofttranslator.com',
            'grant_type': 'client_credentials'
        }
        oauth_junk = json.loads(requests.post(Translator.oauth_url, data=urllib.urlencode(oauth_args)).content)
        self.headers = {'Authorization': 'Bearer ' + oauth_junk['access_token']}
 
    def translate(self, origin_language, destination_language, text):
        german_umlauts = {
            0xe4: u'ae',
            ord(u'ö'): u'oe',
            ord(u'ü'): u'ue',
            ord(u'ß'): None,
        }
 
        translation_args = {
            'text': text,
            'to': destination_language,
            'from': origin_language
        }
        translation_result = requests.get(Translator.translation_url + urllib.urlencode(translation_args),
                                          headers=self.headers)
        translation = translation_result.text[2:-1]
        if destination_language == 'DE':
            translation = translation.translate(german_umlauts)
        print "Translation: ", translation
        speak_text(origin_language, 'Translating ' + text)
        speak_text(destination_language, translation)
 
 
if __name__ == '__main__':
    parser = argparse.ArgumentParser(description='Raspberry Pi - Translator.')
    parser.add_argument('-o', '--origin_language', help='Origin Language', required=True)
    parser.add_argument('-d', '--destination_language', help='Destination Language', required=True)
    args = parser.parse_args()
    while True:
        Translator().translate(args.origin_language, args.destination_language, transcribe())

Testing the $35 Universal Translator

So here are a few test sentences for our translator app, using English to Spanish or English to German:

  • How are you today?
  • What would you recommend on this menu?
  • Where is the nearest train station?
  • Thanks for listening.

Live Demo

This video shows the Raspberry Pi running the translator, using web services from Google and Microsoft for speech recognition, speech synthesis, and translation.


The Young Innovators’ Club in Ulaanbaatar

via Raspberry Pi

The Young Innovators’ Club is a new initiative to promote engineering and tech education for school-aged children in Mongolia. It’s currently piloting a Raspberry Pi-based after-school club in Mongolia’s capital, Ulaanbaatar, with support from the National Information Technology Park, where activities take place:

Blinky lights Girl with Pi Student breadboarding Students collaborate

Scratch and Python are on the menu, and electronics features prominently, with students using Raspberry Pis to control LEDs, sensors, motors and cameras. Club Coordinator Tseren-Onolt Ishdorj says,

So far the result of the club is very exciting because parents and children are very much interested in the club’s activity and they are having so much fun to be part of the club – trying every kind of projects and spending their spare time happily.

The idea of introducing Raspberry Pi-based after-school clubs was originally put forward by Enkhbold Zandaakhuu, Chairman of the Mongolian Parliament and himself an engineer by training; a group of interested individuals picked up the idea and established the Club in late 2014, and it has since attracted the interest of peak-time Mongolian TV news and other local media. The Club plans to establish After-School Clubs for Inventors and Innovators (ASCII) across the country with the help of schools, parents and other organisations and individuals; this would involve about 600-700 schools, and include training for over 600 teachers. They’re hopeful of opening a couple of dozen of these this year.

We’re quite excited about this at Raspberry Pi. It was lovely to see our Raspberry Jams map recently showing upcoming events on every continent except for Antarctica (where there are Pis, even if not, as far as we know, any Jams), but nonetheless there’s a displeasing Pi gap across central Asia and Russia:

Jams everywhere

Raspberry Jams on every continent except Antarctica (yes, really: the one that seems to be on the south coast of Spain is actually in Morocco)

It’s fantastic to know, then, that school students are learning with Raspberry Pis in Ulaanbaatar. We’ll be keeping up with developments at the Young Innovators’ Club on their Facebook page, where you can find lots of great photos and videos of the students’ work – we hope you’ll take a look, too.

Breadboard robot Pi and breadboard Lego robot

Free Circuit Cellar magazine January 2015

via Pololu - New Products

Get a FREE copy of Circuit Cellar magazine’s January issue with your order while supplies last. To get your free issue, enter the coupon code CIRCUIT0115 into your shopping cart. The magazine will add 6 ounces to the package weight when calculating your shipping options

Free Circuit Cellar magazine January 2015

via Pololu - New Products

Get a FREE copy of Circuit Cellar magazine’s January issue with your order while supplies last. To get your free issue, enter the coupon code CIRCUIT0115 into your shopping cart. The magazine will add 6 ounces to the package weight when calculating your shipping options

Free Circuit Cellar magazine January 2015

via Pololu - New Products

Get a FREE copy of Circuit Cellar magazine’s January issue with your order while supplies last. To get your free issue, enter the coupon code CIRCUIT0115 into your shopping cart. The magazine will add 6 ounces to the package weight when calculating your shipping options

A new Arduino Store for the US Market

via Arduino Blog

storeUsa

As part of the many news we are going to release in the next few months, we are glad to announce today a new Arduino Store completely based in the USA. Check it out at store-usa.arduino.cc, and discover some interesting features:

  • New Arduino products soon available for the US market only
  • Shipping within North America is cheaper and faster, since we send items directly from the US via FedEx and USPS
  • New design, completely responsive, purchase items from mobiles and tablets too
  • Very fast!
  • Checkout is 100% security compliant with PCI DSS
  • Easy way to find and share your favourite products via social networks

It is a pleasure to announce it right after the success of Arduino Day Events all over the world!

SXSW Recap Video

via SparkFun Electronics Blog Posts

A couple week’s back, we went to Austin, TX to take part in SXSW and SXSWCreate. While we’ve been to SXSW in the past, this year we did something a little bit different with our “BadgerHack” soldering workshop – a fun, interactive way for people to learn about soldering and engage with SparkFun and other companies at SXSW.

While we were there, we took a video of our booth and overall goings-on, including a description of what, exactly, is a BadgerHack. Check it out:

We got great feedback on the Badger – look for it comin' at you at more events in the near future. If you joined us at SXSW, thanks for coming by! Otherwise, maybe we’ll see you next year!

comments | comment feed