We are pleased to announce the winners of the chipKIT Platform Design Contest.
Level 1 Challenge
ck761 ROV Controller http://www.youtube.com/watch?v=_24bMhLS7Wo&list=PLXPjvBuqmMX5DkKE8Ni0FNN7o-nwPIYUU
Develop an original application using a chipKIT platform, an existing, known-working shield, and existing, known-working libraries. Participants will have the choice of using a chipKIT Max32, Uno32 or uC32 platform.
Level 2 Challenge
ck758 OLED Screen Controller Demo http://www.youtube.com/watch?v=4x3swzNr14Y&list=PLXPjvBuqmMX6KYPXqucRqc8uklqbSP8iZ
Develop an original application using a chipKIT platform and an existing shield where associated libraries are modified to exploit specific features of the chipKIT platform’s PIC32 device and associated peripherals. Participants will have the choice of using a chipKIT Max32, Uno32 or uC32 platform.
Level 3 Challenge
ck765 KEELOQ Shield http://www.youtube.com/watch?v=NVPb-qaEu8k&list=PLXPjvBuqmMX6dKnPE-AY-IAW4HqxAhIfn
Develop an original shield that will highlight the additional functionality of the PIC32 devices populating the chipKIT platform. Participants will have the choice of using a chipKIT Max32, Uno32 or uC32 platform.
How Winners Were Determined
Winning entries were determined through the use of a survey grading each application on:
Congratulations to all who participated. You all did an amazing job!!
Please visit the contest YouTube channel to view all entries at www.youtube.com/chipkitcontest
- Overall impression of application
- Use of unique peripherals found on the target MCU
- If developer modified or created a new library
- Documentation on hardware, libraries and tutorials
In this project you will learn to use a basic functionality of chipKIT board, which is to use serial communication I2C bus to measure the room temperature and output the corresponding digital reading for it. I2C bus is a master slave bus, which communicates data from the processor on chipKIT board to other peripherals. More description on I2C communication can be found on the Wikipedia website
The hardware used in this tutorial will be a chipKIT Uno32 along with a chipKIT Basic I/O Shield both manufactured by Digilent Inc.
The reference guide for each board, schematics and other resources are available on their individual homepages:
- Go to the chipKIT Basic I/O Shield homepage mentioned in the reference section. Download the zip file that contains libraries and documentation for using the Basic I/O Shield™ with the chipKIT MPIDE. Open the downloaded zip folder and copy the three IOShield folders in it. These three folders have the libraries and example programs for EEPROM, OLED and Temperature Sensor peripherals on IO shield.
- Now open the drive where you installed the mpide software, inside your mpide folder navigate through hardware > pic32 > libraries and paste the three IOShield folders in it.
- Close your mpide software, for the libraries to get included and the changes to take effect.
- On restarting the mpide software and navigating through File > Examples; you can find IOShieldEEPROM, IOShieldOled and IOShieldTemp folders with their demo examples being included.
- As an initial test, you can run the existing example code for temperature sensor peripheral of the IO Shield. To do this navigate through and open File > Examples > IOShieldOled > IOShield_Oled_Demo.
- Once the new sketch is opened, click the Verify button and this will compile successfully unless the library file is not included properly.
- Make sure you connect the Uno32 board via the mini-B connector on board to an available port on your computer.
- Place the IO shield on top of the Uno32 board with a bit of a firm press.
- Once connected, in your MPIDE window, select Tools>Board>chipKIT UNO32 to identify the UNO32 Board as the target
- Next, select Tools>Serial Port>COMxx. This will depend on which port was assigned to the chipKIT UNO32 Board when first connected.
- To load your sketch onto the chipKIT UNO32 board’s Microcontroller, press the Upload button. This will compile your sketch (check for errors) and then send to the Microcontroller. Unless you type your own code in the sketch, you wouldn’t need to verify them before uploading.
- Once the code is done uploading, open the serial monitor from the toolbar and after a few seconds of delay the temperature will be displayed in Celsius and Fahrenheit as shown below,
- As a next step, the Organic LED present in the IO shield can be used to display the temperature.
- Make sure that the jumper settings for JP4 on chipKIT Uno32 board is configured as SPI Slave Select input mode. You can find the jumper settings in chipKIT Uno32 board reference manual from the Digilent website. Also, ensure that the jumpers JP6/JP8 are configured to be used as I2C communication lines.
- To make the temperature be displayed on OLED, create a new sketch, save it by giving a name and insert the code below in the sketch space.
int tensc = 0;
int onesc = 0;
int dot_tensc = 0;
int dot_onesc = 0;
int tensf = 0;
int onesf = 0;
int dot_tensf = 0;
int dot_onesf = 0;
IOShieldTemp.config(IOSHIELDTEMP_ONESHOT | IOSHIELDTEMP_RES12);
float tempf, tempc;
//Get Temperature in Celsius.
tempc = IOShieldTemp.getTemp();
// Convert the result to Fahrenheit.
tempf = IOShieldTemp.convCtoF(tempc);
//parse data for temperature in celcius
dot_onesc = tempC%10;
tempC = tempC/10;
dot_tensc = tempC%10;
tempC = tempC/10;
onesc = tempC%10;
tempC = tempC/10;
tensc = tempC%10;
//convert data to ASCII for temperature in celcius
tensc = tensc+48;
onesc = onesc+48;
dot_tensc = dot_tensc+48;
dot_onesc = dot_onesc+48;
//parse data for temperature in Fahrenheit
dot_onesf = tempF%10;
tempF = tempF/10;
dot_tensf = tempF%10;
tempF = tempF/10;
onesf = tempF%10;
tempF = tempF/10;
tensf = tempF%10;
//convert data to ASCII for temperature in Fahrenheit
tensf = tensf+48;
onesf = onesf+48;
dot_tensf = dot_tensf+48;
dot_onesf = dot_onesf+48;
//Clear the virtual buffer
//Draw a rectangle over wrting then slide the rectagle
//down slowly displaying all writing
IOShieldOled.putString(" Degrees C");
IOShieldOled.putString(" Degrees F");
- In this code, the floating point values of temperature in celcius and fahrenheit are received, separated into digits by parsing the value and each digit is expressed in ASCII, aligning the position on OLED screen.
- To get more details on each function used with respect to OLED, open the IOShieldOLED folder which you downloaded from Digilent website and refer IOShield Library – Oeld.pdf. The same apply for functions for TEMP sensor too.
- To get the display, verify the code and upload it to the board. Once uploaded, you can see the temperature value displayed on OLED.
Here you can find:
To see information specific to chipKIT users: Click Here
- Detailed ideas for embedded applications on chipKIT boards, both simple and complicated.
- Post your projects here – boast about your innovations and unleash the techie in you.
- Hot upcoming challenges and awards.
To see information specific to chipKIT developers
: Click Here
Featured Contest: chipKIT Design Challenge
Calling all North American academics and hackerspaces! Show Us Your chipKIT Embedded Platform Projects. Win up to $5,500 in development tools for your lab. The chipKIT team strives to create an embedded controller platform that facilitates the interests of budding engineers and hobbyists. If you are among the ones who would like to showcase your talents and be recognized, you are in the right place. Register now.