This Machine Learning Algorithm Is Meta

Suppose you ran a website releasing many articles per day about various topics, all following a general theme. And suppose that your website allowed for a comments section for discussion on those topics. Unless you are brand new to the Internet, you’ll also imagine that the comments section needs at least a little bit of moderation to filter out spam, off topic, or even toxic comments. If you don’t want to employ any people for this task, you could try this machine learning algorithm instead.

[Ladvien] goes through a general overview of how to set up a convolutional neural network (CNN) which can be programmed to do many things, but this one crawls a web page, gathers data, and also makes decisions regarding that data. In this case, the task is to identify toxic comments but the goal is not to achieve the sharpest sword in the comment moderator’s armory, but to learn more about how CNNs work.

Written in Python, the process outlines the code itself and how it behaves, setting up a small server to host the neural network, and finally creating the webservice. As with any machine learning, you need a reliable dataset to use for training and this one came from Wikipedia comments previously flagged by humans. Trolling nuance is thrown aside, as the example homes in on blatant insults and vulgarity.

While [Ladvien] notes that his guide isn’t meant to be comprehensive, but rather to fill in some gaps that he noticed within other guides like this, we find this to be an interesting read. He also mentioned that, in theory, this tool could be used to predict the number of comments following an article like this very one based on the language in the article. We’ll leave that one as an academic exercise for now, probably.

Human-Powered Henhouse Keeps Chickens On The Job

While it’s not exactly in the same vein as other projects around here, like restoring vintage video game systems or tricking an ESP32 to output VGA, keeping chickens can also be a rewarding hobby. They make decent pets and can also provide you with eggs. You can also keep them on a surprisingly small amount of land, but if you have a larger farm you can use them to help condition the soil all over your property. For that you’ll need a mobile henhouse, and as [AtomicZombie] shows, they don’t all have to be towed by a tractor.

This henhouse is human-powered, meaning any regular human can lift it up and scoot it around to different areas without help from heavy equipment. It uses a set of bicycle wheels which rotate around to lift up the frame of the house. A steering wheel in the back allows it to be guided anywhere and then set down. It also has anti-digging protection, which is a must-have for any henhouse to keep the foxes out.

We like this one for its simplicity and ease-of-use. Not needing a tractor on a small farm can be a major cost savings, but if you really need one, [AtomicZombie] also designed a robust all-electric tractor-like device that we featured a little while back.

Continue reading “Human-Powered Henhouse Keeps Chickens On The Job”

Micropython And C Play Together Better

Python is a versatile, powerful language but sometimes it’s not the best choice, especially if you’re doing work in embedded systems with limited memory. Sometimes you can get away with MicroPython for these cases, but the best language is likely C or assembly. If you’re really stubborn, like [amirgon], and really want C and Python to play well together, you can make use of his new tool which can bring any C library to MicroPython.

As an example of how this tool is used, a “Pure MicroPython” display driver for ILI9341 on the ESP32, which means that everything was implemented in MicroPython. [amirgon] wanted to see how the Python driver would compare to one that’s already been written in C, and use it to showcase MicroPython binding. This tool also automatically converts structs, unions, enums and arrays to Python objects, and provides a means to work with pointers which is something that Python doesn’t handle in the same way that C requires.

[amirgon] hopes that this tool will encourage the adoption of Micropython by removing the obstacle of missing APIs and libraries in MicroPython. Since most libraries for systems like these are written in C, a way to implement them in Python is certainly powerful. We featured one use case for this a while back, but this is a much more generic fix for this coding obstacle.

How To Play Doom – And More – On An NES

Doom was a breakthrough game for its time, and became so popular that now it’s essentially the “Banana For Scale” of hardware hacking. Doom has been ported to countless devices, most of which have enough processing ability to run the game natively. Recently, this lineup of Doom-compatible devices expanded to include the NES even though the system definitely doesn’t have enough capability to run it without special help. And if you want your own Doom NES cartridge, this video will show you how to build it.

We featured the original build from [TheRasteri] a while back which goes into details about how it’s possible to run such a resource-intensive game on a comparatively weak system. You just have to enter the cheat code “RASPI”. After all the heavy lifting is done, it’s time to put it into a realistic-looking cartridge.

To get everything to fit in the donor cartridge, first the ICs in the cartridge were removed (except the lockout IC) and replaced with custom ROM chips. Some modifications to the original board have to be soldered together as well, since the new chips’ pinouts don’t match perfectly. Then, most of the pin headers on the Raspberry Pi and the supporting hardware have to be removed and soldered together. Then, [TheRasteri] checks to make sure that all this extra hardware doesn’t draw too much power from the NES and overheat it.

The original project was impressive on its own, but with the Doom cartridge completed this really makes it the perfect NES hack, and also opens up the door for a lot of other custom games, including things like Mario64.

Continue reading “How To Play Doom – And More – On An NES”

Skid Steer Mows Airport Grass Autonomously

Sure, mowing the lawn is a hassle. No one really wants to spend their time and money growing a crop that doesn’t produce food, but we do it anyway. If you’re taking care of a quarter acre in the suburbs it’s not that much of a time sink, but if you’re taking care of as much grass as [Roby], you’d probably build something similar to his autonomous skid-steer mower, too.

This thing isn’t a normal push mower outfitted with some random electronics, either. This is a serious mower that is essentially a tractor with blades attached to it. Since it’s a skid steer, it turns by means of two handles that control the speed of the left or right drive wheels. Fabricating up some servo linkages to attach them to specialized servos takes care of the steering portion, and the brain is ArduPilot hooked up to a host of radios, GPS, and a compass to allow it to drive all around the runways at the airport without interfering with any aircraft.

This is a serious build and goes into a lot of detail about how servos and linkages should behave, how all the software works, and the issues of actually mounting everything to the mower. The entire project is open source too, so even if you don’t have a whole airport runway to mow you might be able to find something in there to help with your little patch of grass.

Thanks to [Vincent] for the tip!

Continue reading “Skid Steer Mows Airport Grass Autonomously”

Another Way To Make PCBs At Home

One of the more popular ways of rolling out your own custom PCB is to simply create the model in your CAD program of choice and send it off to a board manufacturer who will take care of the dirty work for you. This way there is no need to deal with things like chemicals, copper dust, or maintaining expensive tools. A middle ground between the board manufacturer and a home etching system though might be what [igorfonseca83] has been doing: using an inexpensive laser engraver to make PCBs for him.

A laser engraver is basically a low-power laser CNC machine that’s just slightly too weak to cut most things that would typically go in a laser cutter. It turns out that the 10W system is the perfect amount of energy to remove a mask from a standard PCB blank, though. This in effect takes the place of the printer in the old toner transfer method, and the copper still has to be dissolved in a chemical solution, but the results are a lot more robust than trying to modify a printer for this task.

If you aren’t familiar with the days of yore when homebrew PCBs involved a standard desktop printer, many people still use this method, although the results can be mixed based on printer reliability. If you want to skip the middleman, and the need for a chemical bath, a more powerful laser actually can cut the traces for you, too.

Continue reading “Another Way To Make PCBs At Home”

Take Pictures Around A Corner

One of the core lessons any physics student will come to realize is that the more you know about physics, the less intuitive it seems. Take the nature of light, for example. Is it a wave? A particle? Both? Neither? Whatever the answer to the question, scientists are at least able to exploit some of its characteristics, like its ability to bend and bounce off of obstacles. This camera, for example, is able to image a room without a direct light-of-sight as a result.

The process works by pointing a camera through an opening in the room and then strobing a laser at the exposed wall. The laser light bounces off of the wall, into the room, off of the objects on the hidden side of the room, and then back to the camera. This concept isn’t new, but the interesting thing that this group has done is lift the curtain on the image processing underpinnings. Before, the process required a research team and often the backing of the university, but this project shows off the technique using just a few lines of code.

This project’s page documents everything extensively, including all of the algorithms used for reconstructing an image of the room. And by the way, it’s not a simple 2D image, but a 3D model that the camera can capture. So there should be some good information for anyone working in the 3D modeling world as well.

Thanks to [Chris] for the tip!