How a generic keyboard is made has been already explained in the Atmega 32u4 Based Generic USB Keyboard Project. In this project a wireless keyboard will be designed. For making a wireless keyboard, there will be two circuits involved in the project – a transmitter circuit which will have a keypad included for getting the user input and a receiver circuit that will connect with the PC through USB port.The two circuits will connect wirelessly using NRF24lO1 module. The NRF module is a Wireless Transceiver that works on 2.4 GHz ISM (Industrial Scientific Medical) band. It is manufactured by Nordic Semiconductors.The transmitter section will have Arduino Mega as the controller. The Arduino Mega is selected due to a large number of GPIO pins available with board.
Atmega 32u4 Based Virtual Serial Mouse (Part 13/25)
In one of the previous projects – Atmega 32u4 Based Composite Keyboard Mouse Project, a composite device was made. A composite device is a device that has functions of two devices on the same hardware like the composite keyboard mouse was able to operate as generic keyboard as well as generic mouse. In this project, again a composite device – Virtual Serial Mouse is designed. The device works like a mouse as well as an UART to USB converter.The making of a mouse has been already explained in the Atmega 32u4 Based USB Mouse Project. Similarly, making of an UART to USB converter has been explained in Atmega 32u4 Based UART to USB Converter Project. The 8-bit USB AVR – Atmega 32u4 is used as the controller chip in this project. The AVR based Lightweight USB Framework (LUFA) is used as the firmware which is modified and loaded to the Arduino board for making the project.
Atmega 32u4 Based UART to USB Converter (Part 12/25)
UART was a popular serial interface in the past times. Still, a lot of embedded system devices uses UART for serial communication. However nowadays, the personal computers do not have RS-232 ports but have only the USB ports for serial communication. In this project, an UART to USB converter is designed to enable connecting embedded devices having UART interface to the personal computers.The project device works like a virtual serial device. That means that the data packets from the host computer are received according to the USB protocol and data packets from the connecting embedded device are received according to UART protocol but the project device will change the protocol in-between while the PC will be acknowledged that it is connected to a USB peripheral and the connecting embedded device will be acknowledged that it is connected to a computer having UART interface.
Atmega 32u4 Based Gamepad (Part 10/25)
How generic USB keyboard and mouse are built has been already explained in the Atmega 32u4 based Generic USB Keyboard project and Atmega 32u4 Based USB Mouse project respectively. In this project, another common desktop peripheral – the joystick is designed. A joystick is commonly used for gaming on the desktop computers. This project demonstrates the basic functioning of joystick and how a USB pluggable Joystick can be made using the open source LUFA framework with the Arduino platform. The 8-bit USB AVR – Atmega 32u4 is used as the device controller chip in the project. The project uses AVR based Lightweight USB Framework (LUFA) as the firmware which will be modified to make a custom joystick device.
Atmega 32u4 Based Composite Keyboard Mouse (9/25)
How using LUFA and Arduino Pro Micro, Keyboard and mouse can be made has been already demonstrated in the Atmega 32u4 based Generic USB Keyboard project and Atmega 32u4 Based USB Mouse project respectively. In this project a composite keyboard mouse will be designed. A composite device is a device that can perform multiple functions. It means that with the same hardware, the device can work like two different devices. Like in this project, the device using the same hardware function as keyboard as well as mouse. The project utilizes 8-bit USB AVR – Atmega 32u4 as the USB controller chip and uses AVR based Lightweight USB Framework (LUFA) as the firmware which is modified to implement the project.
Atmega 32u4 Based Multimedia Keypad (Part 8/25)
Many keyboards nowadays come with multimedia control functions as well. These functions work with the default multimedia player of the operating system. Like many keyboards have multimedia functions to work with the windows media player of the windows operating system. The control functions are like playing and pausing the multimedia playback, increasing, decreasing or muting the volume, start playing the next track and stopping the playback of media file. In this project a keypad is designed to control the similar multimedia functions.
How to program nrf24LE1 using Mpro burner (Part 14/14)
In our previous article we have learned the basic information on the NRF wireless module 24LE1. The next step after knowing all the theoretical aspects is how to use the module and burn codes into it to use in projects.Just to remind in short, editor is a tool in which we write and edit our program or source code.The High level programming language we generally use for microcontrollers like 8051, AVR is Embedded C. Compiler is a tool or program which translates source code from High level Language to Low level Language like assembly code or machine code. Informally we can say that our .C(High level Language) file is converted to .hex(Low level Language). Debugger is a tool use to debug the source code.
LED Blinking using NRF24LE1 – Hello World (Part 1/14)
Do you know how a microcontroller says Hello World? Confused? Actually by saying Hello we mean blinking an LED. This is the first step that almost every learner does after purchasing a microcontroller. Sometimes, this is also done in order to check the working condition. The NRF24LE1 comes in 24-pin, 32-pin and 48-pin package. We will be using 32-pin package. This package contains 15 I/0(input/output) pins. These 15 pins are also used for UART, I2C, PWM, and ADC. The remaining 17 pins are already used for antenna, crystal oscillator, VCC, ground and programming.
Introduction to LUFA
Universal Serial Bus (USB) is now a common and vast framework for serial communication. The interface not only allows serial communication, it also works as electronic power supply. The popular AVR microcontrollers fortunately have the USB interface feature and can be programmed to build USB devices. The USB specification is long and intimidating. It can be a daunting task to write a device specific USB driver.
Signal and Encoding of USB System (Part 5/6)
In this series, USB requests and descriptors have been already discussed. With the knowledge of USB requests, descriptors, transfer types and transactions it is now easy to understand how data is communicated over USB interface. Another aspect of the USB communication is line states and encoding, which is generally ignored by the system designers as a USB device can be designed without knowing the Signaling and Encoding schemes. The signaling and encoding schemes are implemented at the lower levels (usually on the controller IC) and usually gets abstracted during system designing. However, understanding the terms related to bus states and encoding would help in getting comprehensive view of the USB System.
USB Protocol: Types of USB Packets and USB Transfers (Part 2/6)
After discussing the features and architecture of USB, let’s move on to its protocol. A USB interface has several layers of protocol. Most of the time the lower level layers are single handled by host controller IC while the end designer needs to work on higher level layers. Every communication protocol involves the exchange of packets. Same is the case with USB. These packets encapsulate information in a standard-defined organized manner. These packets generally contain information related to- Controlling the data exchange, Data exchange in the form of actual payload, and Error detection and correction through the status check up. In USB the LSB of the packet is transmitted first. A USB packet contains different fields.
Hello World with NRF24LE1 (Part 1/13)
Do you know how a microcontroller says Hello World? Confused? Actually by saying Hello we mean blinking an LED. This is the first step that almost every learner does after purchasing a microcontroller. Sometimes, this is also done in order to check the working conditionSo let’s do it with NRF24LE1 module. First we will discuss some specs about this module