Tag Archives: python

Pi Maker Workshop and RasPi resources

One of the most interesting things I did all summer was a workshop called Pi Maker that I conducted as a launch event for a new MakerSpace in Noida (close to Delhi, India). Helping a group of people visualize the endless possibilities in the world of DIY electronics by using the Raspberry Pi as a medium, was in itself, quite rewarding. πŸ™‚

The main content for the workshop was provided by Inventrom robotics initially, which I modified to include all that I’d discovered and learnt in these past few years of working with the Pi. I also had a lot of support from RobotechLabs in Delhi to help setup this entire event.

I’ve uploaded the material on SlideShare and anybody looking to get started with the Pi from scratch (no electronics/programming past experience) or maybe on the hunt for some inspiration can have a look at them πŸ™‚ Feel free to share and use but please don’t modify the slides in any manner that removes the existing watermarks.

Here’s a link to the first presentation in a set of 6:

http://www.slideshare.net/mayankjoneja/1intro-37584027

Head over to these websites and check out the cool work they’ve been doing too!

http://raspberrypiworkshop.inventrom.com/
http://inventrom.wordpress.com/
http://www.robotechlabs.com/

https://www.facebook.com/makerspacenoida
https://www.facebook.com/inventrom

In order to draw in more participants, here’s a sort of promotional video that I’d cooked up :

I’d promised to put up the relevant explanation for this Intruder Alert system, and here’s my shot at it.
Here’s what happens when a person tries to enter my room:

  1. A PIR sensor detects a human presence which sends a signal to a GPIO pin on the Raspberry Pi
  2. The Pi communicates with the Arduino via serial and also plays a wailing siren from omxplayer
  3. The Arduino Uno, on receiving data from the Pi through a USB cable, switches on the christmas lights on the floor through a relay board.
  4. The Pi sends me an e-mail using ssmtp saying that somebody tried to enter my room
  5. An IR LED connected to the Raspberry Pi is used to trigger off my Nikon camera mounted on a tripod using LIRC

    Here’s a look at the code:

code

and here’s a peek at the hardware layout πŸ™‚
Layout

This is the basic PIR sensor code I’d implemented first before setting up the Intruder alert system:


import RPi.GPIO as GPIO
from time import sleep
# from subprocess import call
import os

GPIO.setmode(GPIO.BOARD)

GPIO.setup(7,GPIO.OUT)
GPIO.setup(11,GPIO.IN)

GPIO.output(7,True)

while True:
	sleep(1)
	if GPIO.input(11) == True:
		os.system('omxplayer /home/pi/Projects/PIR/hey.mp3')

I’d hoped to get some individuals hooked on to this amazing and rewarding world of magic through this workshop and I hope that the slides I’ve uploaded help me in spreading this know-how to other far-off places thorough the internet.

Just to show off the MakerSpace and give a glimpse into the 2 day workshop:

Advertisements

IR Remote for Nikon Camera using the Raspberry Pi (LIRC)

I finally came around to trying out LIRC on the Raspberry Pi to use it to trigger my Nikon D5100. πŸ˜€

I haven’t fully utilized the capabilities provided by it yet, but I’ve managed to get it up and running quite easily thanks to a lot of great posts and troubleshooting guides on some blogs and the Raspberry Pi forum.

I mainly followed these links:

http://www.instructables.com/id/Raspberry-Pi-Universal-Remote/

http://alexba.in/blog/2013/01/06/setting-up-lirc-on-the-raspberrypi/

To make a very simple remote using the Raspberry Pi, all you have to do is follow the steps given on either of these links.

Since I didn’t really have the physical Nikon ML-L3 universal remote which I wanted to emulate, I followed the steps given on these links after which:

1. I upgraded the firmware:

sudo apt-get update
sudo apt-get upgrade
sudo rpi-update

2. Got the Nikon ML-L3 lircd.conf file:

http://lirc.sourceforge.net/remotes/nikon/ML-L3

and replaced the contents of

/etc/lirc/lircd.conf

3. Restarted the lirc daemon:

sudo /etc/init.d/lirc restart

4. Checked if the remote was configured correctly:

irsend LIST Nikon2 "" 

This should show a list of the commands offered by the remote for triggering the shutter.

5. Tested the shutter command:

irsend SEND_ONCE Nikon2 shutter

6. Once that worked properly, (after a silent fist-pump) I decided to write a small python script that I can use for Timelapse shoots:

#Created: 09-07-2014 AM 02:38 
#Author: Mayank Joneja
#https://botmayank.wordpress.com
#Timelapse code for Nikon Cameras using the Raspberry Pi (LIRC)
#IR LED on GPIO 22 , usage:
#sudo python NikonCamera.py [no. of shots] [delay in seconds]

from time import sleep
import subprocess
import sys

if(len(sys.argv)<3):
	print "usage: 'sudo python NikonCamera.py [no. of shots] [delay in seconds]'"

else:
	shots = int(sys.argv[1])
	delay = float(sys.argv[2])

	for i in range (1,shots+1):
		subprocess.call('irsend SEND_ONCE Nikon2 shutter',shell = True)
		sleep(delay)

I’m quite happy with this setup as of now, but I plan to hookup a TSOP and make a small setup for recording and transmitting IR signals with the Pi. I guess I’ll then have a simple Flask based web-app for such an IR blaster.

I haven’t really tried out the range of the setup yet but I think in case of any issues I’ll simply amplify the signal with an NPN transistor like a BC547 and add another LED in parallel for better coverage angle. I’ll post any updates on this project as and when I get to them.

P.S.:I hope to click a nice timelapse sequence with this camera ASAP and upload that too. πŸ™‚