# NAME

RPi::UnicornHatHD - Use Pimoroni's Awesome Unicorn HAT HD in Perl

# SYNOPSIS

```perl
    use RPi::UnicornHatHD;
    my $display = RPi::UnicornHatHD->new();
    while (1) { # Mini rave!
            $display->set_all(sprintf '#%06X', int rand(hex 'FFFFFF'));
            for (0 .. 100, reverse 0 .. 100) {
                    $display->brightness($_ / 100);
                    $display->show();
            }
    }
```

# DESCRIPTION

Pimoroni's Unicorn HAT HD crams 256 RGB LEDs, in a 16x16 matrix, onto a single HAT for your Raspberry Pi. Use it for scrolling news or stock quotes. Mount it somewhere as a mood light. Build a binary clock. Uh. I don't know, you'll think of something.

# METHODS

Use these to make pretty pictures.

## `new()`

```
    $display = RPi::UnicornHatHD->new();
```

Creates a new object representing your Unicorn Hat HD. Obviously.

## `brightness($b)`

```
    $display->brightness(.25); # For tinkering at 1a
```

Set the display brightness between `0.0` and `1.0`. The default is `0.5`.

## `clear()`

```
    $display->clear;
```

Clears the display matrix.

This does not clear the display; it simply resets the 'canvas' for you.

## `get_pixel($x, $y)`

```perl
    my ($r, $g, $b) = $display->get_pixel(10, 15);
```

Returns the color this pixel will display.

## `off()`

```
    $display->off;
```

Clears the display matrix and immediately updates the Unicorn Hat HD.

This turns off all the pixels.

## `rotation($r)`

```
    $display->rotation(180);
```

Set the display rotation in degrees. Actual rotation will be snapped to the
nearest 90 degrees.

## `set_all($r, $g, $b)`

```
    $display->set_all(0xFF, 0, 0);
    $display->set_all('#FF0000');
```

Turns the entire display a single color.

Either...

```
    $r = Amount of red from 0 to 255
    $g = Amount of green from 0 to 255
    $b = Amount of blue from 0 to 255
```

...or...

```
    $h = Hex triplet from #000000 to #FFFFFF
```

## `set_pixel($x, $y, $r, $g, $b)`

```perl
    for my $x (1..10) {
            $display->set_pixel($x, 10, 1, 1, 1);
    }
    $display->set_pixel(0, 0, '#FFF000');
```

Set a single pixel to RGB color.

```
    $x = Horizontal position from 0 to 15
    $y = Vertical position from 0 to 15
```

...and either...

```
    $r = Amount of red from 0 to 255
    $g = Amount of green from 0 to 255
    $b = Amount of blue from 0 to 255
```

...or...

```
    $h = Hex triplet from #000000 to #FFFFFF
```

## `show()`

```
    $display->show;
```

Outputs the contents of the matrix buffer to your Unicorn HAT HD.

# SEE ALSO

- Buy one: [http://shop.pimoroni.com/products/unicorn-hat-hd](http://shop.pimoroni.com/products/unicorn-hat-hd)
- GPIO Pinout: [http://pinout.xyz/pinout/unicorn\_hat\_hd](http://pinout.xyz/pinout/unicorn_hat_hd)
- Github: [https://github.com/sanko/RPi-UnicornHatHD](https://github.com/sanko/RPi-UnicornHatHD)

# LICENSE

Copyright (C) Sanko Robinson.

This library is free software; you can redistribute it and/or modify
it under the terms of the Artistic License 2.

# AUTHOR

Sanko Robinson <sanko@cpan.org>
