Thursday, 28 January 2016

Difference Counter for In and Out Gates





  
Sometimes, we need to know whether someone is still inside a building before it is locked. And if so, how many persons are still inside? There can be many other similar situations for which the circuit presented here can come handy. But it needs separate in and out gates to work and can count up to nine persons (inside) only. Though, it can be extended to count more.

Circuit and working
Fig. 1 shows circuit of the difference counter, built around four ICs, for use between entrance and exit doors. Switch S1, which is an SPDT switch, together with gates N1 and N2 of CD4011 (IC4) generates a pulse for incrementing counter CD40192 (IC1). CD40192 is a BCD pre-settable up/down (bidirectional) counter. The counter moves up or down with the positive clock edges applied to its corresponding pin 5 (clock up) or pin 4 (clock down).

When you press S1, its pole comes in contact with its terminal 3, which is connected to pin 5 of IC4. When you release S1, its pole returns to its original position at terminal 1. Thus, for every action of pressing and releasing switch S1, there is an increment in display DIS1 till 9. Pressing switch S3 momentarily resets the counter to 0.

   
Switch S2 is also an SPDT switch that works exactly like switch S1, but it is used for decrementing the count in DIS1. Switch S2, together with gates N3 and N4 of IC4 generates a pulse for decrementing the counter in IC1.
The counter can be expanded to display more digits through the output pins 12 and 13 of IC1, if needed. High-level signal on pin 14 (reset) clears all internal triggers. That is, when switch S3 is pressed momentarily, IC1 is reset. Also, resetting occurs through capacitor C7 whenever power is switched on.

The outputs of IC1 are decoded by CD4511 (IC2), which has internal 4-bit latch, decoder and output drivers. The internal latch is always enabled because pin 5 (LE) is connected to ground permanently. The outputs of IC2 drive common-cathode 7-segment display LTS543 (DIS1). Since pin configurations may be different for the other displays, always check their datasheets before use.
Resistors R5 through R11 are usually in the range of 120 to 470 ohms, depending on the type of DIS1. Here, we have used 330-ohm resistors.

Power supply of the circuit is built around linear regulator 7805 (IC3). The input voltage is applied to connector CON1 and can be AC or DC in the range 9-15V.
Construction and testing
An actual-size, single-side PCB for the difference counter is shown in Fig. 2 and its component layout in Fig. 3.


Fig. 1: Circuit diagram of the difference counter


Fig. 2: Actual-size PCB layout for the counter


Fig. 3: Component layout for the PCB
Download: http://www.electronicsforu.com/electronicsforu/circuitarchives/my_documents/my_files/Difference_Counter.zip
Mount the components on the PCB to save time and avoid assembly errors. Carefully assemble the components and double check for any overlooked error. Check/verify the voltages at various points as per the table.
You may use any type of SPDT switches (S1 and S2) to check the increment and decrement in DIS1 display. But for practical application, S1 and S2 should be SPDT foot switches, which could be fitted in level with the floor at the entrance and exit doors, respectively.

Battery-Discharge Measurement Circuit



  
Battery-life measurement for a portable system is a time-consuming task and many methods used for it do not give reliable results. Presented here is a circuit using which you can measure the battery-life very easily. Here, an analogue clock tracks the discharge time of the battery used in battery-powered portable devices.
 

Circuit and working
The circuit for battery-discharge measurement is shown in Fig. 1. It is built using low-power single-/dual-supply comparator MAX921 (IC1), MOSFET VN0300L (IRF1), an analogue clock and a few other components.
IC1 monitors the life of the BUT (battery under test) and controls the power supply for the analogue clock. When the BUT voltage falls below the threshold value set by VR1, IC1’s output becomes low, which turns off MOSFET IRF1. This means, power supply for the analogue clock is cut off and so the clock stops running. The reading on the clock at this point gives the discharge time of the BUT, provided you had set the clock to 12:00 before testing started. The circuit can test 2.5V to 11V batteries.


Fig. 1: Circuit diagram for battery-discharge measurement


Fig. 2: An actual-size PCB pattern for the circuit


Fig. 3: Component layout for the PCB
Download: http://www.electronicsforu.com/electronicsforu/circuitarchives/my_documents/my_files/3D8_Battery-Discharge.zip

Construction and testing
  
An actual-size, single-side PCB for the circuit is shown in Fig. 2 and its component layout in Fig. 3. After assembling the circuit on PCB, enclose it in a suitable plastic box. Connect positive terminal of the analogue clock to positive terminal of a 1.5V AA-size battery and negative terminal to the drain of MOSFET IRF1. Before using the circuit, verify that voltages at the test points are as per table.
For setting the threshold voltage, you need a variable DC power supply at CON1. For example, to measure the discharge time of a 6V battery (BUT), first decide its minimum threshold voltage, say 4.5V. Connect variable supply to CON1 and set it to 4.5V. Vary VR1 till the clock stops running. Now, remove the variable power supply, set the clock to 12:00 and connect the 6V battery at CON1. Connect the load across the battery. As the battery power is being consumed by the load, voltage level begins to drop. When BUT voltage drops below 4.5V, the clock stops running. The time shown on the analogue clock at this point is the discharge time.

Simulation for Military and Aerospace Electronics Design


The military and aerospace sectors lay down extremely rigid specifications for the designs, going for nothing but the best design practices and only the most precise instruments. Simulation is therefore integral to military and aerospace products design cycle. Here we look at the advantages Saber brings to the design engineers working in the military and aerospace domains 


As even more electronic equipment get added to the aeroplane electrical systems, the complexities of the end system get more challenging. The addition of these non-linear loads results in a number of power-quality problems when the system is fully integrated. These disturbances include excessive harmonic distortion, voltage sags, transient voltages outside specified limits and power transfer problems.



Fig. 1: Functional modelling level


Use of power electronics for small, low-cost and efficient power supplies has become ubiquitous in commercial applications. A significant disadvantage of power electronic supplies is the non-sinusoidal currents that the equipment draw out of the electrical power system. These harmonic currents interact with the system source impedance resulting in harmonic voltages at the terminals of aircraft utilisation equipment.


Aircraft specifications limit the amount of total harmonic distortion (THD) of the input voltage as well as individualcomponents of harmonic voltage that can exist at the equipment terminals. Typical figures include eight per cent maximum voltage THD and six per cent maximum individual harmonic voltage content.


In recent years, there has been an increase in the use of equipment using switching power supply inputs. This has caused degradation of the voltage waveform with consequent system problems. Many of these problems are not identified until the airplane is fully integrated, when making design changes becomes extremely expensive. In order to maintain acceptable levels of harmonic distortion for the system, limits are imposed on the levels of harmonic currents drawn by different equipment. 


Modelling and simulation are used to develop reasonable requirements on the user loads and also to predict system power quality measures, apart from analysing other power quality phenomena such as levels and duration of voltage transients due to load switching and system failures.


Objectives of simulation

The major role of simulation in the aerospace domain is to conduct design and validation tests on an aircraft’s electrical network taking into account power generation, distribution and network quality studies. From the moment the basic concept is defined to the time of end-of-the definition phase, simulation is crucial in validating every single step on the cycle. Moreover, simulation plays an important role in the studies conducted on power quality and stability of the electrical system in the aircraft. Additionally, it provides invaluable input into the power budget and control/logic studies that are very important from a fiscal point of view.

Simulation also serves to create an accurate replica of the electrical network for an aircraft or any other military installation. The system needs to be able to simulate electrical power generation systems along with the installed switching and protection devices and the power users.


Modelling the systems gives an insight into the accuracy of hardware performances at both the equipment terminal and at the temporal and frequency domain. Simulation also serves to establish the integration at network level between the model library, model interface and solver parameters, thus making the whole process seamless and easier to troubleshoot and maintain.




Fig. 2: Use of Saber in the V&V cycle


Several levels of modelling are required to reach the objectives of simulation. In the order of increasing complexity, they would be architectural, functional, behavioural and components. The behavioural model of simulation is used for power-quality study of the network including transient-level voltage, harmonic distortion and voltage ripple. The functional model of simulation mainly deals with the network stability studies along with validation of network configuration logics.


Simulation activity

Functional. The major sources of failure generation at the network level can be narrowed down to the following:

1. Open cable

2. Short circuit
3. Erroneous information signal
4. Contact stuck open or close
5. Power distribution centres
6. Power converters
7. Electric loads

Functional-level modelling aims to integrate voltage generators, power distribution centres, power converters and electric loads and others at the network level to increase the overall system dependability.


Simulation in this modelling follows the following algorithm. The process starts with the construction of a test bench, which is basically a virtual environment used to verify the correctness or soundness of a design or model. The issues that pop up due to the convergence of multi-physics are taken into account and solved as per requirement before the model is simulated. After simulation, post-processing is done. Simulation results include the results of simulating the entire electrical network at a functional level along with finding out the impact of possible failures on the electrical network. 


Saber, Synopsys’ simulation tool, offers users the ability to use both analogue and digital solvers to simulate and work on other features while simulating. It also allows users to use other tool models through the ability to import C-code capabilities.


Power quality. Power-quality studies at network level deal with the transient voltage levels on distribution bus bars including extreme conditions like heavy load switching, high power demand from dynamic loads and bus-bar transfers. They also study steady-stage voltage harmonic content on distribution bus bars with special focus on total harmonic distortion and harmonic spectrum. Major issues that crop up are the integration of non-linear models and the ability to start the simulation from any steady-state condition.


Failure-mode effects analysis (FMEA). Modern aerospace systems are dependent on electrical control. Design teams must understand how electrical failures affect system performance. A good simulator can be used to simulate and analyse systems under electrical fault conditions. A matrix of faults representing electrical device failures (e.g., system shorts or opens) is automatically created to evaluate system performance during each fault condition. Fault reports are automatically generated and used to assess the reliability of the complete design.


Robust design methods. Robust design methodologies help aerospace design teams identify, and compensate for, the effects of parameter change on aircraft system performance. An advanced analysis (sensitivity, parametric, statistical, stress) gives design teams the tools needed to implement robust design techniques. With this analysis, design teams can identify the parameters that affect system performance the most, establish tolerances for the most critical parameters, investigate how performance is affected by random changes in tolerances, and analyse operational stresses placed on system components.




Fig. 3: Aerodynamic testing of an Airplane


Advantages of Saber

Saber assists designers in developing a robust and accurate simulation platform through the use of multi-level modelling (functional and behavioural) along with the integration of complex electrical and multi-physics models. It helps you deal with the major issues that crop up during simulation, such as the increase in complexity as you work with almost a hundred thousand variables and more than 200 thousand components and sub-systems. 

Most of the newer aircraft models have a non-metallic fuselage (carbon fibre is the preferred alternative). Due to this development, it has become paramount that the simulation tool takes this development into account. The tools should be able to handle operations at low frequency while  being proficient at handling the current distribution in ESN, current leakage in the carbon fibre and ground voltage fluctuation.


Saber’s easy-to-use design editor gives engineers the ability to design and simulate complete aerospace systems at any level of design hierarchy. Design teams can choose parts from its large model library, or easily integrate their own models into the system. Once the design is complete, a detailed analysis can be accessed directly from the design editor. Simulation results can be overlaid on the schematic for quick viewing, or loaded into Saber’s waveform analyser for detailed analysis. Saber accurately sizes system components to match energy generation with corresponding consumption along with eliminating surprises in power network loading and distribution through early verification. The simulator also enables design portability using industry-standard VHDL-AMS and MAST languages, thereby making sure it is the one-stop solution for all the simulation needs.

Wednesday, 27 January 2016

Based Audio VU Mete

Arduino Based Audio VU Meter 

Presented here is an Arduino based audio volume unit (VU) meter that uses a liquid crystal display (LCD). A VU meter or standard volume indicator (SVI) is a device that displays a representation of signal level in audio equipment. In this project, the intensity of left-channel and right-channel audio signals provided as input to Arduino UNO board is displayed as bars on the 16x2 LCD. In this circuit, analogue input pins of Arduino UNO board are used for measurement of audio-signal levels.

Audio-signal inputs are provided at analogue input pins A2 and A4 of Arduino UNO board. These can be in the form of voice coming from a microphone through an amplifier or as direct output from a music player.


Fig. 1: Arduino based audio VU meter  

Audio signals at pins A2 and A4 are processed by ATmega328 microcontroller (MCU) on Arduino UNO board and, after comparing the signals, calculations are done.

Finally, corresponding values are provided by ATmega328 to a 16x2 LCD for displaying audio intensity bars.

Circuit and working  
The Arduino based audio VU meter, as shown in Fig. 1, is built around Arduino UNO board, 16x2 LCD and 10-kilo-ohm potentiometer (or potmeter).

Arduino UNO board. Arduino UNO is an open source electronics prototyping platform based on flexible, easy-to-use hardware and software. Arduino UNO board is based on ATmega328 MCU. It has 14 digital input/output (I/O) pins of which six can be used as pulse width modulated (PWM) outputs, six analogue inputs, 16MHz ceramic resonator, USB connection, power jack, reset button and an ICSP header. It contains everything needed to support the MCU; simply connect it to a computer using a USB cable, or power it with an AC-to-DC adaptor or a battery to get started.

Pins 11 and 12 of Arduino UNO board are connected to pins EN and RS of the LCD, while pins 2 through 5 are connected to data pins D7, D6, D5 and D4 of the 16x2 LCD.

LCD 16x2. LCD JHD162A is a display module with a 4-bit interface, which is used here to display the bars corresponding to the applied input signal level. Only four data pins of the LCD module are being used in this circuit. A potmeter of 10-kilo-ohm is used to control the contrast of the LCD screen display.


Fig. 2: Left and right bars displayed on the LCD 

Analogue audio signals (left-channel and right-channel) are provided at analogue input pins A4 and A2 of Arduino UNO board. The signals are processed by ATmega328 MCU on Arduino UNO board and, after performing some comparisons, data is sent to the LCD screen to display the corresponding signal level bars.

Height of the bars will change as per voltage of the audio-input signal at pins A2 and A4 of Arduino UNO board as shown in Fig. 2. L is displayed on the LCD for left channel and, similarly, R is displayed for right channel. Connections of pins A2 and A4 of Arduino UNO board must be done carefully so that proper channel audio input is provided to the circuit.

To display bars on the LCD screen, custom characters are created for the 16x2 LCD, which is explained in the programming section. The potmeter is used for controlling the contrast of the display and, so, can be varied as per requirement.

Software program
The program for this circuit performs the following functions:
1. Initialising the circuit and LCD
2. Displaying the welcome message on the LCD
3. Generating custom characters
4. Performing various comparisons with input signal voltage at analogue input pins
5. Displaying bars and changing their respective heights on the LCD according to the input signals
The program uses special characters for bar-height display on both rows of the LCD using arrays p3, p4, p5, p6 and p7, and arrays L[8] and R[8] for displaying letters L and R on the 16x2 LCD’s starting columns of both rows, respectively.

Similarly, array K[8] is used for displaying special characters at the end of both rows, and LEEG[8] is used to display special characters for bar shapes.

LiquidCrystal lcd(12, 11, 5, 4, 3, 2) function is used for LCD configuration.

Download source code: click here

void setup()function is used to configure the pins of ATmega328 MCU on Arduino UNO board.
Serial.begin(9600) function is used to configure for serial communication with Arduino board at a baud rate of 9600.

lcd.begin(16, 2) function is used to indicate the size of the LCD.

lcd.createChar(1, p3) function is used to define custom characters for further calling in the program by number only.

lcd.print(“VU METER”) function is used to display the VU meter as a welcome message.

void loop() function is used to perform the task for infinite time.

analogRead(inputPin) function is used for reading the analogue-input value.

Simple calculations are performed to get the values for displaying the bar heights as per audio-input signals.

Construction and testing 
A USB A-B cable is used to upload the compiled sketch (software) from the PC to the MCU through Arduino IDE.
The operation is as follows:
1. Power on Arduino UNO board using a USB A-B cable. As soon as you power on the LCD, it displays VU meter on the first row and bars on the second row of the LCD.
2. 10k potmeter VR1 can be used to adjust the contrast of the LCD.
3. If we connect the input from a music player to analogue input pins A2 and A4 of Arduino board through two wires, we can easily see the changes in the bars and letters L and R on both rows of the LCD, simultaneously, as shown in Fig. 2.

Monday, 25 January 2016

Seven Attributes of Highly Effective Scopes

Protocol: Seven Attributes of Highly Effective Scopes

While all major scope vendors offer protocol decode and triggering applications, the applications vary in capability. So when evaluating an oscilloscope that will include a protocol application, here are attributes that should be considered



It is difficult to find a design that does not include one or more lower-speed serial buses such as JTAG, I2C, SPI, CAN, LIN, FlexRay, RS-232, Mil-std 1553 or a proprietary variant. Furthermore, many products are incorporating higher-speed serial buses such as USB, MIPI and PCIe for data transport.


Fig. 1: Protocol listers enable users to quickly move between physical and protocol layers with the advantage of seeing packet detail in the lister while zoomed out as shown in this USB decode example

Protocol apps have become an important scope capability for good reason. With the right scope and protocol application combination, teams can gain quick insight to resolve issues. While all major scope vendors offer protocol decode and triggering applications, the applications vary in capability. So when evaluating an oscilloscope that will include a protocol application, here are seven attributes that should be considered.

1. What protocols are supported and to what degree?
If you have ever hand-decoded waveforms, you will immediately understand the value of real-time decode. Protocol apps are typically offered as software options, and can be added to an existing scope or ordered with a new scope. So when selecting a scope, check the datasheet to see what protocols are supported on a particular scope or a specific scope family.
The datasheet will also typically have good detail on the degree of support offered. Most vendors offer free short-term trial licences. Some vendors have a previously acquired example that you can quickly load, or hook up to your own target and try out.
Pull up the application on the scope, to determine how well a particular protocol is supported. For example, if you are using SPI, what is the fastest data rate that is supported? Does the application support 2-, 3- and 4-wire SPI, or just a subset? If you are using USB 2.0, does the application support low-, full- and high-speed versions of the spec as well as HSIC? If using I2C, does the application support I2C where the read/write bit is included in the address field?

Often, there is a need to look at simultaneous decode of more than one serial bus. How well does the scope allow you to set up decode of multiple buses, navigate between buses or change which bus is being used as the trigger source?
2. How easy is it to configure for decode?
Engineers excel at problem solving. Anytime too much brain power or time is required for a task, engineers will find another, less taxing method of attacking a problem. Setting up a scope to take a protocol measurement should be something that you can do in a minute or less.
 

Configuring the scope for protocol decode involves selecting which channels are probing specific serial signals, and setting the threshold value for determining when the signal is high and when it is low. While the concept seems simple enough, when setting up protocol decode for a serial bus with three, four or five signals, the task becomes more complex than originally anticipated. If decode is set up for multiple simultaneous serial buses, the task becomes even trickier.

One innovative feature that some vendors offer is ‘auto setup’ for decode. After the user assigns channels, the auto setup works a bit like autoscale. It determines the correct threshold level for each signal and scales the timebase appropriately. This feature is particularly effective for users who don’t make decode measurements frequently.

3. How useful is protocol decode display?
Decode display can vary from scope to scope to a high degree. Display protocol decode for the bus you are interested in on the scope you are considering.

Annotating waveforms with decode is the most common method of displaying protocol packets. Packet content is aligned in time with parametric signal detail. Some vendors colourise packets to make it easier to determine packet sequence even with larger timebase settings when packet detail is too compressed to see detail. Some vendors decode the entire acquisition memory, while others decode only what is on the screen. Decoding only on-screen info can be problematic. If the entire packet is not displayed on the screen, the scope would not decode any of the packets, or worse, may decode a partially displayed packet incorrectly.


Fig. 2: Time-aligned markers track in the listing when moved in the waveform area, or conversely tracks in the waveform area when a new row of the lister is highlighted as shown in this SPI decode example

Most vendors also offer a lister that will display decode of sequential packets. Listings let users see the flow of packets in a more condensed format (see Fig. 1). Unlike decode in waveform areas, listings show packet detail independent of timebase settings. Listing detail can vary greatly from vendor to vendor and scope to scope.
When evaluating protocol decode on scopes that incorporate a lister, ensure that your vendor provides time alignment between each row in the lister and signals in the waveform display. With time alignment, users can move between physical layer and packet layer quickly and confidently (see Fig. 2). Some vendors provide listings with minimal or no time alignment with signal detail, which makes debug more challenging. 

4. What type of packet triggering is incorporated in protocol application?
Scope vendors typically bundle packet-based triggers with each decode application. These triggers can be implemented in software or hardware. Knowing this level of detail is important if the user plans triggering on infrequent events.
Hardware-based serial packet triggers are typically implemented in an FPGA, and run in real time. The vendor implements a real-time state machine that tracks incoming packet content and when the specified condition is met, this hardware interacts with trigger circuitry of the scope. Hardware-based protocol triggers will absolutely trigger the scope on a specified packet no matter how infrequent the event occurs.

Software-based serial packet triggers can be developed more easily. They accomplish the task using post-processing software and hence are slower than hardware-based protocol triggers. After each acquisition, the software searches the acquisition record for the specified packet. If the specified condition is found, the scope displays the acquired memory buffer including both signal and packet detail. Alternatively, if the software searches the acquired memory and does not find the specified trigger condition, the scope discards the acquisition and acquires a new acquisition. Due to the high amount of processing after each acquisition, software-based triggering has significant dead time between acquisitions and is extremely likely to miss trigger conditions that occur infrequently. As memory depth increases, so does processing time, thus significantly increasing dead time between acquisitions.
So pull up a serial trigger on your vendor’s scope for the protocol you are working with. See what types of packet-based triggering is available and whether the trigger is implemented in hardware or software.
5. How much memory does your scope support for packet capture?
Users typically don’t know how much memory is needed until they encounter a situation that requires longer time capture than their scope is capable of. Scopes typically come with some base memory, which can optionally be expanded by purchasing a licence to turn on additional memory. Scopes acquire asynchronously and hence use memory more quickly than dedicated protocol analysers or state-based logic analysers. For this reason, protocol apps benefit greatly from deep-memory scopes.


Fig. 3: MSOs can use any combination of digital or analogue channels for protocol decode as shown in this SPI decode example. This preserves some analogue channels for other time-correlated measurements, and allows sufficient channel availability if needs arise to decode multiple buses simultaneously 

Check whether the scope under consideration allows you to independently set memory depth, sample rate and time base. This capability makes it dramatically easier to capture and view protocol signals with full memory depth. On scopes where this is not possible, users must capture the entire acquisition on screen, then pan and zoom to see packet detail.

Serial traffic often incorporates periods of dense activity followed by relatively long periods of dead time. For this purpose, using the scope’s segmented memory mode enables users to capture significantly longer periods with the same amount of memory. Each segment is started when the scope sees a specified trigger condition. For example, when a USB device sends a number of packets, each with a setup packet, use of segmented memory allows the users to capture this sequence of events using a hundred times less memory (50 kpts instead of 5 Mpts).
6. How fast does your scope process and display serial packets?
Decoding serial packets can be taxing on scope performance. While vendors will tout fast analogue channel update rates when very shallow memory is used, few vendors will communicate how fast or slow they decode serial packets—particularly with deep memory.
For example, one scope vendor specifies a maximum update rate of 250 thousand waveforms per second. With 10 Mpts used for serial decode, the same scope updates at just one waveform every six seconds—more than a million times slower.
Slow update rates for protocol are problematic for several reasons. When viewing signals in real time, slow update rates dramatically degrade signal detail seen on the scope, miss showing infrequent events and frustrate users with sluggish instrument control.
7. What benefits does using an MSO have for protocol analysis?
Mixed-signal oscilloscopes (MSOs) make great choices for protocol analysis for several reasons. First, they free up analogue scope channels for viewing other system activity (see Fig. 3). Second, when viewing more than one serial bus, MSOs offer additional channels unlike digital signal oscilloscopes that max out at four channels. Third, some vendors have more standard MSO acquisition memory than is available on scope channels, enabling capture of additional packets when the MSO’s digital channels are used rather than analogue channels.
Many vendors do not support segmented memory with MSO digital channels. This means that MSO channels cannot provide protocol decode when segmented memory mode is utilised. Check whether your scope vendor supports segmented memory on the MSO channels.
Adding protocol analysis capabilities to a scope enables teams to debug a wider range of issues faster. Evaluating both specific protocol apps, and the scope’s underlying ability to effectively perform packet-based triggering and decode will result in selection of the scope that best fits your team’s need.

Android Development

 Free E-books On Android Development!

Technological advancements today has bridged the gap between software and hardware development. Every software developer today needs to have an understanding of hardwaring and every hardware engineer need to have fair knowledge of softwaring. And Android as an open source platform is definitely one of the most attractive space for hardware engineers to venture into. So here's bringing 5 free ebooks on Android to help you sail into the world of Android!



1. 
A first look at Google Android by Tomas Katysovas

Author: Tomas Katysovas
Publisher: Free University of Bolzano, Internet Technologies 2. 2007-2008
The book intents to introduce the promising Linux based mobile platform to the user. It also introduces the reader to the Open Source infrastructure which not only supports development, but also has the potential to become a main business activity in the future.

2. 
The Android Developer’s Guide

Publisher: Android.com
The book is a Developer's Guide from android.com. Offering tutorials from basics to advanced subjects it is quite helpful to get you started.

3. 
AndBook: Android Programming Book by Nicolas Gramlich

Author: 
Nicolas Gramlich
Publisher: anddev.org-Community
AndBook is a non-commerical book to learn programming for Google’s Android as a ‘hands on’ process. As mentioned in the book, “This document was written for developers who have worked with Java™ before and want to start developing for the Android Platform. I tried to make this as much “hands on” as possible, placing example codes everywhere it fit. Also I tried to insert as many picture as possible, because they liven up the learning process and relax the reader’s eyes.”

4.
 
Building Android Apps with HTML, CSS, and JavaScript by Jonathan Stark
Author: Jonathan Stark
Publisher: O'Reilly 
This hands-on book shows you how to use HTML, CSS, and JavaScript to design and build apps for any Android device without even using Java. 
Author: Ian F. Darwin
Publisher: O'Reilly Media 2011

The book offers practical recipes for you to develop Android apps. It explains user interface, location-aware apps,multitouch, web services, device features like the camera, accelerometer, and GPS and much more.

Faster connectivity with LIFI

IoT:Faster connectivity with LIFI
Transmiting information at as much as 224 gigabits per second; LiFi offers lot more to IoT than being a revolutionary Visible Light Communication medium.

WiFi made significant changes in how we communicate and enjoy entertainment options through the internet. Now LiFi (light fidelity) is taking technology to a much higher level. It is likely going to do it quickly and with massive implications.
IoT
Li-Fi is bidirectional, high speed and fully networked wireless communication, that is similar to WiFi, but uses visible light communication, like infra-red and near ultraviolet light, to transmit data. More simply, rather than using radio frequency, it uses light. .The LED lights require so little energy, they can be powered by a standard ethernet cord.
This is important because  (VLC) has much higher bandwidth than radio frequency based WiFi.
To add on it has been observed that the receivers sometimes wont be able to distinguish the signal, and unlike WiFi, LiFi signal cannot pass through walls which could be be a blessing in disguise in terms of security aspect is concerned. Its not far away that these drawbacks would be won over with smart architecture where the light follows the user around the space.

What it Means to IoT

It cannot be understated. LiFi will close the digital divide and allow for the Iot (‘internet of things’) , meaning tens of billions of devices connected to the internet. Solar cell LED light transmits signals through imperceptible changes in light. This potentially eliminates access and bandwidth problems across the entire globe, connecting an almost unlimited array of devices.
There’s more. While LiFi provides almost unlimited bandwidth for practical purposes, it also provides the energy to provide the power to recharge devices. In other words, while you are using LiFi, you are actually providing the power for, and recharging the very devices used to utilize it. Mind blown.

 The Future Is 2016

Lifi Not only will LiFi become an accepted term in coming months, you will begin to see real products with real applications that utilise it. LiFi could be installed anywhere users might like light and data services: bus shelters, train stations, street lights, tourist information kiosks could all provide data transmission as well as light.. As bandwidth limitations become a thing of the past, so will restrictions on how and how much information we can access. This changes everything.


Related Posts

Python Programming

Collection Of 51 Free eBooks On Python Programming

To use with Raspberry Pi or to program simulation software, here's bringing 51 super helpful and free ebooks on Python programming that can help you become a python pro. Who knows you end up becoming the next big gaming programmer! 




Author: Cody Jackson, 2013
An introduction to computer programming, using the easy, yet powerful, Python programming language. Python, a cross-platform language, lets you work quickly and efficiently, allowing you to concentrate on your work rather than the language.
Author: Brian Heinold
Publisher: Mount St. Mary's University, 2013
Partly a tutorial and partly a reference book. I summarize information in tables and give a lot of short example programs. I also jump right into things and fill in background information as I go, rather than covering the background material first.
Author: Steven Thurlow
Publisher: Wikibooks, 2013
Contents of Beginner's Python Tutorial: Installing Python; Very Simple Programs; Variables, Scripts; Loops, Conditionals; Functions; Tuples, Lists, Dictionaries; for Loop; Classes; Importing Modules; File I/O; Exception Handling.
Author: David Beazley, Brian K. Jones
Publisher: O'Reilly Media, 2013
This cookbook is for experienced Python programmers who want to focus on modern tools and idioms. You'll find complete recipes for more than a dozen topics, covering the core Python language as well as tasks common to a wide variety of applications.
Author: Al Sweigart, 2013
The book teaches complete beginners how to program in the Python programming language. The book features the source code to several ciphers and hacking programs for these ciphers. The programs include the Caesar cipher, transposition cipher, etc.
Author: Nathan Yergler
Publisher: PyCon, 2013
Effective Django development means building applications that are testable, maintainable, and scalable. After reading this book you should have an understanding of how Django's pieces fit together and how to use them to engineer web applications.

Author: Harry Percival
Publisher: O'Reilly Media, 2013
Test-Driven Development with Python focuses on web development, with some coverage of JavaScript. This book uses a concrete example -- the development of a website, from scratch -- to teach the TDD methodology and how it applies to web programming.
Author: Jan Bodnar
Publisher: ZetCode, 2013
PyQt4 is a toolkit for creating GUI applications. It is a blending of Python language and the successful Qt library. This tutorial is suited for beginners and intermediate programmers. You will learn to program non trivial PyQt4 applications.
Author: Hannes Röst, et al.
Publisher: Wikibooks, 2013
This book describes Python, an open-source general-purpose interpreted programming language, available for all Platforms. Python is a high-level, structured programming language that can be used for a wide variety of programming tasks.
Author: EuroScipy tutorial team, 2012
Teaching material on the scientific Python ecosystem, a quick introduction to central tools and techniques. The different chapters each correspond to a 1 to 2 hours course with increasing level of expertise, from beginner to expert.
Author: John C. Lusth
Publisher: The University of Alabama, 2012
Contents: Starting Out; Literals; Combining Literals; Precedence and Associativity; Variables; Assignment; Conditionals; Functions; Python Programs and Using Files; Input and Output; More about Functions; Scope; Loops; Lists; Recursion; etc.
Author: Lennart Regebro
Publisher: Colliberty 2011
Porting to Python 3 doesn't have to be daunting. This book guides you through the process of porting your Python 2 code to Python 3. Using plenty of code examples is takes you cross the hurdles and shows you the new Python features.
Author: Kevin Sheppard, 2012
Python is a widely used general purpose programming language, which happens to be well suited to Econometrics and other more general purpose data analysis tasks. These notes provide an introduction to Python for a beginning programmer.
Author: Hans Petter Langtangen
Publisher: Springer, 2009
With a primary focus on examples and applications of relevance to computational scientists, this useful book shows computational scientists how to develop tailored, flexible, and human-efficient working environments built from small scripts.
Author: W.J. Turkel, A. Crymble, A. MacEachern
Publisher: NiCHE, 2010
This book is a tutorial-style introduction to programming in Python for practicing historians (and other humanists). We assume that you're starting out with no prior programming experience and only a basic understanding of computers.
Author: Jan Erik Solem
Publisher: O'Reilly Media, 2012
The idea behind this book is to give an easily accessible entry point to hands-on computer vision with enough understanding of the underlying theory and algorithms to be a foundation for students, researchers and enthusiasts.
Author: Rahul Verma, Chetan Giridhar
Publisher: Testing Perspective, 2011
This book is about learning design patterns with Python language. If you are new to design patterns, this text provides the first building blocks. If you are interested in design of test automation frameworks, this book will be very useful.
Author: Al Sweigart, 2012
This is a programming book that covers the Pygame game library for the Python programming language. Each chapter gives you the complete source code for a new game and teaches the important programming concepts from these examples.
Author: Richard L. Halterman
Publisher: Southern Adventist University, 2011
The focus is on introducing programming techniques and developing good habits. Our approach avoids some more esoteric features of Python and concentrates on the programming basics that transfer directly to other imperative programming languages.
Author: Jeffrey Elkner, Allen B. Downey, Chris Meyers
Publisher: Green Tea Press, 2012
This book is an introduction to computer science using the Python programming language. It covers the basics of programming, including variables, functions, control flow, program debugging. Later chapters cover basic algorithms and data structures.
Author: Steven Bird, Ewan Klein, Edward Loper
Publisher: O'Reilly Media, 2009
This book offers a highly accessible introduction to natural language processing, the field that supports a variety of language technologies. With it, you'll learn how to write Python programs that work with large collections of unstructured text.
Author: Zed A. Shaw, 2011
This is a very beginner book for people who want to learn to code. If you can already code then the book will probably drive you insane. It's intended for people who have no coding chops to build up their skills before starting a more detailed book.
Author: Allen B. Downey
Publisher: Green Tea Press, 2011
Think Stats is an introduction to Probability and Statistics for Python programmers. This new book emphasizes simple techniques you can use to explore real data sets and answer interesting statistical questions. Basic skills in Python are assumed.
Author: Charles Severance
Publisher: PythonLearn, 2010
The goal of this book is to provide an Informatics-oriented introduction to programming. The primary difference between a computer science approach and the Informatics approach taken in this book is a greater focus on using Python.
Author: Jody Scott Ginther
Publisher: toonzcat.com, 2010
This book is meant to help you begin learning the basics of Python programming version 3 or later. It is a brief introduction to Python. The author attempts to be as brief as possible to get the new programmer into programming as fast as possible.
Author: Jeffrey Elkner, at al., 2010
The goal of this book is twofold: to teach you how to program in Python; and to teach you to think like a computer scientist. This way of thinking combines some of the best features of mathematics, engineering, and natural science.
Author: Mark Guzdial
Publisher: Georgia Institute of Technology, 2002
Guzdial introduces programming as a way of creating and manipulating media -- a context familiar to today's readers. Starts readers with actual programming early on. Puts programming in a relevant context (Computing for Communications).
Author: Jason R Briggs
Publisher: Lulu.com, 2007
Snake Wrangling for Kids is a printable electronic book, for children 8 years and older, who would like to learn computer programming. It covers the very basics of programming, and uses the Python 3 programming language to teach the concepts.
Author: A. Holovaty, J. Kaplan-Moss
Publisher: Apress, 2007
Django is the Python–based equivalent to the Ruby on Rails web development framework. The authors show you how they use this framework to create award–winning web sites. This is the first edition of the Django Book which covers 0.96 version.
Author: Katja Schuerer, Catherine Letondal
Publisher: Pasteur Institute, 2008
This course is designed for biologists who already have some programming knowledge in other languages. The focus is on biological examples that are used throughout the course, as well as the suggested exercises drawn from the field of biology.
Author: Dave Kuhlman, 2003
This document contains discussions of several advanced topics that are of interest to Python programmers: regular expressions, unit tests, extending and embedding Python, parsing, GUI applications, guidance on packages and modules.
Author: Dave Kuhlman, 2008
This document is a syllabus for a first course in Python programming. It contains an introduction to the Python language, instruction in the important features of the language, and practical exercises in the use of those features.
Author: Chris Meyers, 2004
This collection is a presentation of several small Python programs. They are aimed at intermediate programmers - people who have studied Python and are fairly comfortable with basic recursion and object oriented techniques.
Author: Fredrik Lundh, Matthew Ellis
Publisher: PythonWare, 2002
The Python Imaging Library adds image processing capabilities to your Python interpreter. This library provides extensive file format support, an efficient internal representation, and fairly powerful image processing capabilities.
Publisher: Python Software Foundation, 2008
This tutorial introduces the reader informally to the basic concepts of the Python language and system. It introduces many of Python's most noteworthy features, and will give you a good idea of the language's flavor and style.
Author: Richard Gruet, 2007
This reference collections cover references for python version 1.52 to version 2.7. It covers invocation options, environment variables, lexical entities, basic types and their operations, advanced types, statements, iterators, generators, descriptors, decorators, built-in functions, built-in exceptions, and more.

Author: Steven F. Lott, 2008
The book will help you build basic programming skills. It is organized in a way that builds up the language in layers from simple concepts to more advanced features. Programming exercises are provided to encourage further exploration of each layer.
Author: Guido Van Rossum
Publisher: Network Theory Ltd., 2003
The definitive language reference for Python. It describes the syntax of Python and its built-in datatypes. It covers advanced topics, and is suitable for readers who are familiar with the details and rules of the Python and its object system.
Author: Bruno R. Preiss, 2004
The primary goal of this book is to promote object-oriented design using Python and to illustrate the use of the emerging object-oriented design patterns. The book shows how these patterns are used to create good software designs.
Author: Allen Downey
Publisher: Green Tea Press, 2008
A concise introduction to software design using Python. Intended for people with no programming experience, this book starts with the most basic concepts and gradually adds new material. The goal is to teach you to think like a computer scientist.
Author: Alan Gauld
Publisher: Addison-Wesley Professional, 2000
Book for hobbyists, self-starters, and all who want to learn the art of computer programming in Python. Data types and variables, debugging, and namespaces are covered. Also includes sample applications that illustrate ideas and techniques in action.
Author: K. Schuerer, et al.
Publisher: Pasteur Institute, 2008
This text teaches programming concepts to biologists. It is aimed at people who are not professional computer scientists, but who need a better control of computers for their own research. This course is part of a course in informatics for biology.
Author: David Mertz
Publisher: Addison-Wesley Professional, 2003
A hands-on tutorial that teaches how to accomplish numerous text processing tasks using Python. Filled with examples, the book provides efficient solutions to specific text processing problems and strategies for all text processing challenges.
Author: Swaroop C H, 2008
This is a tutorial and a guide on Python programming for absolute beginners. If all you know about computers is how to save text files, then this is the book for you. The book is updated for the upcoming Python 3.0 language.
Author: Josh Cogliati
Publisher: Wikibooks, 2005
This free tutorial is designed to be an introduction to the Python programming language. The guide is for someone with no programming experience. The author attempts to teach programming by reading code and writing code.
Author: Steven F. Lott, 2008
This book is a complete presentation of the Python for professional programmers who need to learn the language. The author leads you from a tiny, easy to understand subset of statements to the entire Python language and all built-in data structures.
Author: Fredrik Lundh
Publisher: O'Reilly, 2001
A large collection of useful Python scripts, the best parts of comp.lang.python newsgroup messages, plus hundreds of new scripts. The text covers the standard library, the examples should work on most platforms and Python versions.
Author: Boudewijn Rempt
Publisher: OpenDocs, LLC, 2002
This book covers application development using the library extension PyQt, which forms the basis for GUI programming. First part explains concepts using small examples, in the second part the author develops a complete, complex application.
Author: Mark Pilgrim
Publisher: Apress, 2004
This is a book for experienced programmers, a hands-on guide to the Python language. Each chapter starts with a complete code sample, picks it apart and explains the pieces, and then puts it all back together in a summary at the end.
Author: Guido van Rossum
Publisher: Network Theory Ltd., 2006
This book is an introduction to Python, an easy to learn, powerful programming language. The tutorial explains the basics of the Python, it does not cover every single feature of the language, but introduces the most noteworthy features.