Pokemon Artificial Intellegence

Pokemon Artificial Intelligence Is Smarter Than You

Who out there hasn’t angrily thrown a game controller across the room after continually getting killed by some stupid game-controlled villain? That is such a bummer! You probably wished there was some way to ‘just get past that point’. To take a step in that direction, [Ben] created an Artificial Intelligence program that will win at Pokemon Blue for Game Boy Advance.

The game is run in a Game Boy Advance emulator known as Visual Boy Tracer, which itself is a modified version of the most common GBA emulator, Visual Boy Advance. What sets Visual Boy Advance apart from the rest is that it has a memory dump feature which allows the user to send both the RAM and the ROM out of the emulator. The RAM holds all values currently needed by the emulator, this includes everything from text arrow flash times to details about currently battling Pokemon to the players position in the currently loaded map. The memory dump feature is key to allow the AI to understand what is happening in the game.

Continue reading “Pokemon Artificial Intelligence Is Smarter Than You”

Driving 1000 NeoPixels With 1k Of Arduino RAM

timing

NeoPixels, or WS2812 RGB LEDs, are the display device du jour for impressive and blinding lighting projects. Commonly known for very tight timing requirements, [Josh] discovered this is, in fact, usually unnecessary. The timing requirements for NeoPixels aren’t as bad as they seem, once you get to know them.

The official WS2812 timing specs give values that are fairly constraining for anyone writing a library to drive these RGB LED pixels, but simplifying the timing diagram by assuming a 50% duty cycle on the data lines and ignoring the longer maximum times results in a surprising conclusion: the only tight timing parameter for NeoPixel signaling is the maximum width of the 0-bit pulse.

Realizing this, [Josh] wrote a simple demo program to drive over 1000 NeoPixels – an 11 meter long strip – using 1K of RAM on an Arduino. The trick comes by simply delaying the bitbanging a set number of cycles. No obtuse assembly required.

There is only one problem with [Josh]’s method of driving a nearly unlimited amount of NeoPixels – building a display where every NeoPixel is an element in a larger image, such as in a video display, is impossible on systems with limited amounts of RAM. The code writes values to the NeoPixel strip algorithmically, so if you can’t build your animation with for loops, you’re out of luck. Still, Driving this many NeoPixels is a migraine trigger, and we have to give [Josh] credit for doing this with 1K of RAM.

Check out the video of [Josh]’s extreme NeoPixel strip below.

Continue reading “Driving 1000 NeoPixels With 1k Of Arduino RAM”

Solar-Powered Mosquito Birth Control Is Making Waves

Mosquitoes really suck. Joking aside, they spread dangerous and deadly diseases like Malaria, Dengue and West Nile. They like to breed in pools of stagnant water which can be difficult to keep up with. From egg-laying to larval development, still water is vital for breeding mosquitoes. Instructables user [Gallactronics] hypothesized that disrupting the surface tension of potential nurseries was the key to discouraging breeding, and he built a solar-powered device for under $10 that proves his theory.

There are a few standard ways of dealing with standing water. Someone can keep it drained or it can be sprayed with pesticides. By aerating the water, mosquito mothers are far less likely to successfully arrange their eggs on the surface. Even if the eggs take, the turbulent water surface will suffocate the larvae.

This bubbler ticks all the boxes. It starts as soon as it comes in contact with water and sounds a piezo alarm when the pool has dried or when someone removes it. It runs for 10 minutes at 10-minute intervals using a 555 timer and some transistors. The water probes are stainless steel bolts, and it runs on a 6V 450mA solar cell. Be sure to watch the demonstration below.

We love to see this kind of ingenuity and elegance in problem solving. Then again, we also like the idea of killing them with lasers.

Continue reading “Solar-Powered Mosquito Birth Control Is Making Waves”

Emulating Touchscreens In Python

DOS

Software, especially DOS-based software meant for CNC control lasts forever, but hardware most certainly does not. When faced with aged and decrepit hardware meant for controlling a CNC machine that was slowly dying, [Oliver] needed something that would emulate 3M Microtouch touchscreen. Not wanting to go the hardware route, he decided to emulate a touch screen in Python.

The Python code is fairly simple, taking mouse input and translating it to the serial protocol the 3M Microtouch, and thus the old DOS CNC app, uses. Writing the Python to capture mouse clicks was only half of the problem, though. [Oliver] also needed a way to send these mouse clicks to an old DOS application. Virtualizing an old machine running DOS created a few timing problems, but a solution was eventually found with DOSBox and the Virtual Serial Port Emulator that can connect two applications with serial ports.

[Oliver] was finally able to get everything working, bringing this equipment back to life for at least another 30 years. Let’s just hope all the code is well documented and archived for the next guy.

Hackaday Links: May 18, 2014

hackaday-links-chain

Think the original Pong is cool? How about point to point Pong? [v8ltd] did it in three months, soldering all the leads directly to the chip pins. No sockets required. It’s insane, awesome, a masterpiece of craftsmanship, and surprising it works.

[Jeremy Cook] is building a servo-powered light graffiti thing and needed a laser diode. How do you control a laser pointer with a microcontroller? Here’s how. They’re finicky little buggers, but if you get the three-pack from Amazon like [Jeremy] did, you get three chances to get it right.

NFC tags in everything! [Becky] at Adafruit is putting them in everything. Inside 3D printed rings, glued onto rings, and something really clever: glued to your thumbnail with nail polish. Now you can unlock your phone with your thumb instead of your index finger.

Photographs capture still frames, but wouldn’t it be great if a camera could capture moving images? No, we’re not talking about video because this is the Internet where every possible emotion, reaction, and situation can be expressed with an animated GIF. Meet OTTO, the camera that captures animated GIFs! It’s powered by the Raspberry Pi compute module, so that’s interesting.

[Nate] was getting tired of end mills rolling around his bench. That’s a bad thing. He came up with a solution, though: Mill a piece of plywood into a tray to hold end mills.

The Da Vinci printer, a printer that only costs $500 because they’re banking on the Gillette model, has been cracked wide open by resetting the DRM, getting rid of the proprietary host software, and unbricking the device. Now there’s a concerted effort to develop custom firmware for the Da Vinci printer. It’s extraordinarily bare bones right now, but the pins on the microcontroller are mapped, and RepRap firmwares are extremely modular.

NYC Resistor Gets A PDP-11/34

PDP-11/34 NYCR

[Trammel Hudson] and NYC Resistor have gotten their hands on some old computing iron in the form of a PDP-11/34.  The PDP-11 is a 16 bit minicomputer made by Digital Equipment Corporation (DEC). Various incarnations of the PDP-11 were sold from the 1970’s all the way into the 1990’s. NYC Resistor’s model is has a label dating it to 1983.

The PDP was found in an old storage unit in the Bronx. Moving several racks of equipment across the city is no small feat, but NYC Resistor members have it done it so many times they’ve got it down to a science.

Once power is applied, a stock PDP won’t actually do anything until the boot loader is keyed in from the CPU front panel. Thankfully this particular PDP-11 had its boot instructions printed on a label on the CPU. NYCR’s machine also includes an M9312 “bootstrap / Unibus terminator” board, which allows the machine to boot at the push of a button.

The team connected the racks, terminals, and drives. Carefully following the instructions, they actually got their PDP to boot up! Their next step is to start reading in some of the old tapes that came with the machine. We’re all waiting with bated breath to see what “digitized monkey brains” contains. Once the machine is fully functional, we hope they get it on the internet and load up The Hackaday Retro Edition.

Continue reading “NYC Resistor Gets A PDP-11/34”

Firmware For Cheap Bluetooth Modules

Ibluetoothf you’ve ever built anything with a microcontroller, some sort of sensor, and a connection to the outside world, you’re probably wondering how those places in China can pump out cheap electronics for a mere percentage of what it costs you to pull a DIY. It’s not just volume – it’s engineering; if something has Bluetooth, you find a Bluetooth module with a built-in microcontroller so you can write firmware to it.

The BC417 is the System on Chip found in the very popular BlueCore4-Ext Bluetooth module featuring 8Mbits of Flash (75% of which is used for Bluetooth related stuff), somewhere around 12 kB of RAM, with everything run in a virtual machine. [pfalcon] wrote an extremely experimental firmware for this device that allows anyone to create a wireless sensor node for peanuts. These devices are almost as cheap as a bare ATMega, so the possibilities are interesting, to say the least.

At this point, the hardest part of putting custom firmware on these devices is programming them. For that, [Elastic Sheep] comes to the rescue with a parallel port to SPI interface. There’s also a firmware dumper and some breakout boards available. These modules are pretty cheap, and the pitch isn’t too bad, so you might be able to etch your own boards should you want to experiment a little.

Thanks [Peter] for sending this in.