Archive for Education

Luminary Micro Lm3S811 ARM Cortex Microcontroller

I think I have finally settled down on the embedded system that will be used for the robotics course. At the sensor processing/integration level, the PSOC CY8C29466, either with the evaluation board that Cypress sells, or my own custom board. At the machine learning/interface to MS Robotics Studio level, the Luminary Micro LM3S811 ARM Cortex M-3 Microcontroller, with their evaluation board.

I am still debating whether to move to C compiler for the PSOC (up to now I have been teaching the M8C assembly language). With the addition of the LM3S811, with its own set of (free) C compiler tools, I am tempted to standardize on C for both microcontrollers. On the other hand, teaching assembly language is worthwhile I believe, for future roboticists.

 My first step is to get the two microcontrollers talking to teach other, most likely using I2C. Will post more once that is accomplished.

Comments off

Course revamp startup — Windows 2003, IIS, ASP

This year I am revamping both Web development and robotics courses to use Microsoft technologies: ASP.Net 3.5, IronPython/Dynamic Language Runtime, Robotics Studio.

 As a first step I am trying to port over the course website, or at least some sample code, to IIS. Apache has its headaches with long config files, but the IIS setup is even more confusing, since not everything is accessible in one file.

  1.  The first stumbling block was I couldnt get a simple Default.aspx file recognized by IIS to serve when I went to http://localhost.
    • Solution: register ASP.Net 2.0 (3.5) with IIS
    • In the c:\Windows\Microsoft.NET\framework\v2.0.50727 directory run the command aspnet_regiis -i
  2. Note that ASP.Net 3.5 is really ASP.Net 2.0 with some extensions.

  3. Second step was to add SSL (Secure Socket Layer) support, ie allow https:// access. This was surprisingly easy from the IIS perspective! The only hard part was to generate the Certificate Authority and Server certificates.
    • solution: Look at this page
    • Be sure to open up the firewall with port 443!
    • Install the server certificate in the IIS manager
    • To remove the annoying warnings on the client browser, install the certificate authority certificate on the client machine.
  4. NFS mounting. The students will be given accounts on the unix (really linux) systems with their own directories. We want to allow students to log onto the Windows 2003 server (cygwin sshd) using their unix username/password (ActiveDirectory/LDAP, to be discussed below) and mount their NFS directories. This will aid in “uploading” web site code to the server.
    • This site has very good information on setting up Windows Services for Unix (SFU) for Windows Server 2003

Comments off

Robotics Makeover

This year I am revamping both web development and robotics courses I teach during the summer.

  • Web Development
    • Up until now I have been using Plone/Zope/Python for both the course website and teaching web development. Lately though I have been examining Visual Web Developer, ASP.Net, and C#. While I think Plone/Zope has its advantages, clearly ASP.Net is more popular, and its feature set (especially with 3.5) is getting to be pretty comprehensive. What has finally convinced me to migrate is the fact that ASP.Net pages can now be written in IronPython, the .Net implementation of CPython.
    • IIS seems to have its issues, however, so I am looking into reverse proxies that will hide IIS and Plone/Zope behind it.
  • Robotics
    • I have been using Parallax BASIC Stamps, Sumobots, and Cypress Semiconductor PSOCs. While the Sumobot is a very nice hobby robot, the computational power of the BASIC Stamp that is at its core leaves a lot to be desired.
    • Microsoft has the Robotics Studio, a .Net platform for robotics work. It has gained sufficient support that I think it is a viable platform on which to teach my course. It requires an interface on the robot that is too much for the Sumobot (although there is sample code for the BOEBot, which is similar). I have been looking at the ARM series of microcontrollers for some time now, and have decided to have a hybrid solution, where a PSOC handles all the low-level sensor/motor interfaces, and the new ARM Cortex M3 handles the AI/machine learning as well as the interface to the Robotics Studio.
    • I purchased the Olimex STM32-P103 prototyping board, based on the ST STM32F103RBT6 Cortex 32-bit microcontroller. It has the following features, from the Olimex website.
    • ARM 32 bit CORTEX M3â„¢ with 128K Bytes Program Flash, 20K Bytes RAM, USB, CAN, x2 I2C, x2 ADC 12 bit, x3 UART, x2 SPI, x3 TIMERS, up to 72Mhz operation.
    • I think I have gotten spoiled by the rich set of peripherals available on the PSOC, because while the set of peripherals the Cortex has is reasonable, by itself it will not be able to manage all the sensors and hardware of a robot.
    • I am thinking of using a new chassis for the robots, I need to do a full engineering preliminary design before I can commit to that course of action.

After much reading and searching I have finally managed to burn, run and debug a sample LED blinking program on the STM32-P103. The beauty of open source development tools is obviously the cost and the frequent updates, but the disadvantage is the lack of good documentation or manual. I have been able to piece together bits and pieces through a lot of trial and error, and will be posting everything I have learned so far soon, with sample code.

Comments off

UN Data Mining

The UN has made data it collects from its member nations available here. Very interesting, and I am looking forward to mining some of the data to prepare for the web course this summer, as well as try my hand at some economic analyses.

Comments off

Internet Explorer CSS Box Bug

It is no secret that IE has some bugs in rendering CSS styles, most notably with respect to the box model. This wikipedia entry has a good summary of one of the bugs, which is really a misinterpretation of the CSS standard. It doesn’t help that for some web developers, Microsoft’s interpretation makes more sense than the “correct” standard!

Comments off