In this the second and final article of the Garage Light series I will be providing the receiver and associated circuitry and code to complete the project. When I started this project I didn't have a clear design and as a result got into a just one more feature mode and ended up with a nice design.
As the old saying goes, "Necessity is the mother of invention" and in this case the need was a light in the garage that could be turned on for a period of time when motion is detected. We tried putting a couple of inexpensive motion sensitive, battery operated lights along the path to the recycle and garbage bins but they are so faint and you have to get so close to trigger them that it just didn't do the job.
In this, the third in the Raspberry Pi series of articles we will be building on previous articles to develop a simple solution for what I would call an Internet of Things Hello World project. In my previous articles we discussed initially setting up the Raspberry Pi and in the second article using Mosquitto as a message broker. In this article we will be introducing several new software, middleware and firmware packages as well as a new hardware device the ESP8266-12e WiFi adapter. If you haven't read my previous articles I suggest you read them before continuing.
You've got your finger on the mouse button ready to pull the trigger and finally order that Raspberry Pi 2 that just came out but you don't know if you've got the time to do the research to learn how to set it up and start programming it. In this first of n part series of articles I will walk you through the process of getting the Pi configured. In future articles we will configure the Pi to program in the C/C++ and Python languages.
In this, the second article in an ongoing series dedicated to the amazing Raspberry Pi we will be configuring the Pi as an MQTT message broker using Mosquitto. Mosquitto is a lightweight, but powerful publish/subscribe model messaging system that can be installed on a wide variety of platforms. Our goal in this tutorial is to install, configure and test the software on a Raspberry Pi 2 and to be able to publish and subscribe to messages on not only the Pi but other computers as well.
There are many ways to drive small current motors, those requiring 500mA or less but the L293H Quadruple Half-H driver is a versatile chip that was designed for use with motors, can very easily be controlled with a micro-controller and can be purchased JameCo Electronics. Using this chip we can drive either 2 DC motors or one Stepper motor and we will learn how to do both in this tutorial. The components needed to complete this exercise are an ATMega328p Micro-controller to interface with and control the L293D device but any controller may be used, the L293D component and one dc motor and/or one stepper motor.
In order to learn the assembler programming language some knowledge must be known about the hardware we are using. In this tutorial we will start with a brief introduction to the inner workings of the AVR micro controller then move on to pure assembler and finally show how to mix 'C' and assembler languages.
While doing the research for this article I found that there is quite a bit of information on the net regarding this subject but one has to go to various places to get the whole picture so in this article I am attempting to gather all that information and offer it in one place, here! All examples are compiled using Atmel Studio 6.0 SP2 and the ATMega1280, but with a little customization can be modified to work with any Atmel Microcontroller.
One of the most important functions in embedded electronics is the abitlity to communicate with other processors or integrated circuits and one of the primary ways that the Arduino Due can accomplish this is with the UART/USART Controllers. For those not familiar with this method of communications I recommend the Serial Communication article at Sparkfun.com.
In this edition of the continuing series of articles uncovering the mysteries of the Arduino Due we will be tackling the problem of creating a Pulse Width Modulation (PWM) signal. To do this we will use two techniques; first the old fashion way with a timer and secondly with the PWM Controller which is specific to the SAM3X8E processor. If you look at the pinout for the Arduino Due you will see that Pins 2-13 are set aside for PWM with 4 of them using the PWM Controller and the rest use the various timer channels.