Last week I found a TI-Innovator™ Bundle for sale and figured I'd pick it up to play with it. I wanted to post my thoughts on this device as a programmer, and as a TI calculator enthusiast. If you're not familiar with the TI-Innovator, it's a box containing a TI MSP432 Launchpad development board, loaded with a custom firmware, that you can connect to your calculator. The upshot is that it's an educator-friendly way to teach students about coding and electronics, something of a more formal version of our popular ArTICL library to explore electronics projects with Arduinos and TI calculators. It consists of the TI-Innovator hub itself, connected to your TI-84 Plus CE or TI-Nspire CX calculator, and can be expanded with two accessory kits from TI. The I/O Module Pack contains a servo, vibration motor, light sensor, and white LED for TI's "Science Through Engineering Design" activities, while the Breadboard Pack contains discrete electronic components and a breadboard for the Path to STEM Projects activities.
I will say, right out of the box, it's a very nice looking device. It's fairly a fairly straight-forward process to get started with. I updated the software on my CE, installed the app, plugged it in, and wrote a quick blinking program:
Code:
And, viola, a blinking light!
I will say, right out of the box, this is a joy to program. One of the things I love about programming calcs is the ease of getting in to it. There's a simple menu interface so you don't need to remember every keyword, and it's easy to just explore and make something happen. This holds true for the Innovator Hub, as well. I knew right away that this would be a great way to get kids to play with electronics and learn how to program.
After the blinking light, I wanted to do something a little more complex. I had a lot of things I could play with with the bundle, but wanted to keep it just using the Hub for now. So, the next thing I figured I'd do was make some sound. This is where I ran into my first error, and boy does the hub let you know something went wrong:
The problem was I was doing:
Send("SET SOUND F
To try to send a sound of frequency F. This doesn't work--it doesn't know about the variables on the calculator. This was fixed with:
Send("SET SOUND eval(F
And I had a chromatic scale playing:
Code:
Again, I found this great fun. I noticed when playing the music, that the RBG LED was blinking, and then made a little program to cycle between the lights. At first I thought there would be many colors, but I think that each can only be on or off. This is where I learned that you can use 0 for off and 1 for on. This makes programming a little easier when you're doing on and off programmatically. I don't have a video of that, because it's not terribly exciting.
Note: I have since learned from this page that you can do more with the on-board RGB LED. The lesson here: Always read docs.
However, this made me want to play with the RGB LED that comes with the breadboard kit. This reminded me why I didn't pursue electronics any further in my studies: I dislike dealing with and hooking up all these components. I got it all hooked up, but will admit that I couldn't figure out how to program it. It would be nice if the instructions booklet had more details on how to do things. That said, I decided instead to make a counter using the seven segment display.
The display that comes with the bundle is an LTS-4301JR. I looked up the datasheet to hook it up, and again couldn't figure out the code. That's when I found this page which has lots of useful information for hooking up these kits, and I got it working.
At this point I had had enough with electronics components and breadboards, so I figured I'd play with some of the other kits that came in the bundle. The range finder seemed like it would be fun, so I made a little program that translated range to frequency, and made a little fake Theremin:
Overall, I have to say I'm quite impressed with this. Out of the box, with just the hub, you can do some pretty fun things. I wish the Hub itself had some built-in inputs--maybe the buttons on the board can be read from the calc if you take off the cover. I'd like to experiment more with the built-in stuff. There are some buttons and some jumpers.
Having simple inputs and outputs is really nice for getting people up and running with some fund things right away, and having the more complicated breadboard stuff makes it so you can basically do anything with the calculator driving. I think this is a great way to get kids into programming, and I look forward to seeing what teachers and TI do with it in the future! If you have any questions about using the TI-Innovator or want us to try some experiments with ours, please don't hesitate to ask.
I will say, right out of the box, it's a very nice looking device. It's fairly a fairly straight-forward process to get started with. I updated the software on my CE, installed the app, plugged it in, and wrote a quick blinking program:
Code:
For(A,1,10
Send("SET LIGHT ON
Wait 1
Send("SET LIGHT OFF
Wait 1
End
And, viola, a blinking light!
I will say, right out of the box, this is a joy to program. One of the things I love about programming calcs is the ease of getting in to it. There's a simple menu interface so you don't need to remember every keyword, and it's easy to just explore and make something happen. This holds true for the Innovator Hub, as well. I knew right away that this would be a great way to get kids to play with electronics and learn how to program.
After the blinking light, I wanted to do something a little more complex. I had a lot of things I could play with with the bundle, but wanted to keep it just using the Hub for now. So, the next thing I figured I'd do was make some sound. This is where I ran into my first error, and boy does the hub let you know something went wrong:
The problem was I was doing:
Send("SET SOUND F
To try to send a sound of frequency F. This doesn't work--it doesn't know about the variables on the calculator. This was fixed with:
Send("SET SOUND eval(F
And I had a chromatic scale playing:
Code:
440->F
For(A,1,12
Send("SET SOUND eval(F
F*12root2->F
End
Again, I found this great fun. I noticed when playing the music, that the RBG LED was blinking, and then made a little program to cycle between the lights. At first I thought there would be many colors, but I think that each can only be on or off. This is where I learned that you can use 0 for off and 1 for on. This makes programming a little easier when you're doing on and off programmatically. I don't have a video of that, because it's not terribly exciting.
Note: I have since learned from this page that you can do more with the on-board RGB LED. The lesson here: Always read docs.
However, this made me want to play with the RGB LED that comes with the breadboard kit. This reminded me why I didn't pursue electronics any further in my studies: I dislike dealing with and hooking up all these components. I got it all hooked up, but will admit that I couldn't figure out how to program it. It would be nice if the instructions booklet had more details on how to do things. That said, I decided instead to make a counter using the seven segment display.
The display that comes with the bundle is an LTS-4301JR. I looked up the datasheet to hook it up, and again couldn't figure out the code. That's when I found this page which has lots of useful information for hooking up these kits, and I got it working.
At this point I had had enough with electronics components and breadboards, so I figured I'd play with some of the other kits that came in the bundle. The range finder seemed like it would be fun, so I made a little program that translated range to frequency, and made a little fake Theremin:
Overall, I have to say I'm quite impressed with this. Out of the box, with just the hub, you can do some pretty fun things. I wish the Hub itself had some built-in inputs--maybe the buttons on the board can be read from the calc if you take off the cover. I'd like to experiment more with the built-in stuff. There are some buttons and some jumpers.
Having simple inputs and outputs is really nice for getting people up and running with some fund things right away, and having the more complicated breadboard stuff makes it so you can basically do anything with the calculator driving. I think this is a great way to get kids into programming, and I look forward to seeing what teachers and TI do with it in the future! If you have any questions about using the TI-Innovator or want us to try some experiments with ours, please don't hesitate to ask.