Sling Shot (PIXbits) Mac OS

Posted on  by
  1. Sling Shot (pixbits) Mac Os Update
  2. Sling Shot (pixbits) Mac Os Download


© Valve Corporation. All rights reserved. All trademarks are property of their respective owners in the US and other countries. Privacy Policy Legal Steam. Also it's harder to see the “big picture” of all programs installed. I consider myself quite experienced in desktop environments and I think I can say this without exaggeration: Cinnamon has the best stock menu of all (including KDE, XFCE, Mate, MintMenu, LXDE, Unity, Gnome, Pantheon, OpenBox, Enlightenment, Budgie Desktop, Windows and Mac Os). How to Install Software from Unsigned Developers on a Mac. This wikiHow teaches you how to install software that isn't approved by Apple on your Mac. MacOS Sierra marks most unofficial apps as unsigned software, so you'll need to perform.


Aim and release! Jump from one target to another. Do you have what it takes to beat all 17 levels?

WASD to aim, space to release.



Added and fixed:

  • Saving progress
  • High rez text
  • Transition issue
  • Other bugs
















AND WATCH OUT FOR THE RISING WATER!

YOU CAN ONLY BOUNCE OFF WALLS THAT ARE THE SAME COLOR AS YOURSELF!


ENJOY!! :D



(Running this game on windows is laggy and low-rezd, but can be still played by opening rawGame.love file with Love2d application. My recommendation is to play on a Mac)


StatusIn development
PlatformsmacOS
Rating
AuthorPIXbits
GenrePuzzle, Platformer
Tags2D, bounce, hyper-casual, LÖVE, simple, Singleplayer

Install instructions

Download game executable (note the executable is created on Mac OS Mojave)

Extract and play!

If the Mac executable does not work, then download rawGame.love and open with the Love2d app.

Download

Log in with itch.io to leave a comment.

Table of Contents

See also

  • New mbed NXP LPC11U24
  • mbed USB Device Libraries
  • mbed Frontpage Tour
  • How to order an mbed

Apparently, Angry Birds is played for 300 million minutes a day. With that amount of dedication, isn't it about time it became a real sport?!

USB Slingshot¶

To make Angry Birds a real sport, we need real equipment. So the idea for this hack was to build a real slingshot as a USB peripheral to play Angry Birds.

It was inspired as a demo to show off how easy it is becoming to build your own USB devices, thanks to the emergence of ultra-low-cost 32-bit microcontrollers that include USB. There is more about this industry trend and our new mbed NXP LPC11U24 board that we designed to open up these opportunities and enable very productive prototyping of USB devices:

The resulting hack means fusing electronics, microcontrollers, software and, umm..., carpentry!

The Technology¶

The slingshot emulates a USB mouse, so it really is a plug 'n' play. It translates the physical use of the slingshot in to appropriate mouse controls.

With a real slingshot, you tilt the slingshot and stretch sling. The idea to measure these was using:

  • An accelerometer - this can measure the tilt by tracking the gravity vector (which way is down!)
  • A rubber stretch sensor - this can be used as the sling, and measure how much it is stretched

That is the input, but to play Angry Birds, you actually click on the bird, then drag to the launch angle and strength you want, then release. This means we have to translate the real slingshot movements in to a series of different mouse movements.

For example, this means translating starting to stretch the slingshot to a mouse to click and hold, whilst the vector of the stretch determined by the angle of sling and how far it is stretched translates to mouse movements relative to where we started. More on the maths later...

Ingredients to build a USB Slingshot¶

The main brain is the new mbed NXP LPC11U24, as that is designed for prototyping USB devices:

It is packaged in a DIP prototyping form-factor, uses the NXP LPC11U24 MCU based on a 32-bit ARM Cortex-M0 core, and includes I2C, SPI, UART and ADC interfaces. It is supported by the mbed online development tools and developer website, mbed C/C++ SDK, and a full set of USB libraries; USB Mouse, Keyboard, HID, Serial, MIDI, MSC and Audio classes, that make reliably creating a new USB device a matter of a few lines of code!

This is great as it makes emulating the mouse nice and easy!

  • See USBMouse Handbook Page

The rest of the ingredients are:

3-axis AccelerometerStretch SensorUSB B connectorHandcrafted Slingshot

Prototype¶

In order to test if the project was possible, a first prototype was made on breadboard.

Hardware¶

The hardware is based on the following connections to the mbed NXP LPC11U24:

  • The accelerometer is connected over SPI to the mbed
  • The stretch sensor is a resistor as part of a voltage-divider circuit, read on p15 (AnalogIn)
  • The USB Type B connector is connected to the mbed D+/D- pins, and also provides the power supply to the mbed
SchematicsFirst Prototype

Here is the pinout table:

Sling Shot (pixbits) Mac Os Update

ADXL345 Signal Namembed pin
VccVout
GndGnd
SDAp5
SDOp6
SCLp7
CSp8
Stretch sensormbed pin
One extremityVout
The otherp15
USB connectormbed pin
VccVin
GndGnd
D+D+
D-D-

Software¶

The software to test the feasibility is kept simple; the objective is to observe all different elements of the project working together.

AngryBirdsFeasibility

Test Slingshot

Sling Shot (pixbits) Mac Os Download

Last commit 18 Jan 2012 by

The experiments to see that it works:

  • move the breadboard
  • pull the stretch sensor
  • move and pull the stretch sensor at the same time
  • observe that the mouse is moving on the screen

So we have proven control! Next step is to make it in to a real slinghot!

The Real Slingshot!¶

Hardware¶

The slingshot was crafted by Chris Jarratt, from a branch found in Epping Forest, London! This is the structure in to which we embedded all the electronics.

The wiring is exactly the same as the first prototype, just that the mbed will be embedded in to the real slingshot this time.

DiagramA handcrafted slingshotWires embedded in the slingshot
Final slingshotInside the slingshot with the accelerometerMbed USB slingshot

Finally, combining all different parts we get our mbed USB Slingshot!

Software¶

How does it all work ?¶

The first question concerns the USBMouse. The options are an absolute or relative mouse. The answer is quite simple because the mbed doesn't know the absolute position of the bird on the screen, so the natural solution is a relative mouse (like a normal mouse) - position the cursor over the mouse, then the slingshot takes over and moves relative to the starting point based on interpreting the manipulations of the slingshot.

Slingshot Angle¶

The angle of the slingshot is the main thing we need to calculate the direction of the vector to apply to the mouse position.

We simply use the fact that we know gravity is causing a 1G force on the accelerometer, and use that to calculate the angle of the slingshot with some simple trigonometry.

Mouse Movement¶

The mouse position is then calculated based on the vector offset calculated using the angle of the slingshot, and the stretch sensor reading.

Because we send relative movements, we actually calculate the desired position, then work out the difference from where we know we are and send that.

Algorithm¶

The general idea for how it works for a complete firing comes in a few steps:

WAITING

  • We start by WAITING, with the cursor over the bird - regardless of how we tilt the slingshot, nothing happens
  • When we see a strong enough stretch, we consider that the start of AIMING, and click and hold the left mouse button
Shot

AIMING

  • We then continuously calculate a vector based on the angle of the slingshot, and the stretch of the sling
  • This is translated in to relative mouse movements with some more trigonometry, and the mouse is moved as appropriate
  • As we are positioning based on a vector but sending relative mouse positions, we keep a note of the accumulated movements so we can send the difference each time

FIRING

  • We enter FIRING when we see a fast reduction in the sling stretch
  • At this point we release the mouse button, then return the mouse back to the starting position, ready for the next throw!

Code¶

The whole code is fairly concise, so here it is in full:

Mouse Setup¶

To use it, simply position the mouse cursor over the bird, and then start using the slingshot!

The cursor is not coming back at the initial position

On Windows (and probably on Linux or Mac OS), the cursor is not coming back exactly at the same initial position after a firing. To solve this issue, I modified this:

  • go into the Control Panel
  • Hardware and Sound
  • Mouse in the devices and printers section
  • in the pointer options tab, deselect Enhance pointer precision
  • You can also reduce the cursor speed

In Action¶

Turns out it works! Here it is in action!

So now you can kill pigs with a real USB Slingshot, by combining the two totally different worlds of carpentry and embedded systems!

Hopefully this gives you all the instructions you need to build your own, or any other USB devices you need to design!

Thanks¶

Thanks to everyone who helped us to make this possible!

  • Sparkfun for the Accelerometer
  • Adafruit for the Stretch Sensor
  • RS for the USB connector
  • NXP for the ARM Cortex-M0 MCU used on the mbed NXP LPC1U24
  • Chris Jarrett for crafting the wooden slingshot

Making the Video¶

Here is a little behind the scenes on how we put together the video one Wednesday afternoon. Not really something we'd done before, so a lot of making it up as we went along :)

Prototype your own USB devices with the new mbed NXP LPC11U24!¶

The LPC11U24 is one of the new ultra-low-cost 32-bit ARM microcontrollers entering the market that open up all sorts of opportunities for building USB devices. The times of requiring in-depth knowledge of the USB protocol, fiddling with complex software stacks and fighting 8 or 16-bit MCUs is over. Or being constrained by USB bridge chips. These chips only cost $1-2 in volume!

Using the mbed tools and the set of USB libraries, prototyping these devices should be really fast too!

For a look at all the USB Device types that work out-of-the-box, take a look at:

  • /handbook/USBMouse - Emulate a USB Mouse with absolute or relative positioning
  • /handbook/USBKeyboard - Emulate a USB Keyboard, sending normal and media control keys
  • /handbook/USBMouseKeyboard - Emulate a USB Keyboard and a USB mouse with absolute or relative positionning
  • /handbook/USBHID - Communicate over a raw USBHID interface, great for driverless communication with a custom PC program
  • /handbook/USBMIDI - Send and recieve MIDI messages to control and be controlled by PC music sequencers etc
  • /handbook/USBSerial - Create a virtual serial port over the USB port. Great to easily communicate with a computer.
  • /handbook/USBAudio - Create a USBAudio device able to receive audio stream from a computer over USB.
  • /handbook/USBMSD - Generic class which implements the Mass Storage Device protocol in order to access all kinds of block storage chips

These pages should show how easy it is to prototype low-cost USB devices, so you can concentrate on inventing the applications. Looking forward to seeing what devices you develop!

See also:

  • mbed NXP LPC11U24 prototyping board
  • mbed Developer Site homepage and tour
  • Join the mbed Mailing List for updates and occasional giveaways

The demo was inspired by the emergence of ultra-low-cost 32-bit microcontrollers that include USB, and we wanted to show off how easy it can be to prototype them to take advantage of this trend. For more about this and why we built the new mbed NXP LPC11U24 board, take a look at: