Tutorial: Introduction to Control (French only)

I google Translated the original French article, which I use for teaching. I did not proofread this:

Over the years, I have developed a taste for the programming of “physical devices”. I like to control things that interact with the outside world: a microscope stage, a laser, an acquisition board, a camera, a printer, and so on. This taste has been transformed into expertise over the years, and several students come to see me (in my group, at Bliq and in the laboratory of information) with the taste to know more. It’s not always easy to transfer that knowledge, and that’s partly because of how I acquired it.

Indeed, my first contacts with the * hardware * came in the [Commodore-64] (https://en.wikipedia.org/wiki/Commodore_64) in 1983: the purchase of the computer at [Distribution to the Consumer ] (https://en.wikipedia.org/wiki/Distribution_to_consumers) was fine, but the subsequent purchase of a printer [Star NX-1000] (http://www.computerhistory.org/collections/catalog / 102645920) had suddenly multiplied the power of our machine, which otherwise only made drawings and * beeps * without really leaving any traces or change anything in the world around me. If we sent the right orders to the printer, she moved, she wrote, she drew. One day I was forced to pull out a screwdriver because the [joystick] (https://www.s-config.com/repairing-wico-retro-gaming-joysticks/) kept crashing because that we always played at the Olympics (jumping with obstacles asked to move the joystick from left to right without stopping as quickly as possible). I wanted to play, I did not have a joystick anymore because my sister was beating it too hard, I repaired it. Later, many of my friends and I learned to use the “[Copy-21-seconds]” (http://www.c64copyprotection.com/21-second-backup/), which was a hardware modification of the floppy disk that overrode the protection by sending the information read directly to the computer instead of letting the reader process it and block it. I had wires running past my disk drive. I did not understand anything about it, except that I could copy all the games I wanted. It was just as powerful as it was mysterious. I learned the assembly language on the C-64, partly thanks to an obscure book that my mother’s computer friend at the City of Quebec lent me, I discussed different things with other guys 12 years on the * BBS * of Quebec (the ancestor of the Internet), and I spent my evenings programming anything, no matter how: it was all wrong, but it was exciting. In the end, though, it worked. I was tripping.

When I started my PhD in physics at the University of Toronto in 1995, there was a course called * Microprocessor Interfacing Techniques *, given by the very experienced and passionate Jim Drummond. The goal was to show us how to interface the outside world with our computers. A dream class: we had the lectures filled with anecdotes of Prof. Drummond, then the laboratory filled with parts, chips, breadboards, 8088 Turbo PCs (nothing less) and acquisition cards. In addition, we had the * key * of the local to come at any time of day and night. So I finally learned about TTL logic, flip-flops, synchronous and asynchronous counters, scanning, analog output, how to read chip specification sheets, etc. The many bits of information gleaned left and right over the years ended up converging in a coherent whole: I managed to understand the smallest tiny details of a logical circuit while being able to make a sufficient abstraction into functional blocks to finally build a complete system.

With the benefit of 30 years of tapping computers, circuitry, firing fuses, breaking acquisition cards, skipping detectors, fixing * stepper motors * * drivers to graduate, or spending whole evening just to make to light an LED in a basic circuit, I realize that students who come to see me have not often had the chance * to experiment *. This is partly because computers are becoming more complicated, and several layers of complexity have been added for years: the processors are running parallel operations, the famous RS-232 printer or modem port has been replaced by the * Universal Serial Bus * port, and the operating systems, the memory protection, the preemptive multitasking, the security make that today, there is rarely a “memory box” that corresponds to pins on the back of the computer (this [that the C-64 had] (https://www.c64-wiki.com/wiki/User_Port)), and the exact order of the execution of the operations n ‘ is not always known (easily controlled with sys 49152 for example on the C-64, the prediction memory box for games). Thus, experimenting as a novice becomes more and more difficult because the walk is much higher than in 1983 when I started.

So I hope, with a series of small tutorials, to make a basic introduction to Device Control. This will obviously start with extremely simple tutorials for the initiated but which should allow you to acquire the knowledge to do the Control of Devices through a methodical experiment based on experimentation.

In the next article, we will begin with the very simple construction of a tiny chip-based circuit of FTDI DLP-USB245M to get, as simply as possible, access to * digital pins * output and Entrance.