In order to learn about embedding sensors and actuators, we're going to need some sort of development kit. There are dozens of them out there, and lots of them are very good. Each has certain capabilities and for this specialization, we've chosen the Cypress PSoC. There's good reason for that because the Cyprus PSoC is a true mixed signal development kit. That means you can have analog inputs, and you can process the analog inputs using analog components. Like op amps and comparators, and sample and hold. In addition to having digital components, such as timers and counters all inside the same chip. There are plenty of microcontrollers out there that have analog inputs, and have A to D converters. What's different about the Cypress chip, and this is an important point, is that you get to arbitrarily wire up the components in any circuit topology you want. You're not stuck with what you got from the manufacturer. That makes it particularly useful and flexible for teaching. What I like particularly about this development kit is that the Cypress software allows you to work on both the schematic. And the code that interacts with all the components on the schematic and in the chip all in one design environment. It's all very tightly coupled, I think it's pretty well written, and I think you can learn how to use it in about 15 minutes. Of course Cypress Corporation has a pretty comprehensive set of training videos online where you can learn everything there is to know about this chip. But for this specialization, I want to concentrate on embedding sensors and actuators, so we'll just cover a subset of that. Anything that I say here you can certainly go to the Cypress website and find more information about it. So why am I bothering to teach you about PSoC when you can find out everything you need to know on the Cypress website? Really it's a matter of emphasis. Cypress's goal is of course, to teach you everything there is to know about the chip, whereas my goal is just to teach you enough for this course. When you first start PSoC Creator, you'll get a window that looks something like this. There are several major sections in this window that we need to talk about. Of course, there's the usual menus at the top and a few hot keys. Over here on the left is an area that we call Workspace Explorer. And once we start a project, all the files that are related to that project, and there will be many separate files, they'll show up over here. To begin, after bringing up this window, we just go to File, click on New > Project. And the first question it asks is what type of device you have. And here because I've used this before, I've already made sure that it points to PSoC 5LP, which is the family of device we have. Followed by the particular part number, and if you look closely on your development kit you'll see this exact number. This is the exact model number of the chip that we will be using. So you have to make sure that both those boxes are correctly filled out before you continue. This software works with many different types of Cypress chips. And we have to make sure that the code that's produced is compatible with the chip that we have. So we have the CY8C5888LTI-LP097, that refers to the chip, not the development kit itself. The development kit is the chip on the board with some other circuitry. Once you're satisfied that you've correctly picked the target, don't worry about Library project or Workspace. We'll just hit Next, and click on Empty schematic, going to click here. And go to Next again, and now we come to arbitrary names for Workspace, or Project. And you can leave those alone, or you can put in any name you want. So for now I'll just leave it as Workspace03, and Project is Design01. The Project file really contains all the files that are necessary to build your design. And the Workspace is a much smaller file that just points to different Projects. The idea being that you can have several Projects grouped in a Workspace if they're somehow related. Next step is to click Finish and wait a second, and now you get this very interesting screen. Like many Windows based development environments, this screen can be rearranged. But let's assume for a minute that you leave it in the original configuration. There are five main sections that we need to talk about. We've already mentioned here on the left side, we have the Workspace Explorer. And if you look carefully at that, you'll see the name of the Workspace that you selected previously, and underneath that a particular design. Notice that Design01 is in bold which indicates that your active design, you could have more than one here. And beneath that are a bunch of files and line items such as Pins, Analog, Clocks, Interrupts. We're only going to need to deal with a couple of those. That's why I can teach you this in 15 minutes rather than the many hours it would take to cover everything. Very importantly in the Workspace Explorer, right down there at the bottom under source files, you'll see main.c. That's an example of automatically generated code. If we click on that, it will take you to an outline for the base file of any c project which is called main.c. And that simply contains a few comments and a couple of lines of code that you would want to include with any project. Most importantly being project.h which defines all the details of the chip that you are dealing with. Going back to the overall PSoC Creator screen, right there in center we see a blank schematic. This is where you'll build circuitry that interacts with the code that you write which is just a click away. At the top of the schematic area are a list of tabs and that's your most recently used tab list. Every time you click on something PSoC Creator will remember that you clicked on it. And it'll put a tab up there so that you can get back to it quickly. Below the Workspace Explorer section in the default view is the output window. The output window shows you a bunch of cryptic messages as your project is compiled or built. But the last message is usually pretty clear, it will be obvious whether or not the build worked or didn't work. For instance, in this example it clearly says Build Succeeded. Moving to the right side of the screen in the default view is the Component Catalog. This is a list of all the different parts that actually exist inside the PSoC Creator chip that you can arbitrarily wire up in any pattern you see fit. And it's quite a list, let's take a look. I'll expand the Analog tab by clicking on that little plus sign. And we immediately see that there's a category for Analog to Digital Converters, Amplifiers, Multiplexers, Comparators, DACs Mixes and Sample and Hold, all sorts of different things. If I further expand the ADC you'll see that there are three different types of ADCs that you can have inside this chip. Let me see if I can make that a little bit bigger to show it better. Scrolling down further, under the Digital tab. We see functions like Counters, and PWM generators, timers and so on common digital functions. Under Logic, it can be as simple as an And gate, or a D Flip Flop. Or even just a source for a Logic High or a Logic Low. All of these components exist inside the PSoC chip, and you get to wire them up as you see fit, it's very flexible. By now you're probably wondering, how does one make the physical connection to a pin on the chip from something that's on the schematic. That's actually quite easy to do, and I'll show you in just a few seconds here how it's done. Let's start by taking a Digital Output Pin and putting it on the board. This name here is completely arbitrary, it does not imply that this pin is actually connected to Pin 1 on the chip. That I find a little confusing, so I immediately like to reconfigure this and change the name to something like P0_3. Because I intend to connect this pin to Port 0 bit 3. It's not connected to that yet, I've just changed the name. To make the connection, it's quite easy. Just go over here to the Pins tab, and double click on that. And you get this Pin Assignment Window here on the right, and notice that's the name that I chose. And that's a great reminder, because if I use this pull down menu here, I see P0_3 as one of my options. And now I can clearly see the correspondence between the name that I chose and the port number that it's actually assigned to. That's really all you have to do to assign a pin to a physical location on the chip. It's this Pins tab on the left side.