May 212015
 
Microchip GestIC MGC3130 Sabrewing Evaluation Board

GestIC Sabrewing Evaluation Board

As a follow-on to a previous post, today’s post is about the human interface portion of the Murum Lux (Wall of Light) that Josh Ian Lindsay built. In his Overview post, Josh explains how he built the e-field box by using a chipKIT Fubarino Mini and Microchip’s MGC3130 GestIC on-board the Sabrewing Development Board. (He notes that he used the Hillstar Development Kit during development, which also contains the MGC3130 GestIC device). With the Hover Arduino library as a base, which he greatly improved (see Github), he’s created a demo that showcases the usefulness of human interface!

Why not have a gander!

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Share and Enjoy

  • Facebook
  • Twitter
  • Delicious
  • LinkedIn
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS
May 202015
 
A typical stepper motor

A typical stepper motor



Stepper motors seem to be the thing these days! As a follow-on to a couple of posts regarding the use of chipKIT Pro with I/O control and Delays, we want to share Learn.Digilentinc’s chipKIT Pro with Stepper Motors project, which builds upon the knowledge learned in the two previous projects and teaches you how to apply a software-based state machine approach to control the speed, rotation direction, and operation mode of stepper motors. It requires knowledge of C or C++ programming, MPLAB X IDE, finite state machines, and the two previously mentioned projects. Go get your learn on!

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Share and Enjoy

  • Facebook
  • Twitter
  • Delicious
  • LinkedIn
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS
May 132015
 

This weekend at the Bay Area Maker Faire in San Mateo, California, the chipKIT Platform will be showcased at the Microchip booth (located in the Expo Hall in Zone 2, booth 2510, east most side of the hall).

One of the items you’ll see at the booth is the Murum Lux (or Wall of Light), which uses PIC32 32-bit microcontrollers via the chipKIT Wi-FIRE and the chipKIT Fubarino Mini to create what Josh Ian Linsday calls “Murum Lux” (Latin for “Wall of Light”). Using a Sabrewing Development Board from Microchip for gesture control, he created an e-field box, then using IPLogika’s Ethernet modules, he connected the e-field box to the RGB LED matrix panel to control the content displaying on the “wall of light.” This stuff is way too cool to reduce down to a small paragraph!

You’ll have to check out Josh’s blog post to see how he put this all together!

VN:F [1.9.22_1171]
Rating: 10.0/10 (3 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Share and Enjoy

  • Facebook
  • Twitter
  • Delicious
  • LinkedIn
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS
May 112015
 
Interrupts Made Easy

chipKIT lovers rejoice! Incorporating peripheral interrupts into your sketch has never been easier. In a previous post, we discussed how you can schedule operations to run periodically in your sketch by using the Task Manager, but for certain applications (such as audio sampling) you need more exact timing than the Task Manager can provide. In such cases, you can use hardware interrupts.

Today’s post shows how you can use the built-in ease-of-use of the chipKIT core libraries to use peripheral interrupts in your projects. Below is a sketch that demonstrates how to set up a simple timer interrupt.  It is designed to run on a chipKIT DP32, but it should work “as is” on any PIC32MX-based board. For chips running faster than 40MHz (such as the chipKIT Uno32 at 80MHz) you’ll want to tweak the TICKS_PER_SECOND value.

The result of this sketch is the output on the Serial Terminal, which will show integer values incrementing by 8000 (approximately). Why approximately? Because it uses a software delay() function, and software delay loops are not good programming practice, as they are somewhat imprecise, and considered “blocking” (meaning they prevent other stuff from happening). However, do note that the hardware timer is exact. So this little program actually compares one form of timing to the other. In this case, the software delay loop is accurate to about (2/8000 * 100) = .02%, which isn’t too bad.

For more details on how to use interrupts, please visit Majenko Technologies’ app note about Working with chipKIT Interrupts.

If you are a library developer, and you want a delve deeper into PIC32 Interrupts, please see the chipKIT PIC32 Interrupt Handling document by Keith Vogel at Digilent!

/* This value works for DP32, at 40 MHz */
#define TICKS_PER_SECOND 40000000

#define T3_ON 0x8000
#define T3_PS_1_1 0
#define T3_SOURCE_INT 0
volatile uint32_t counter = 0;

/* Define the Interrupt Service Routine (ISR) */
void __attribute__((interrupt)) myISR() {
  counter++;
  clearIntFlag(_TIMER_3_IRQ);
}

void start_timer_3(uint32_t frequency) {
  uint32_t period;  
  period = TICKS_PER_SECOND / frequency;
  T3CONCLR = T3_ON;         /* Turn the timer off */
  T3CON = T3_PS_1_1;        /* Set the prescaler  */
  TMR3 = 0;                 /* Clear the counter  */
  PR3 = period;             /* Set the period     */
  T3CONSET = T3_ON;         /* Turn the timer on  */
} /* start_timer_3 */

void setup() { 
  start_timer_3(8000);  /* 8 kHz */
  setIntVector(_TIMER_3_VECTOR, myISR);
  setIntPriority(_TIMER_3_VECTOR, 4, 0);
  clearIntFlag(_TIMER_3_IRQ);
  setIntEnable(_TIMER_3_IRQ);
  Serial.begin(9600);
} 

void loop() {
  while (counter < 160000) {
    delay(1000);
    Serial.print("Count is now: ");
    Serial.println(counter);
  }
  counter = 0;
}

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Share and Enjoy

  • Facebook
  • Twitter
  • Delicious
  • LinkedIn
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS
May 072015
 
Screen capture for 20 ms delay (using Digilent WaveForms on Microsoft Windows 7).

Screen capture for 20 ms delay (using Digilent WaveForms on Microsoft Windows 7).

As a follow on to a recent post about chipKIT Pro and I/O Control, the Learn.Digilentinc site has put together a chipKIT Pro and Delays project to teach methods for using software delays in your code. Because the microcontroller executes code so quickly, you may want to slow down the processor to meet the needs of your application. This project includes a background on timing of microcontrollers and requires knowledge of C or C++ programming, MPLAB X IDE, binary math, Boolean algebra, bit manipulation, and I/O Pin Control.

Get your Learn on! :)

VN:F [1.9.22_1171]
Rating: 10.0/10 (1 vote cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)

Share and Enjoy

  • Facebook
  • Twitter
  • Delicious
  • LinkedIn
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS
May 012015
 
chipKIT Pro MX7 Development Board

chipKIT Pro MX7 Development Board

The Learn.Digilentinc site has some useful lessons, not only for beginners, but also for more advanced users of microcontrollers. For those of you who use chipKIT Pro products like chipKIT Pro MX7, Digilent put together the chipKIT Pro and I/O Control project to teach digital input and output using MPLAB X IDE and the MPLAB XC32++ Compiler. This project does require some basics skills/knowledge, like C or C++ programming, binary math and Boolean algebra, MPLAB X IDE basics, and a fundamental knowledge of electronics.

Happy Learning! :D

VN:F [1.9.22_1171]
Rating: 10.0/10 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Share and Enjoy

  • Facebook
  • Twitter
  • Delicious
  • LinkedIn
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS
Apr 262015
 

RobotEdh’s chipKIT Robot

[RobotEdh] has spent quite some time building himself a chipKIT powered robot. Based on the Baron robot from DFRobot this monster is so packed with features it’s a wonder it doesn’t collapse under its own weight. Camera, IR sensors, encoders, touch sensors, temperature sensor, LCD screen, WiFi and X-Bee communications. So many things, in fact, that there is no way you could get it all working together on an Arduino. Indeed, he had to upgrade from an Uno32 to a MAX32 because he ran out of Flash memory the project was so big! He has even written a great Java application for controlling it all. I think this project deserves a big Thumbs Up from us at chipKIT for such an impressive bit of engineering and design!
VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)

Share and Enjoy

  • Facebook
  • Twitter
  • Delicious
  • LinkedIn
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS
Apr 242015
 
A typical description for the specs of a microcontroller

A typical description for the specs of a microcontroller

Integrated circuits (ICs), microprocessors, microcontrollers (MCUs)… These are all similar names for devices like the PIC32 device that is the main IC on your chipKIT board. Such devices have many specifications that might make your head spin if you’re new to this sort of thing. If you’ve ever found yourself intimidated when you see a spec list like the one to the left, or perhaps hopeful that someone might explain to you, in layman’s terms, what all the technical jargon about microcontrollers REALLY means, then look no further. Josh Woldstad at Digilent has put together a quick explanation of the specs of an MCU, namely the one on board the chipKIT Max32 board. Hopefully, he helps dispell some of that fear!

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Share and Enjoy

  • Facebook
  • Twitter
  • Delicious
  • LinkedIn
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS
Apr 072015
 
6502 Simulator

6502 Simulator

Want to slow down your chipKIT Pi just for fun? Simulate an 8-bit MPU with this “kewl” project that implements a 6502 instruction set simulator on a chipKIT Pi development board. The project was inspired by fond memories of the Commodore Plus/4 and C16 home computers (circa 1984). The simulation includes TEDMON (the machine code monitor) as well as the EhBASIC interpreter. Kudos to Darron M. Broad for creating this cool project!

Why not join in on the forum conversation while you’re at it?

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Share and Enjoy

  • Facebook
  • Twitter
  • Delicious
  • LinkedIn
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS