Hands-On: Flying Drones with Scratch

I’ll admit it. I have a lot of drones. Sitting at my desk I can count no fewer than ten in various states of flight readiness. There are probably another half dozen in the garage. Some of them cost almost nothing. Some cost the better part of a thousand bucks. But I recently bought a drone for $100 that is both technically interesting and has great potential for motivating kids to learn about programming. The Tello is a small drone from a company you’ve never heard of (Ryze Tech), but it has DJI flight technology onboard and you can program it via an API. What’s more exciting for someone learning to program than using it to fly a quadcopter?

For $100, the Tello drone is a great little flyer. I’d go as far as saying it is the best $100 drone I’ve ever seen. Normally I don’t suggest getting a drone with no GPS since the price on those has come down. But the Tello optical sensor does a great job of keeping the craft stable as long as there is enough light for it to see. In addition, the optical sensor works indoors unlike GPS.

But if that was all there was to it, it probably wouldn’t warrant a Hackaday post. What piqued my interest was that you can program the thing using a PC. In particular, they use Scratch — the language built at MIT for young students. However, the API is usable from other languages with some work.

Information about the programming environment is rather sparse, so I dug in to find out how it all worked.

Continue reading “Hands-On: Flying Drones with Scratch”

Scratch That SDR!

When you think of a software defined radio, what language might you consider reaching for to create the software part of the equation? C? C++, maybe?

How about Scratch?

“What, Scratch as in the visual programming language aimed at young people?”, we hear you cry incredulously. It’s not exactly the answer you’d expect for an SDR, but thanks to [Andrew Back]’s work there is now ScratchRadio, a set of Scratch extensions for software defined radio. Why on earth do this? The aim is to lower the barrier to entry for software defined radio as far as possible, and to place it in a learning environment such as Scratch seems an ideal way to achieve that.

Of course, Scratch itself isn’t powerful enough for the heaviest of heavy lifting, so in reality this is a Scratch wrapper for a LuaRadio backend. It was created with the LimeSDR Mini in mind, but given that LuaRadio is not specific to that hardware we’d expect it to work with other SDRs such as the ever-popular RTL chipset TV sticks. It gives an owner of a Raspberry Pi 3 the ability to experiment with SDR coding without the need for a huge level of experience, and that to our mind can only be a good thing.

If you fancy trying ScratchRadio, you can find the code in its GitHub repository, and take it from there. Meanwhile we covered LuaRadio last year, so if Scratch is a little basic for you and GNU Radio too advanced, give it a try.

Radio icon: [Sakurambo], (CC BY-SA 3.0).

Scratch cat logo: MIT Media Lab.

Educational Robot for Under $100

While schools have been using robots to educate students in the art of science and engineering for decades now, not every school or teacher can afford to put one of these robots in the hands of their students. For that reason, it’s important to not only improve the robots themselves, but to help drive the costs down to make them more accessible. The CodiBot does this well, and comes in with a price tag well under $100.

The robot itself comes pre-assembled, and while it might seem like students would miss out on actually building the robot, the goal of the robot is to teach coding skills primarily. Some things do need to be connected though, such as the Arduino and other wires, but from there its easy to program the robot to do any number of tasks such as obstacle avoidance and maze navigation. The robot can be programmed using drag-and-drop block programming (similar to Scratch) but can also be programmed the same way any other Arduino can be.

With such a high feature count and low price tag, this might be the key to getting more students exposed to programming in a more exciting and accessible way than is currently available. Of course, if you have a little bit more cash lying around your school, there are some other options available to you as well.

Friday Hack Chat: Graphical Programming Languages with Boian Mitov

There is a long history of Visual or Graphical Programming Languages, and most of them make more sense than the name of Microsoft’s Visual Basic, C#, and Visual Studio IDE. Some people don’t like to code, and for them, graphical programming languages replace semicolons and brackets with easy-to-understand boxes and wires.

This Friday, we’re going to be talking about graphical programming languages with [Boian Mitov]. He’s a software developer, founder of Mitov Software, and the creator of Visuino, a graphical programming language for the embedded domain. Everything from the Arduino to Teensy, ESP8266, ESP32, the chipKIT, and Maple Mini are supported with this IDE. It’s a simple drag-and-drop way of programming microcontrollers that Scratches an itch (see what I did there?) for an easy way to introduce non-programmers to the embedded world and also provides a faster way to build custom applications.

When it comes to graphical programming languages, we can’t find a better Hack Chat guest than [Boian]. He’s the author of the OpenWire dataflow processing technology — another graphical programming language –, the IGDI+ library, VideoLab, SignalLab, AudioLab, PlotLab, InstrumentLab, and author of VCL for Visual C++. He’s a regular contributor to Blaise Pascal Magazine, too.

During this Hack Chat, we’ll be discussing what makes Visual Programming worth it, how and why it works, when it doesn’t and how to develop a graphical programming language. Visuino will be of special interest, And I’m sure someone will work in a, ‘what’s happening with Max/MSP under Ableton’ question. If you have a question for [Boian], here’s a question sheet to guide the discussion.

Here’s How To Take Part:

join-hack-chatOur Hack Chats are live community events on the Hackaday.io Hack Chat group messaging. This Hack Chat will take place at noon Pacific time on Friday, August 11th. Here’s a time and date converter!

Log into Hackaday.io, visit that page, and look for the ‘Join this Project’ Button. Once you’re part of the project, the button will change to ‘Team Messaging’, which takes you directly to the Hack Chat.

You don’t have to wait until Friday; join whenever you want and you can see what the community is talking about.

Rita’s Dolls Probably Live Better Than You Do

If it wasn’t for the weird Dutch-Norwegian techno you’d presumably have to listen to forever, [Gianni B.]’s doll house for his daughter, [Rita] makes living in a Barbie World seem like a worthwhile endeavor. True to modern form, it’s got LED lighting. It’s got IoT. It’s got an app and an elevator. It even has a tiny, working, miniature television.

It all started with a Christmas wish. [Rita] could no longer stand to bear the thought of her Barbie dolls living a homeless lifestyle on her floor, begging passing toys for enough monopoly money to buy a sock to sleep under. However, when [Gianni] visited the usual suspects to purchase a dollhouse he found them disappointing and expensive.

So, going with the traditional collaborating-with-Santa ruse, he and his family had the pleasure of collaborating on a dollhouse development project. Each room is lit by four ultra bright LEDs. There is an elevator that’s controlled by an H-bridge module, modified to have electronic braking. [Rita] doesn’t own a Dr. Barbie yet, so safety is paramount.

The brain of the home automation is a PIC micro with a Bluetooth module. He wrote some code for it, available here. He also went an extra step and used MIT’s scratch to make an app interface for the dollhouse. You can see it work in the video after the break. The last little hack was the TV. An old arduino, an SD Card shield, and a tiny 2.4 inch TFT combine to make what’s essentially a tiny digital picture frame.

His daughter’s are overjoyed with the elevation of their doll’s economic class and a proud father even got to show it off at a Maker Faire. Very nice!

Continue reading “Rita’s Dolls Probably Live Better Than You Do”

Scratching Vinyl Straddles Physical and Digital Realms

The life of a modern DJ is hard. [Gergely] loves his apps, but the MIDI controller that works with the app feels wrong when he’s scratching, and the best physical interfaces for scratching only work with their dedicated machines. [Gergely]’s blog documents his adventures in building an interface to drive his iPad apps from a physical turntable. But be warned, there’s a lot here and your best bet is to start at the beginning of the blog (scroll down) and work your way up. Or just let us guide you through it.

In one of his earliest posts he lays out his ideal solution: a black box that interprets time-code vinyl records and emulates the MIDI output of the sub-par MIDI controller. Sounds easy, right? [Gergely] gets the MIDI side working fairly early on, because it’s comparatively simple to sniff USB traffic and emulate it. So now he’s got control over the MIDI-driven app, and the hard part of interfacing with the real world began.

After experimenting a lot with timecode vinyl, [Gergely] gives up on that and looks for an easier alternative. He also considers using an optical mouse, but that turns out to be a dead-end as well. Finally, [Gergely] settled on using a Tascam TT-M1, which is basically an optical encoder that sits on top of the record, and that makes the microcontroller’s job a lot easier. You can see the result in the video below the break.

And then in a surprise ending worthy of M. Night (“I see dead people”) Shyamalan  he pulls timecode vinyl out of the grave, builds up a small hardware translator, and gets his original plan working. But we have the feeling that he’s not done yet: he also made a 3D printed optical-mouse holder.

Continue reading “Scratching Vinyl Straddles Physical and Digital Realms”

Scratch Your Itch for 3D Modeling with BeetleBlocks

If you want to create a 3D model, you’ll probably either use a graphical CAD tool or a programming-based tool (like OpenSCAD). Although BeetleBlocks is graphical, it is more akin to OpenSCAD than a graphical CAD program. That’s because BeetleBlocks is–more or less–Scratch for 3D modeling.

Scratch is the graphical block-structured language developed by MIT for teaching kids to program. You may have seen Lego robots programmed with similar blocks as well as Android App Inventor. In this incarnation, the blocks control a virtual robot (the beetle) that can extrude a tube behind it as it moves. The beetle is reminiscent of the Logo turtle except the beetle moves in three dimensions. The system is actually closer to Snap, which is a reimplementation of Scratch that allows custom blocks.

Continue reading “Scratch Your Itch for 3D Modeling with BeetleBlocks”