Raspberry Pi Touchscreen Kiosk 
Saturday, July 16, 2016, 04:21 PM - Tutorials
Posted by Administrator

Raspberry Pi Browser Kiosk


So you've got a Raspberry Pi and a touchscreen, and you want to make it boot straight into a fullscreen web browser in kiosk mode. You also might want it to display a screen with some buttons that do things like reboot or shut down.



- A Raspberry Pi. This has been used on an original Pi B, and a Pi 3, so I figure it will work on pretty much anything in between.
- A touchscreen. This has been used with a couple of different touch screens. Getting your touchscreen to work is a whole nuther project. Here are the two I have used:
-- a very cheap HDMI+hat touchscreen, mounted to my Pi 3:
-- a very cheap hat-only touchscreen, mounted to my original Pi:


1. start with a working raspbian, and working touch screen

2. install the matchbox window manager and surf

sudo apt-get install matchbox-window-manager surf

3. create ~/.xsession file with the following:

surf &
exec matchbox-window-manager -use_titlebar no

4. reboot and observe that the pi boots to a kiosk screen

5. install the packages needed to get a webpage doing things like reboot or halt

sudo apt-get install suckless-tools lighttpd php5 php5-cgi
sudo lighty-enable-mod fastcgi-php
sudo /etc/init.d/lighttpd force-reload

6. give the www-data user access to shutdown/reboot.

add the following via visudo:
www-data ALL=NOPASSWD: /sbin/shutdown, /sbin/halt, /sbin/reboot, /sbin/poweroff

7. create /var/www/html/kiosk.php, with the following:


if (isset($_POST['submit'])){
if ($_POST['submit']=='reboot'){
$cmd='sudo reboot';
$ret=exec($cmd, $out);
if ($_POST['submit']=='shutdown'){
$cmd='sudo shutdown -h now';
$ret=exec($cmd, $out);

// get ip address
$cmd='hostname -I';
$ret=exec($cmd, $out);

echo <<<eohtml
.formbutton {
width: 100px;
height: 50px;
Raspberry Pi Menu:<br>
IP: {$http_host}<br>
<form name="frm" id="frm" method="post" action="">
<input class="formbutton" style="background-color: #F30;" name="submit" type="submit" value="reboot"><br>
<input class="formbutton" style="background-color: #F30;" name="submit" type="submit" value="shutdown"><br>
<input class="formbutton" name="submit" type="submit" value="reload"><br>

8. modify ~/.xsession URL

Edit and point to http://localhost/kiosk.php and reboot
add comment ( 618 views )   |  permalink
Nerf Gun Robot 
Thursday, June 9, 2016, 03:41 PM - Robots, Programs
Posted by Administrator


This 4 wheel drive robot supports RC remote control, a headlight, a 2DOF arm with a gripper, remote Nerf gun firing, 5.8ghz video transmission, and automation via Raspberry Pi (not yet implemented).

Parts List:

4 x Pololu brushed DC gearmotors (2 with encodersj, 2 without)

4 x Pololu wheels

2 x Pololu motor mounting brackets (1 pair/pkg)

1 x Ion Motion 2x15A Roboclaw motor controller

Aluminum angles from Lowes - as needed to build frame.

2 x misc. servos for arm

1 x misc. servo for Nerf gun trigger

2 x misc. aluminum servo brackets (with bearing)
I can't find the ones that I usually get. I was getting them on ebay for around $4 each.

1 x ~5v headlight that can be turned on and off by simply removing or restoring power. Don't get one that uses a soft switch, because when you apply DC to those, they don't turn on until the button is pressed.

1 x Makeblock gripper

1 x Arduino Nano

1 x Arduino Nano breakout board

1 x Keystudio I2C PWM driver

1 x 5.8ghz video transmitter

1 x 12v camera

1 x Misc dual H Bridge, for controlling headlight and gripper

1 x electric Nerf gun. I used N Strike Elite

1 x 5v BEC for servo power and Arduino

1 x Misc 12v battery for video transmitter, camera, motor controller, and drive motors


Arduino Nano code is on my github:

add comment ( 561 views )   |  permalink
Remote Control and Thermometer for Cappuccino Machine 
Wednesday, November 18, 2015, 06:22 PM - Programs, Devices, IOT
Posted by Administrator


My cappuccino machine takes about five minutes to warm up, and I wanted to turn it on remotely over wifi when I wake up so that when I enter the kitchen in the morning I wouldn't have to wait for it to warm up. I also wanted to be able to tell whether or not it was warmed up, so I added a thermometer and a LED ring to display the temperature.

Parts List:

1 X ESP8266 ... ds=esp8266

Dallas temperature sensor ... V2RPBDKQ77

Adafruit Neopixel LED ring ... pixel+ring

PWM servo, a Hitec perhaps ... itec+servo

ESP8266 Code

The code is on my github:
add comment ( 546 views )   |  permalink
Sunday, June 14, 2015, 05:47 PM - Robots
Posted by Administrator


Atticbot is a remote control vehicle thing that I designed to remotely crawl around my attic and inspect the bats that had moved in. It's basically just a couple of continuous-rotation servos attached to a yardstick frame, a battery, an RC receiver, a video transmitter, and a camera.

Parts List:

2 x continuous rotation servos

2 x yardsticks for frame

1 x RC receiver - FrSky somethingorother
1 x RC transmitter - Turnigy 9XR-Pro perhaps
1 x 5.8ghz Video transmitter+camera
1 x 5.8ghz Video receiver/display

I've really skimped on details on this parts list. Email me if you have questions.

add comment ( 529 views )   |  permalink
Object Avoiding Robot 
Monday, June 1, 2015, 09:28 PM - Robots, Programs
Posted by Administrator

Object Avoiding Robot


This 4wd robot navigates about using two SR04 ultrasonic distance sensors. One sensor points down to detect stairs/cliffs, and the other points forward and rotates left/center/right using a micro servo.


4 x continuous rotation servos (for drive wheels)

4 x wheels - must misc wheels I rounded up from toys, screwed onto the servo horns.

1 x micro servo to rotate forward-facing SR04

2 x SR04 ultrasonic sensors\

1 x Arduino

misc wood, hot glue gun, machine screws


The Arduino code for this robot can be found here:
add comment ( 538 views )   |  permalink

<<First <Back | 1 | 2 | 3 | Next> Last>>