]> pere.pagekite.me Git - homepage.git/blob - blog/tags/robot/index.html
c26295cb0ebf1d690a56371b7e0104348487f477
[homepage.git] / blog / tags / robot / index.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr">
4 <head>
5 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
6 <title>Petter Reinholdtsen: Entries Tagged robot</title>
7 <link rel="stylesheet" type="text/css" media="screen" href="https://people.skolelinux.org/pere/blog/style.css" />
8 <link rel="stylesheet" type="text/css" media="screen" href="https://people.skolelinux.org/pere/blog/vim.css" />
9 <link rel="alternate" title="RSS Feed" href="robot.rss" type="application/rss+xml" />
10 </head>
11 <body>
12 <div class="title">
13 <h1>
14 <a href="https://people.skolelinux.org/pere/blog/">Petter Reinholdtsen</a>
15
16 </h1>
17
18 </div>
19
20
21 <h3>Entries tagged "robot".</h3>
22
23 <div class="entry">
24 <div class="title">
25 <a href="https://people.skolelinux.org/pere/blog/Automatic_LinuxCNC_servo_PID_tuning_.html">Automatic LinuxCNC servo PID tuning?</a>
26 </div>
27 <div class="date">
28 16th July 2022
29 </div>
30 <div class="body">
31 <p>While working on a CNC with servo motors controlled by the
32 <a href="https://en.wikipedia.org/wiki/LinuxCNC">LinuxCNC</a>
33 <a href="https://en.wikipedia.org/wiki/PID_controller">PID
34 controller</a>, I recently had to learn how to tune the collection of values
35 that control such mathematical machinery that a PID controller is. It
36 proved to be a lot harder than I hoped, and I still have not succeeded
37 in getting the Z PID controller to successfully defy gravity, nor X
38 and Y to move accurately and reliably. But while climbing up this
39 rather steep learning curve, I discovered that some motor control
40 systems are able to tune their PID controllers. I got the impression
41 from the documentation that LinuxCNC were not. This proved to be not
42 true</p>
43
44 <p>The LinuxCNC
45 <a href="http://linuxcnc.org/docs/html/man/man9/pid.9.html">pid
46 component</a> is the recommended PID controller to use. It uses eight
47 constants <tt>Pgain</tt>, <tt>Igain</tt>, <tt>Dgain</tt>,
48 <tt>bias</tt>, <tt>FF0</tt>, <tt>FF1</tt>, <tt>FF2</tt> and
49 <tt>FF3</tt> to calculate the output value based on current and wanted
50 state, and all of these need to have a sensible value for the
51 controller to behave properly. Note, there are even more values
52 involved, theser are just the most important ones. In my case I need
53 the X, Y and Z axes to follow the requested path with little error.
54 This has proved quite a challenge for someone who have never tuned a
55 PID controller before, but there is at least some help to be found.
56
57 <p>I discovered that included in LinuxCNC was this old PID component
58 at_pid claiming to have auto tuning capabilities. Sadly it had been
59 neglected since 2011, and could not be used as a plug in replacement
60 for the default pid component. One would have to rewriting the
61 LinuxCNC HAL setup to test at_pid. This was rather sad, when I wanted
62 to quickly test auto tuning to see if it did a better job than me at
63 figuring out good P, I and D values to use.</p>
64
65 <p>I decided to have a look if the situation could be improved. This
66 involved trying to understand the code and history of the pid and
67 at_pid components. Apparently they had a common ancestor, as code
68 structure, comments and variable names were quite close to each other.
69 Sadly this was not reflected in the git history, making it hard to
70 figure out what really happened. My guess is that the author of
71 <a href="https://github.com/LinuxCNC/linuxcnc/blob/master/src/hal/components/at_pid.c">at_pid.c</a>
72 took a version of
73 <a href="https://github.com/LinuxCNC/linuxcnc/blob/master/src/hal/components/pid.c">pid.c</a>,
74 rewrote it to follow the structure he wished pid.c to have, then added
75 support for auto tuning and finally got it included into the LinuxCNC
76 repository. The restructuring and lack of early history made it
77 harder to figure out which part of the code were relevant to the auto
78 tuning, and which part of the code needed to be updated to work the
79 same way as the current pid.c implementation. I started by trying to
80 isolate relevant changes in pid.c, and applying them to at_pid.c. My
81 aim was to make sure the at_pid component could replace the pid
82 component with a simple change in the HAL setup loadrt line, without
83 having to "rewire" the rest of the HAL configuration. After a few
84 hours following this approach, I had learned quite a lot about the
85 code structure of both components, while concluding I was heading down
86 the wrong rabbit hole, and should get back to the surface and find a
87 different path.</p>
88
89 <p>For the second attempt, I decided to throw away all the PID control
90 related part of the original at_pid.c, and instead isolate and lift
91 the auto tuning part of the code and inject it into a copy of pid.c.
92 This ensured compatibility with the current pid component, while
93 adding auto tuning as a run time option. To make it easier to identify
94 the relevant parts in the future, I wrapped all the auto tuning code
95 with '#ifdef AUTO_TUNER'. The end result behave just like the current
96 pid component by default, as that part of the code is identical. The
97 <a href="https://github.com/LinuxCNC/linuxcnc/pull/1820">end result
98 entered the LinuxCNC master branch</a> a few days ago.</p>
99
100 <p>To enable auto tuning, one need to set a few HAL pins in the PID
101 component. The most important ones are <tt>tune-effort</tt>,
102 <tt>tune-mode</tt> and <tt>tune-start</tt>. But lets take a step
103 back, and see what the auto tuning code will do. I do not know the
104 mathematical foundation of the at_pid algorithm, but from observation
105 I can tell that the algorithm will, when enabled, produce a square
106 wave pattern centered around the <tt>bias</tt> value on the output pin
107 of the PID controller. This can be seen using the HAL Scope provided
108 by LinuxCNC. In my case, this is translated into voltage (+-10V) sent
109 to the motor controller, which in turn is translated into motor speed.
110 So at_pid will ask the motor to move the axis back and forth. The
111 number of cycles in the pattern is controlled by the
112 <tt>tune-cycles</tt> pin, and the extremes of the wave pattern is
113 controlled by the <tt>tune-effort</tt> pin. Of course, trying to
114 change the direction of a physical object instantly (as in going
115 directly from a positive voltage to the equivalent negative voltage)
116 do not change velocity instantly, and it take some time for the object
117 to slow down and move in the opposite direction. This result in a
118 more smooth movement wave form, as the axis in question were vibrating
119 back and forth. When the axis reached the target speed in the
120 opposing direction, the auto tuner change direction again. After
121 several of these changes, the average time delay between the 'peaks'
122 and 'valleys' of this movement graph is then used to calculate
123 proposed values for Pgain, Igain and Dgain, and insert them into the
124 HAL model to use by the pid controller. The auto tuned settings are
125 not great, but htye work a lot better than the values I had been able
126 to cook up on my own, at least for the horizontal X and Y axis. But I
127 had to use very small <tt>tune-effort<tt> values, as my motor
128 controllers error out if the voltage change too quickly. I've been
129 less lucky with the Z axis, which is moving a heavy object up and
130 down, and seem to confuse the algorithm. The Z axis movement became a
131 lot better when I introduced a <tt>bias</tt> value to counter the
132 gravitational drag, but I will have to work a lot more on the Z axis
133 PID values.</p>
134
135 <p>Armed with this knowledge, it is time to look at how to do the
136 tuning. Lets say the HAL configuration in question load the PID
137 component for X, Y and Z like this:</p>
138
139 <blockquote><pre>
140 loadrt pid names=pid.x,pid.y,pid.z
141 </pre></blockquote>
142
143 <p>Armed with the new and improved at_pid component, the new line will
144 look like this:</p>
145
146 <blockquote><pre>
147 loadrt at_pid names=pid.x,pid.y,pid.z
148 </pre></blockquote>
149
150 <p>The rest of the HAL setup can stay the same. This work because the
151 components are referenced by name. If the component had used count=3
152 instead, all use of pid.# had to be changed to at_pid.#.</p>
153
154 <p>To start tuning the X axis, move the axis to the middle of its
155 range, to make sure it do not hit anything when it start moving back
156 and forth. Next, set the <tt>tune-effort</tt> to a low number in the
157 output range. I used 0.1 as my initial value. Next, assign 1 to the
158 <tt>tune-mode</tt> value. Note, this will disable the pid controlling
159 part and feed 0 to the output pin, which in my case initially caused a
160 lot of drift. In my case it proved to be a good idea with X and Y to
161 tune the motor driver to make sure 0 voltage stopped the motor
162 rotation. On the other hand, for the Z axis this proved to be a bad
163 idea, so it will depend on your setup. It might help to set the
164 <tt>bias</tt> value to a output value that reduce or eliminate the
165 axis drift. Finally, after setting <tt>tune-mode</tt>, set
166 <tt>tune-start</tt> to 1 to activate the auto tuning. If all go well,
167 your axis will vibrate for a few seconds and when it is done, new
168 values for Pgain, Igain and Dgain will be active. To test them,
169 change <tt>tune-mode</tt> back to 0. Note that this might cause the
170 machine to suddenly jerk as it bring the axis back to its commanded
171 position, which it might have drifted away from during tuning. To
172 summarize with some halcmd lines:</p>
173
174 <blockquote><pre>
175 setp pid.x.tune-effort 0.1
176 setp pid.x.tune-mode 1
177 setp pid.x.tune-start 1
178 # wait for the tuning to complete
179 setp pid.x.tune-mode 0
180 </pre></blockquote>
181
182 <p>After doing this task quite a few times while trying to figure out
183 how to properly tune the PID controllers on the machine in, I decided
184 to figure out if this process could be automated, and wrote a script
185 to do the entire tuning process from power on. The end result will
186 ensure the machine is powered on and ready to run, home all axis if it
187 is not already done, check that the extra tuning pins are available,
188 move the axis to its mid point, run the auto tuning and re-enable the
189 pid controller when it is done. It can be run several times. Check
190 out the
191 <a href="https://github.com/SebKuzminsky/MazakVQC1540/blob/bon-dev/scripts/run-auto-pid-tuner">run-auto-pid-tuner</a>
192 script on github if you want to learn how it is done.</p>
193
194 <p>My hope is that this little adventure can inspire someone who know
195 more about motor PID controller tuning can implement even better
196 algorithms for automatic PID tuning in LinuxCNC, making life easier
197 for both me and all the others that want to use LinuxCNC but lack the
198 in depth knowledge needed to tune PID controllers well.</p>
199
200 <p>As usual, if you use Bitcoin and want to show your support of my
201 activities, please send Bitcoin donations to my address
202 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
203
204 </div>
205 <div class="tags">
206
207
208 Tags: <a href="https://people.skolelinux.org/pere/blog/tags/3d-printer">3d-printer</a>, <a href="https://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="https://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="https://people.skolelinux.org/pere/blog/tags/robot">robot</a>.
209
210
211 </div>
212 </div>
213 <div class="padding"></div>
214
215 <div class="entry">
216 <div class="title">
217 <a href="https://people.skolelinux.org/pere/blog/LinuxCNC_translators_life_just_got_a_bit_easier.html">LinuxCNC translators life just got a bit easier</a>
218 </div>
219 <div class="date">
220 3rd June 2022
221 </div>
222 <div class="body">
223 <p>Back in oktober last year, when I started looking at the
224 <a href="https://en.wikipedia.org/wiki/LinuxCNC">LinuxCNC</a> system, I
225 proposed to change the documentation build system make life easier for
226 translators. The original system consisted of independently written
227 documentation files for each language, with no automated way to track
228 changes done in other translations and no help for the translators to
229 know how much was left to translated. By using
230 <a href="https://po4a.org/">the po4a system</a> to generate POT and PO
231 files from the English documentation, this can be improved. A small
232 team of LinuxCNC contributors got together and today our labour
233 finally payed off. Since a few hours ago, it is now possible to
234 translate <a href="https://hosted.weblate.org/projects/linuxcnc/">the
235 LinuxCNC documentation on Weblate</a>, alongside the program itself.</p>
236
237 <p>The effort to migrate the documentation to use po4a has been both
238 slow and frustrating. I am very happy we finally made it.</p>
239
240 <p>As usual, if you use Bitcoin and want to show your support of my
241 activities, please send Bitcoin donations to my address
242 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
243
244 </div>
245 <div class="tags">
246
247
248 Tags: <a href="https://people.skolelinux.org/pere/blog/tags/3d-printer">3d-printer</a>, <a href="https://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="https://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="https://people.skolelinux.org/pere/blog/tags/robot">robot</a>.
249
250
251 </div>
252 </div>
253 <div class="padding"></div>
254
255 <div class="entry">
256 <div class="title">
257 <a href="https://people.skolelinux.org/pere/blog/Run_your_industrial_metal_working_machine_using_Debian_.html">Run your industrial metal working machine using Debian?</a>
258 </div>
259 <div class="date">
260 2nd March 2022
261 </div>
262 <div class="body">
263 <p>After many months of hard work by the good people involved in
264 <a href="https://en.wikipedia.org/wiki/LinuxCNC">LinuxCNC</a>, the
265 system was accepted Sunday
266 <a href="https://tracker.debian.org/pkg/linuxcnc">into Debian</a>.
267 Once it was available from Debian, I was surprised to discover from
268 <a href="https://qa.debian.org/popcon.php?package=linuxcnc">its
269 popularity-contest numbers</a> that people have been reporting its use
270 since 2012. <a href="http://linuxcnc.org/">Its project site</a> might
271 be a good place to check out, but sadly is not working when visiting
272 via Tor.</p>
273
274 <p>But what is LinuxCNC, you are probably wondering? Perhaps a
275 Wikipedia quote is in place?</p>
276
277 <blockquote>
278 "LinuxCNC is a software system for numerical control of
279 machines such as milling machines, lathes, plasma cutters, routers,
280 cutting machines, robots and hexapods. It can control up to 9 axes or
281 joints of a CNC machine using G-code (RS-274NGC) as input. It has
282 several GUIs suited to specific kinds of usage (touch screen,
283 interactive development)."
284 </blockquote>
285
286 <p>It can even control 3D printers. And even though the Wikipedia
287 page indicate that it can only work with hard real time kernel
288 features, it can also work with the user space soft real time features
289 provided by the Debian kernel.
290 <a href="https://github.com/linuxcnc/linuxcnc">The source code</a> is
291 available from Github. The last few months I've been involved in the
292 translation setup for the program and documentation. Translators are
293 most welcome to
294 <a href="https://hosted.weblate.org/engage/linuxcnc/">join the
295 effort</a> using Weblate.</p>
296
297 <p>As usual, if you use Bitcoin and want to show your support of my
298 activities, please send Bitcoin donations to my address
299 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
300
301 </div>
302 <div class="tags">
303
304
305 Tags: <a href="https://people.skolelinux.org/pere/blog/tags/3d-printer">3d-printer</a>, <a href="https://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="https://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="https://people.skolelinux.org/pere/blog/tags/robot">robot</a>.
306
307
308 </div>
309 </div>
310 <div class="padding"></div>
311
312 <div class="entry">
313 <div class="title">
314 <a href="https://people.skolelinux.org/pere/blog/Debian_still_an_excellent_choice_for_Lego_builders.html">Debian still an excellent choice for Lego builders</a>
315 </div>
316 <div class="date">
317 24th October 2021
318 </div>
319 <div class="body">
320 <p>The Debian Lego team saw a lot of activity the last few weeks. All
321 the packages under the team umbrella has been updated to fix
322 packaging, lintian issues and BTS reports. In addition, a new and
323 inspiring team member appeared on both the
324 <a href="https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/debian-lego-team">debian-lego-team
325 Team mailing list</a> and
326 <a href="irc://irc.debian.org/%23debian-lego">IRC channel
327 #debian-lego</a>. If you are interested in Lego CAD design and LEGO
328 Mindstorms programming, check out the
329 <a href="http://wiki.debian.org/LegoDesigners">team wiki page</a> to
330 see what Debian can offer the Lego enthusiast.</p>
331
332 <p>Patches has been sent upstream, causing new upstream releases, one
333 even the first one in more than ten years, and old upstreams was
334 released with new ones. There are still a lot of work left, and the
335 team welcome more members to help us make sure Debian is the Linux
336 distribution of choice for Lego builders. If you want to contribute,
337 join us in the IRC channel and become part of
338 <a href="https://salsa.debian.org/debian-lego-team/">the team on
339 Salsa</a>.</p>
340
341 <p>As usual, if you use Bitcoin and want to show your support of my
342 activities, please send Bitcoin donations to my address
343 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
344
345 </div>
346 <div class="tags">
347
348
349 Tags: <a href="https://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="https://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="https://people.skolelinux.org/pere/blog/tags/lego">lego</a>, <a href="https://people.skolelinux.org/pere/blog/tags/robot">robot</a>.
350
351
352 </div>
353 </div>
354 <div class="padding"></div>
355
356 <div class="entry">
357 <div class="title">
358 <a href="https://people.skolelinux.org/pere/blog/The_space_rover_coquine__or_how_I_ended_up_on_the_dark_side_of_the_moon.html">The space rover coquine, or how I ended up on the dark side of the moon</a>
359 </div>
360 <div class="date">
361 2nd June 2019
362 </div>
363 <div class="body">
364 <p>A while back a college and friend from Debian and the Skolelinux /
365 Debian Edu project approached me, asking if I knew someone that might
366 be interested in helping out with a technology project he was running
367 as a teacher at <a href="https://www.ecolefrancodanoise.dk/">L'école
368 franco-danoise</a> - the Danish-French school and kindergarden. The
369 kids were building robots, rovers. The story behind it is to build a
370 rover for use
371 <a href="http://blog.ecolefrancodanoise.dk/first-week-on-the-dark-side">on
372 the dark side of the moon</a>, and remote control it. As travel cost
373 was a bit high for the final destination, and they wanted to test the
374 concept first, he was looking for volunteers to host a rover for the
375 kids to control in a foreign country. I ended up volunteering as a
376 host, and last week the rover arrived. It took a while to arrive
377 after <a href="http://blog.ecolefrancodanoise.dk/model-moms">it was
378 built and shipped</a>, because of customs confusion. Luckily we were
379 able fix it quickly with help from my colleges at work.</p>
380
381 <p>This is what it looked like when the rover arrived. Note the cute
382 eyes looking up on me from the wrapping</p>
383
384 <img src="http://people.skolelinux.org/pere/blog/images/2019-06-02-robot-dark-side-of-moon-esken-med-det-rare-i.jpeg" width="32%" style="clear:left"/>
385 <img src="http://people.skolelinux.org/pere/blog/images/2019-06-02-robot-dark-side-of-moon-den-ser-meg.jpeg" width="32%" style="clear:left"/>
386 <img src="http://people.skolelinux.org/pere/blog/images/2019-06-02-robot-dark-side-of-moon-en-skrue-loes.jpeg" width="32%" style="clear:left"/>
387
388 <p style="text-align:left">Once the robot arrived, we needed to track
389 down batteries and figure out how to build custom firmware for it with
390 the appropriate wifi settings. I asked a friend if I could get two
391 18650 batteries from his pile of Tesla batteries (he had them from the
392 wrack of a crashed Tesla), so now the rover is running on Tesla
393 batteries.</p>
394
395 <p>Building
396 <a href="https://gitlab.com/ecolefrancodanoise/arduino-efd/">the rover
397 firmware</a> proved a bit harder, as the code did not work out of the
398 box with the Arduino IDE package in Debian Buster. I suspect this is
399 due to a unsolved
400 <a href="https://github.com/arduino/Arduino/pull/2703"> license problem
401 with arduino</a> blocking Debian from upgrading to the latest version.
402 In the end we gave up debugging why the IDE failed to find the
403 required libraries, and ended up using the Arduino Makefile from the
404 <a href="https://tracker.debian.org/pkg/arduino-mk">arduino-mk Debian
405 package</a> instead. Unfortunately the camera library is missing from
406 the Arduino environment in Debian, so we disabled the camera support
407 for the first firmware build, to get something up and running. With
408 this reduced firmware, the robot could be controlled via the
409 controller server, driving around and measuring distance using its
410 internal acoustic sensor.</p>
411
412 <p>Next, With some help from my friend in Denmark, which checked in the
413 camera library into the gitlab repository for me to use, we were able
414 to build a new and more complete version of the firmware, and the
415 robot is now up and running. This is what the "commander" web page
416 look like after taking a measurement and a snapshot:</p>
417
418 <img src="http://people.skolelinux.org/pere/blog/images/2019-06-02-robot-dark-side-of-moon-commander.png" width="40%" border="1" align="center"/>
419
420 <p>If you want to learn more about this project, you can check out the
421 <a href="https://hackaday.io/project/164082-the-dark-side-challenge">The
422 Dark Side Challenge</a> Hackaday web pages.</p>
423
424 <p>As usual, if you use Bitcoin and want to show your support of my
425 activities, please send Bitcoin donations to my address
426 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
427
428 </div>
429 <div class="tags">
430
431
432 Tags: <a href="https://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="https://people.skolelinux.org/pere/blog/tags/robot">robot</a>.
433
434
435 </div>
436 </div>
437 <div class="padding"></div>
438
439 <div class="entry">
440 <div class="title">
441 <a href="https://people.skolelinux.org/pere/blog/Debian_now_got_everything_you_need_to_program_Micro_bit.html">Debian now got everything you need to program Micro:bit</a>
442 </div>
443 <div class="date">
444 22nd January 2019
445 </div>
446 <div class="body">
447 <p>I am amazed and very pleased to discover that since a few days ago,
448 everything you need to program the <a href="https://microbit.org/">BBC
449 micro:bit</a> is available from the Debian archive. All this is
450 thanks to the hard work of Nick Morrott and the Debian python
451 packaging team. The micro:bit project recommend the mu-editor to
452 program the microcomputer, as this editor will take care of all the
453 machinery required to injekt/flash micropython alongside the program
454 into the micro:bit, as long as the pieces are available.</p>
455
456 <p>There are three main pieces involved. The first to enter Debian
457 was
458 <a href="https://tracker.debian.org/pkg/python-uflash">python-uflash</a>,
459 which was accepted into the archive 2019-01-12. The next one was
460 <a href="https://tracker.debian.org/pkg/mu-editor">mu-editor</a>, which
461 showed up 2019-01-13. The final and hardest part to to into the
462 archive was
463 <a href="https://tracker.debian.org/pkg/firmware-microbit-micropython">firmware-microbit-micropython</a>,
464 which needed to get its build system and dependencies into Debian
465 before it was accepted 2019-01-20. The last one is already in Debian
466 Unstable and should enter Debian Testing / Buster in three days. This
467 all allow any user of the micro:bit to get going by simply running
468 'apt install mu-editor' when using Testing or Unstable, and once
469 Buster is released as stable, all the users of Debian stable will be
470 catered for.</p>
471
472 <p>As a minor final touch, I added rules to
473 <a href="https://tracker.debian.org/pkg/isenkram">the isenkram
474 package</a> for recognizing micro:bit and recommend the mu-editor
475 package. This make sure any user of the isenkram desktop daemon will
476 get a popup suggesting to install mu-editor then the USB cable from
477 the micro:bit is inserted for the first time.</p>
478
479 <p>This should make it easier to have fun.</p>
480
481 <p>As usual, if you use Bitcoin and want to show your support of my
482 activities, please send Bitcoin donations to my address
483 <b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
484
485 </div>
486 <div class="tags">
487
488
489 Tags: <a href="https://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="https://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="https://people.skolelinux.org/pere/blog/tags/robot">robot</a>.
490
491
492 </div>
493 </div>
494 <div class="padding"></div>
495
496 <div class="entry">
497 <div class="title">
498 <a href="https://people.skolelinux.org/pere/blog/My_own_self_balancing_Lego_Segway.html">My own self balancing Lego Segway</a>
499 </div>
500 <div class="date">
501 4th November 2016
502 </div>
503 <div class="body">
504 <p>A while back I received a Gyro sensor for the NXT
505 <a href="mindstorms.lego.com">Mindstorms</a> controller as a birthday
506 present. It had been on my wishlist for a while, because I wanted to
507 build a Segway like balancing lego robot. I had already built
508 <a href="http://www.nxtprograms.com/NXT2/segway/">a simple balancing
509 robot</a> with the kids, using the light/color sensor included in the
510 NXT kit as the balance sensor, but it was not working very well. It
511 could balance for a while, but was very sensitive to the light
512 condition in the room and the reflective properties of the surface and
513 would fall over after a short while. I wanted something more robust,
514 and had
515 <a href="https://www.hitechnic.com/cgi-bin/commerce.cgi?preadd=action&key=NGY1044">the
516 gyro sensor from HiTechnic</a> I believed would solve it on my
517 wishlist for some years before it suddenly showed up as a gift from my
518 loved ones. :)</p>
519
520 <p>Unfortunately I have not had time to sit down and play with it
521 since then. But that changed some days ago, when I was searching for
522 lego segway information and came across a recipe from HiTechnic for
523 building
524 <a href="http://www.hitechnic.com/blog/gyro-sensor/htway/">the
525 HTWay</a>, a segway like balancing robot. Build instructions and
526 <a href="https://www.hitechnic.com/upload/786-HTWayC.nxc">source
527 code</a> was included, so it was just a question of putting it all
528 together. And thanks to the great work of many Debian developers, the
529 compiler needed to build the source for the NXT is already included in
530 Debian, so I was read to go in less than an hour. The resulting robot
531 do not look very impressive in its simplicity:</p>
532
533 <p align="center"><img width="70%" src="http://people.skolelinux.org/pere/blog/images/2016-11-04-lego-htway-robot.jpeg"></p>
534
535 <p>Because I lack the infrared sensor used to control the robot in the
536 design from HiTechnic, I had to comment out the last task
537 (taskControl). I simply placed /* and */ around it get the program
538 working without that sensor present. Now it balances just fine until
539 the battery status run low:</p>
540
541 <p align="center"><video width="70%" controls="true">
542 <source src="http://people.skolelinux.org/pere/blog/images/2016-11-04-lego-htway-balancing.ogv" type="video/ogg">
543 </video></p>
544
545 <p>Now we would like to teach it how to follow a line and take remote
546 control instructions using the included Bluetooth receiver in the NXT.</p>
547
548 <p>If you, like me, love LEGO and want to make sure we find the tools
549 they need to work with LEGO in Debian and all our derivative
550 distributions like Ubuntu, check out
551 <a href="http://wiki.debian.org/LegoDesigners">the LEGO designers
552 project page</a> and join the Debian LEGO team. Personally I own a
553 RCX and NXT controller (no EV3), and would like to make sure the
554 Debian tools needed to program the systems I own work as they
555 should.</p>
556
557 </div>
558 <div class="tags">
559
560
561 Tags: <a href="https://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="https://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="https://people.skolelinux.org/pere/blog/tags/lego">lego</a>, <a href="https://people.skolelinux.org/pere/blog/tags/robot">robot</a>.
562
563
564 </div>
565 </div>
566 <div class="padding"></div>
567
568 <div class="entry">
569 <div class="title">
570 <a href="https://people.skolelinux.org/pere/blog/All_drones_should_be_radio_marked_with_what_they_do_and_who_they_belong_to.html">All drones should be radio marked with what they do and who they belong to</a>
571 </div>
572 <div class="date">
573 21st November 2013
574 </div>
575 <div class="body">
576 <p>Drones, flying robots, are getting more and more popular. The most
577 know ones are the killer drones used by some government to murder
578 people they do not like without giving them the chance of a fair
579 trial, but the technology have many good uses too, from mapping and
580 forest maintenance to photography and search and rescue. I am sure it
581 is just a question of time before "bad drones" are in the hands of
582 private enterprises and not only state criminals but petty criminals
583 too. The drone technology is very useful and very dangerous. To have
584 some control over the use of drones, I agree with Daniel Suarez in his
585 TED talk
586 "<a href="https://archive.org/details/DanielSuarez_2013G">The kill
587 decision shouldn't belong to a robot</a>", where he suggested this
588 little gem to keep the good while limiting the bad use of drones:</p>
589
590 <blockquote>
591
592 <p>Each robot and drone should have a cryptographically signed
593 I.D. burned in at the factory that can be used to track its movement
594 through public spaces. We have license plates on cars, tail numbers on
595 aircraft. This is no different. And every citizen should be able to
596 download an app that shows the population of drones and autonomous
597 vehicles moving through public spaces around them, both right now and
598 historically. And civic leaders should deploy sensors and civic drones
599 to detect rogue drones, and instead of sending killer drones of their
600 own up to shoot them down, they should notify humans to their
601 presence. And in certain very high-security areas, perhaps civic
602 drones would snare them and drag them off to a bomb disposal facility.</p>
603
604 <p>But notice, this is more an immune system than a weapons system. It
605 would allow us to avail ourselves of the use of autonomous vehicles
606 and drones while still preserving our open, civil society.</p>
607
608 </blockquote>
609
610 <p>The key is that <em>every citizen</em> should be able to read the
611 radio beacons sent from the drones in the area, to be able to check
612 both the government and others use of drones. For such control to be
613 effective, everyone must be able to do it. What should such beacon
614 contain? At least formal owner, purpose, contact information and GPS
615 location. Probably also the origin and target position of the current
616 flight. And perhaps some registration number to be able to look up
617 the drone in a central database tracking their movement. Robots
618 should not have privacy. It is people who need privacy.</p>
619
620 </div>
621 <div class="tags">
622
623
624 Tags: <a href="https://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="https://people.skolelinux.org/pere/blog/tags/robot">robot</a>, <a href="https://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet</a>, <a href="https://people.skolelinux.org/pere/blog/tags/surveillance">surveillance</a>.
625
626
627 </div>
628 </div>
629 <div class="padding"></div>
630
631 <div class="entry">
632 <div class="title">
633 <a href="https://people.skolelinux.org/pere/blog/Perl_library_to_control_the_Spykee_robot_moved_to_github.html">Perl library to control the Spykee robot moved to github</a>
634 </div>
635 <div class="date">
636 19th October 2013
637 </div>
638 <div class="body">
639 <p>Back in 2010, I created a Perl library to talk to
640 <a href="http://en.wikipedia.org/wiki/Spykee">the Spykee robot</a>
641 (with two belts, wifi, USB and Linux) and made it available from my
642 web page. Today I concluded that it should move to a site that is
643 easier to use to cooperate with others, and moved it to github. If
644 you got a Spykee robot, you might want to check out
645 <a href="https://github.com/petterreinholdtsen/libspykee-perl">the
646 libspykee-perl github repository</a>.</p>
647
648 </div>
649 <div class="tags">
650
651
652 Tags: <a href="https://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="https://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="https://people.skolelinux.org/pere/blog/tags/robot">robot</a>.
653
654
655 </div>
656 </div>
657 <div class="padding"></div>
658
659 <div class="entry">
660 <div class="title">
661 <a href="https://people.skolelinux.org/pere/blog/Debian__the_Linux_distribution_of_choice_for_LEGO_designers_.html">Debian, the Linux distribution of choice for LEGO designers?</a>
662 </div>
663 <div class="date">
664 11th May 2013
665 </div>
666 <div class="body">
667 <P>In January,
668 <a href="http://people.skolelinux.org/pere/blog/New_IRC_channel_for_LEGO_designers_using_Debian.html">I
669 announced a</a> new <a href="irc://irc.debian.org/%23debian-lego">IRC
670 channel #debian-lego</a>, for those of us in the Debian and Linux
671 community interested in <a href="http://www.lego.com/">LEGO</a>, the
672 marvellous construction system from Denmark. We also created
673 <a href="http://wiki.debian.org/LegoDesigners">a wiki page</a> to have
674 a place to take notes and write down our plans and hopes. And several
675 people showed up to help. I was very happy to see the effect of my
676 call. Since the small start, we have a debtags tag
677 <a href="http://debtags.debian.net/search/bytag?wl=hardware::hobby:lego">hardware::hobby:lego</a>
678 tag for LEGO related packages, and now count 10 packages related to
679 LEGO and <a href="http://mindstorms.lego.com/">Mindstorms</a>:</p>
680
681 <p><table>
682 <tr><td><a href="http://packages.qa.debian.org/brickos">brickos</a></td><td>alternative OS for LEGO Mindstorms RCX. Supports development in C/C++</td></tr>
683 <tr><td><a href="http://packages.qa.debian.org/leocad">leocad</a></td><td>virtual brick CAD software</td></tr>
684 <tr><td><a href="http://packages.qa.debian.org/libnxt">libnxt</a></td><td>utility library for talking to the LEGO Mindstorms NX</td></tr>
685 <tr><td><a href="http://packages.qa.debian.org/lnpd">lnpd</a></td><td>daemon for LNP communication with BrickOS</td></tr>
686 <tr><td><a href="http://packages.qa.debian.org/nbc">nbc</a></td><td>compiler for LEGO Mindstorms NXT bricks</td></tr>
687 <tr><td><a href="http://packages.qa.debian.org/nqc">nqc</a></td><td>Not Quite C compiler for LEGO Mindstorms RCX</td></tr>
688 <tr><td><a href="http://packages.qa.debian.org/python-nxt">python-nxt</a></td><td>python driver/interface/wrapper for the Lego Mindstorms NXT robot</td></tr>
689 <tr><td><a href="http://packages.qa.debian.org/python-nxt-filer">python-nxt-filer</a></td><td>simple GUI to manage files on a LEGO Mindstorms NXT</td></tr>
690 <tr><td><a href="http://packages.qa.debian.org/scratch">scratch</a></td><td>easy to use programming environment for ages 8 and up</td></tr>
691 <tr><td><a href="http://packages.qa.debian.org/t2n">t2n</a></td><td>simple command-line tool for Lego NXT</td></tr>
692 </table></p>
693
694 <p>Some of these are available in Wheezy, and all but one are
695 currently available in Jessie/testing. leocad is so far only
696 available in experimental.</p>
697
698 <p>If you care about LEGO in Debian, please join us on IRC and help
699 adding the rest of the great free software tools available on Linux
700 for LEGO designers.</p>
701
702 </div>
703 <div class="tags">
704
705
706 Tags: <a href="https://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="https://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="https://people.skolelinux.org/pere/blog/tags/lego">lego</a>, <a href="https://people.skolelinux.org/pere/blog/tags/robot">robot</a>.
707
708
709 </div>
710 </div>
711 <div class="padding"></div>
712
713 <div class="entry">
714 <div class="title">
715 <a href="https://people.skolelinux.org/pere/blog/Moved_the_pymissile_Debian_packaging_to_collab_maint.html">Moved the pymissile Debian packaging to collab-maint</a>
716 </div>
717 <div class="date">
718 10th January 2013
719 </div>
720 <div class="body">
721 <p>As part of my investigation on how to improve the support in Debian
722 for hardware dongles, I dug up my old Mark and Spencer USB Rocket
723 Launcher and updated the Debian package
724 <a href="http://packages.qa.debian.org/pymissile">pymissile</a> to make
725 sure udev will fix the device permissions when it is plugged in. I
726 also added a "Modaliases" header to test it in the Debian archive and
727 hopefully make the package be proposed by jockey in Ubuntu when a user
728 plug in his rocket launcher. In the process I moved the source to a
729 git repository under collab-maint, to make it easier for any DD to
730 contribute. <a href="http://code.google.com/p/pymissile/">Upstream</a>
731 is not very active, but the software still work for me even after five
732 years of relative silence. The new git repository is not listed in
733 the uploaded package yet, because I want to test the other changes a
734 bit more before I upload the new version. If you want to check out
735 the new version with a .desktop file included, visit the
736 <a href="http://anonscm.debian.org/gitweb/?p=collab-maint/pymissile.git">gitweb
737 view</a> or use "<tt>git clone
738 git://anonscm.debian.org/collab-maint/pymissile.git</tt>".</p>
739
740 </div>
741 <div class="tags">
742
743
744 Tags: <a href="https://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="https://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="https://people.skolelinux.org/pere/blog/tags/isenkram">isenkram</a>, <a href="https://people.skolelinux.org/pere/blog/tags/robot">robot</a>.
745
746
747 </div>
748 </div>
749 <div class="padding"></div>
750
751 <div class="entry">
752 <div class="title">
753 <a href="https://people.skolelinux.org/pere/blog/New_IRC_channel_for_LEGO_designers_using_Debian.html">New IRC channel for LEGO designers using Debian</a>
754 </div>
755 <div class="date">
756 2nd January 2013
757 </div>
758 <div class="body">
759 <p>During Christmas, I have worked a bit on the Debian support for
760 <a href="http://mindstorms.lego.com/en-us/Default.aspx">LEGO Mindstorm
761 NXT</a>. My son and I have played a bit with my NXT set, and I
762 discovered I had to build all the tools myself because none were
763 already in Debian Squeeze. If Debian support for LEGO is something
764 you care about, please join me on the IRC channel
765 <a href="irc://irc.debian.org/%23debian-lego">#debian-lego</a> (server
766 irc.debian.org). There is a lot that could be done to improve the
767 Debian support for LEGO designers. For example both CAD software
768 and Mindstorm compilers are missing. :)</p>
769
770 <p>Update 2012-01-03: A
771 <a href="http://wiki.debian.org/LegoDesigners">project page</a>
772 including links to Lego related packages is now available.</p>
773
774 </div>
775 <div class="tags">
776
777
778 Tags: <a href="https://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="https://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="https://people.skolelinux.org/pere/blog/tags/lego">lego</a>, <a href="https://people.skolelinux.org/pere/blog/tags/robot">robot</a>.
779
780
781 </div>
782 </div>
783 <div class="padding"></div>
784
785 <div class="entry">
786 <div class="title">
787 <a href="https://people.skolelinux.org/pere/blog/First_version_of_a_Perl_library_to_control_the_Spykee_robot.html">First version of a Perl library to control the Spykee robot</a>
788 </div>
789 <div class="date">
790 9th October 2010
791 </div>
792 <div class="body">
793 <p>This summer I got the chance to buy cheap Spykee robots, and since
794 then I have worked on getting Linux software in place to control them.
795 The firmware for the robot is available from the producer, and using
796 that source it was trivial to figure out the protocol specification.
797 I've started on a perl library to control it, and made some demo
798 programs using this perl library to allow one to control the
799 robots.</p>
800
801 <p>The library is quite functional already, and capable of controlling
802 the driving, fetching video, uploading MP3s and play them. There are
803 a few less important features too.</p>
804
805 <p>Since a few weeks ago, I ran out of time to spend on this project,
806 but I never got around to releasing the current source. I decided
807 today that it was time to do something about it, and uploaded the
808 source to my Debian package store at people.skolelinux.org.</p>
809
810 <p>Because it was simpler for me, I made a Debian package and
811 published the source and deb. If you got a spykee robot, grab the
812 source or binary package:</p>
813
814 <p><ul>
815 <li><a href="http://people.skolelinux.org/~pere/debian/packages/lenny/libspykee-perl_0.0.20101009-1.tar.gz">libspykee-perl_0.0.20101009-1.tar.gz</a></li>
816 <li><a href="http://people.skolelinux.org/~pere/debian/packages/lenny/libspykee-perl_0.0.20101009-1.dsc">libspykee-perl_0.0.20101009-1.dsc</a></li>
817 <li><a href="http://people.skolelinux.org/~pere/debian/packages/lenny/libspykee-perl_0.0.20101009-1_all.deb">libspykee-perl_0.0.20101009-1_all.deb</a></li>
818 </ul></p>
819
820 <p>If you are interested in helping out with developing this library,
821 please let me know.</p>
822
823 </div>
824 <div class="tags">
825
826
827 Tags: <a href="https://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="https://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="https://people.skolelinux.org/pere/blog/tags/robot">robot</a>.
828
829
830 </div>
831 </div>
832 <div class="padding"></div>
833
834 <div class="entry">
835 <div class="title">
836 <a href="https://people.skolelinux.org/pere/blog/My_first_perl_GUI_application___controlling_a_Spykee_robot.html">My first perl GUI application - controlling a Spykee robot</a>
837 </div>
838 <div class="date">
839 1st September 2010
840 </div>
841 <div class="body">
842 <p>This evening I made my first Perl GUI application. The last few
843 days I have worked on a Perl module for controlling my recently
844 aquired Spykee robots, and the module is now getting complete enought
845 that it is possible to use it to control the robot driving at least.
846 It was now time to figure out how to use it to create some GUI to
847 allow me to drive the robot around. I picked PerlQt as I have had
848 positive experiences with the Qt API before, and spent a few minutes
849 browsing the web for examples. Using Qt Designer seemed like a short
850 cut, so I ended up writing the perl GUI using Qt Designer and
851 compiling it into a perl program using the puic program from
852 libqt-perl. Nothing fancy yet, but it got buttons to connect and
853 drive around.</p>
854
855 <p>The perl module I have written provide a object oriented API for
856 controlling the robot. Here is an small example on how to use it:</p>
857
858 <p><pre>
859 use Spykee;
860 Spykee::discover(sub {$robot{$_[0]} = $_[1]});
861 my $host = (keys %robot)[0];
862 my $spykee = Spykee->new();
863 $spykee->contact($host, "admin", "admin");
864 $spykee->left();
865 sleep 2;
866 $spykee->right();
867 sleep 2;
868 $spykee->forward();
869 sleep 2;
870 $spykee->back();
871 sleep 2;
872 $spykee->stop();
873 </pre></p>
874
875 <p>Thanks to the release of the source of the robot firmware, I could
876 peek into the implementation at the other end to figure out how to
877 implement the protocol used by the robot. I've implemented several of
878 the commands the robot understand, but is still missing the camera
879 support to make it possible to control the robot from remote. First I
880 want to implement support for uploading new firmware and configuring
881 the wireless network, to make it possible to bootstrap a Spykee robot
882 without the producers Windows and MacOSX software (I only have Linux,
883 so I had to ask a friend to come over to get the robot testing
884 going. :).</p>
885
886 <p>Will release the source to the public soon, but need to figure out
887 where to make it available first. I will add a link to
888 <a href="http://wiki.nuug.no/grupper/robot/">the NUUG wiki</a> for
889 those that want to check back later to find it.</p>
890
891 </div>
892 <div class="tags">
893
894
895 Tags: <a href="https://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="https://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="https://people.skolelinux.org/pere/blog/tags/robot">robot</a>.
896
897
898 </div>
899 </div>
900 <div class="padding"></div>
901
902 <div class="entry">
903 <div class="title">
904 <a href="https://people.skolelinux.org/pere/blog/Robot__reis_deg___.html">Robot, reis deg...</a>
905 </div>
906 <div class="date">
907 21st August 2010
908 </div>
909 <div class="body">
910 <p>I dag fikk jeg endelig tittet litt på mine nyinnkjøpte roboter, og
911 har brukt noen timer til å google etter interessante referanser og
912 aktuell kildekode for bruk på Linux. Det mest lovende så langt er
913 <a href="http://ispykee.toyz.org/">ispykee</a>, som har en
914 BSD-lisensiert linux-daemon som står som mellomledd mellom roboter på
915 lokalnettet og en sentral tjeneste der en iPhone kan koble seg opp for
916 å fjernstyre roboten. Linux-daemonen implementerer deler av
917 protokollen som roboten forstår. Etter å ha knotet litt med å oppnå
918 kontakt med roboten (den oppretter et eget ad-hoc wifi-nett, så jeg
919 måtte gå av mitt vanlige nett for å få kontakt), og kommet frem til at
920 den lytter på IP-port 9000 og 9001, gikk jeg i gang med å finne ut
921 hvordan jeg kunne snakke med roboten vha. disse portene. Robotbiten
922 av protokollen er publisert av produsenten med GPL-lisens, slik at det
923 er mulig å se hvordan protokollen fungerer. Det finnes en java-klient
924 for Android som så ganske snasen ut, men fant ingen kildekode for
925 denne. Derimot hadde iphone-løsningen kildekode, så jeg tok
926 utgangspunkt i den.</p>
927
928 <p>Daemonen ville i utgangspunktet forsøke å kontakte den sentrale
929 tjenesten som iphone-programmet kobler seg til. Jeg skrev dette om
930 til i stedet å sette opp en nettverkstjeneste på min lokale maskin,
931 som jeg kan koble meg opp til med telnet og gi kommandoer til roboten
932 (act, forward, right, left, etc). Det involverte i praksis å bytte ut
933 socket()/connect() med socket()/bind()/listen()/accept() for å gjøre
934 klienten om til en tjener.</p>
935
936 <p>Mens jeg har forsøkt å få roboten til å bevege seg har min samboer
937 skrudd sammen resten av roboten for å få montert kamera og plastpynten
938 (armer, plastfiber for lys). NÃ¥ er det hele montert, og roboten er
939 klar til bruk. Må få flyttet den over til mitt vanlige trådløsnett
940 før det blir praktisk, men de bitene av protokollen er ikke
941 implementert i ispykee-daemonen, så der må jeg enten få tak i en mac
942 eller en windows-maskin, eller implementere det selv.</p>
943
944 <p>Vi var tre som kjøpte slike roboter, og vi har blitt enige om å
945 samle notater og referanser på <a
946 href="http://wiki.nuug.no/grupper/robot/">NUUGs wiki</a>. Ta en titt
947 der hvis du er nysgjerrig.</p>
948
949 </div>
950 <div class="tags">
951
952
953 Tags: <a href="https://people.skolelinux.org/pere/blog/tags/norsk">norsk</a>, <a href="https://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="https://people.skolelinux.org/pere/blog/tags/robot">robot</a>.
954
955
956 </div>
957 </div>
958 <div class="padding"></div>
959
960 <div class="entry">
961 <div class="title">
962 <a href="https://people.skolelinux.org/pere/blog/2_Spykee_roboter_i_hus__n__skal_det_lekes.html">2 Spykee-roboter i hus, nå skal det lekes</a>
963 </div>
964 <div class="date">
965 18th August 2010
966 </div>
967 <div class="body">
968 <p>Jeg kjøpte nettopp to
969 <a href="http://www.spykee-robot.com/">Spykee</a>-roboter, for test og
970 leking. Kjøpte to da det var så billige, og gir meg mulighet til å
971 eksperimentere uten å være veldig redd for å ødelegge alt ved å bytte
972 ut firmware og slikt. Oppdaget at lekebutikken på Bryn senter hadde
973 en liten stabel på lager som de ikke hadde klart å selge ut etter
974 fjorårets juleinnkjøp, og var villig til å selge for en femtedel av
975 vanlig pris. Jeg, Ronny og Jarle har skaffet oss restbeholdningen, og
976 det blir morsomt å se hva vi får ut av dette.</p>
977
978 <p>Roboten har belter styrt av to motorer, kamera, høytaler, mikrofon
979 og wifi-tilkobling. Det hele styrt av en GPL-lisensiert databoks som
980 jeg mistenker kjører linux. Firmware-kildekoden ble visst publisert i
981 mai. Eneste utfordringen er at kontroller-programvaren kun finnes til
982 Windows, men det må en kunne jobbe seg rundt når vi har kildekoden til
983 firmwaren. :)</p>
984
985 <ul>
986 <li><a href="http://en.wikipedia.org/wiki/Spykee">Wikipedia-oppføring</a></li>
987 <li><a href="http://www.spykeeworld.com/spykee/US/freeSoftware.html">Nedlasting av firmware-kilden</a></li>
988 <li><a href="http://wiki.nuug.no/grupper/robot">prosjektwiki hos NUUG</a></li>
989 </ul>
990
991 </div>
992 <div class="tags">
993
994
995 Tags: <a href="https://people.skolelinux.org/pere/blog/tags/norsk">norsk</a>, <a href="https://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="https://people.skolelinux.org/pere/blog/tags/robot">robot</a>.
996
997
998 </div>
999 </div>
1000 <div class="padding"></div>
1001
1002 <p style="text-align: right;"><a href="robot.rss"><img src="https://people.skolelinux.org/pere/blog/xml.gif" alt="RSS Feed" width="36" height="14" /></a></p>
1003 <div id="sidebar">
1004
1005
1006
1007 <h2>Archive</h2>
1008 <ul>
1009
1010 <li>2022
1011 <ul>
1012
1013 <li><a href="https://people.skolelinux.org/pere/blog/archive/2022/02/">February (1)</a></li>
1014
1015 <li><a href="https://people.skolelinux.org/pere/blog/archive/2022/03/">March (3)</a></li>
1016
1017 <li><a href="https://people.skolelinux.org/pere/blog/archive/2022/04/">April (2)</a></li>
1018
1019 <li><a href="https://people.skolelinux.org/pere/blog/archive/2022/06/">June (2)</a></li>
1020
1021 <li><a href="https://people.skolelinux.org/pere/blog/archive/2022/07/">July (1)</a></li>
1022
1023 <li><a href="https://people.skolelinux.org/pere/blog/archive/2022/09/">September (1)</a></li>
1024
1025 <li><a href="https://people.skolelinux.org/pere/blog/archive/2022/10/">October (1)</a></li>
1026
1027 </ul></li>
1028
1029 <li>2021
1030 <ul>
1031
1032 <li><a href="https://people.skolelinux.org/pere/blog/archive/2021/01/">January (2)</a></li>
1033
1034 <li><a href="https://people.skolelinux.org/pere/blog/archive/2021/02/">February (1)</a></li>
1035
1036 <li><a href="https://people.skolelinux.org/pere/blog/archive/2021/05/">May (1)</a></li>
1037
1038 <li><a href="https://people.skolelinux.org/pere/blog/archive/2021/06/">June (1)</a></li>
1039
1040 <li><a href="https://people.skolelinux.org/pere/blog/archive/2021/07/">July (3)</a></li>
1041
1042 <li><a href="https://people.skolelinux.org/pere/blog/archive/2021/08/">August (1)</a></li>
1043
1044 <li><a href="https://people.skolelinux.org/pere/blog/archive/2021/09/">September (1)</a></li>
1045
1046 <li><a href="https://people.skolelinux.org/pere/blog/archive/2021/10/">October (1)</a></li>
1047
1048 <li><a href="https://people.skolelinux.org/pere/blog/archive/2021/12/">December (1)</a></li>
1049
1050 </ul></li>
1051
1052 <li>2020
1053 <ul>
1054
1055 <li><a href="https://people.skolelinux.org/pere/blog/archive/2020/02/">February (2)</a></li>
1056
1057 <li><a href="https://people.skolelinux.org/pere/blog/archive/2020/03/">March (2)</a></li>
1058
1059 <li><a href="https://people.skolelinux.org/pere/blog/archive/2020/04/">April (2)</a></li>
1060
1061 <li><a href="https://people.skolelinux.org/pere/blog/archive/2020/05/">May (3)</a></li>
1062
1063 <li><a href="https://people.skolelinux.org/pere/blog/archive/2020/06/">June (2)</a></li>
1064
1065 <li><a href="https://people.skolelinux.org/pere/blog/archive/2020/07/">July (1)</a></li>
1066
1067 <li><a href="https://people.skolelinux.org/pere/blog/archive/2020/09/">September (1)</a></li>
1068
1069 <li><a href="https://people.skolelinux.org/pere/blog/archive/2020/10/">October (1)</a></li>
1070
1071 <li><a href="https://people.skolelinux.org/pere/blog/archive/2020/11/">November (1)</a></li>
1072
1073 </ul></li>
1074
1075 <li>2019
1076 <ul>
1077
1078 <li><a href="https://people.skolelinux.org/pere/blog/archive/2019/01/">January (4)</a></li>
1079
1080 <li><a href="https://people.skolelinux.org/pere/blog/archive/2019/02/">February (3)</a></li>
1081
1082 <li><a href="https://people.skolelinux.org/pere/blog/archive/2019/03/">March (3)</a></li>
1083
1084 <li><a href="https://people.skolelinux.org/pere/blog/archive/2019/05/">May (2)</a></li>
1085
1086 <li><a href="https://people.skolelinux.org/pere/blog/archive/2019/06/">June (5)</a></li>
1087
1088 <li><a href="https://people.skolelinux.org/pere/blog/archive/2019/07/">July (2)</a></li>
1089
1090 <li><a href="https://people.skolelinux.org/pere/blog/archive/2019/08/">August (1)</a></li>
1091
1092 <li><a href="https://people.skolelinux.org/pere/blog/archive/2019/09/">September (1)</a></li>
1093
1094 <li><a href="https://people.skolelinux.org/pere/blog/archive/2019/11/">November (1)</a></li>
1095
1096 <li><a href="https://people.skolelinux.org/pere/blog/archive/2019/12/">December (4)</a></li>
1097
1098 </ul></li>
1099
1100 <li>2018
1101 <ul>
1102
1103 <li><a href="https://people.skolelinux.org/pere/blog/archive/2018/01/">January (1)</a></li>
1104
1105 <li><a href="https://people.skolelinux.org/pere/blog/archive/2018/02/">February (5)</a></li>
1106
1107 <li><a href="https://people.skolelinux.org/pere/blog/archive/2018/03/">March (5)</a></li>
1108
1109 <li><a href="https://people.skolelinux.org/pere/blog/archive/2018/04/">April (3)</a></li>
1110
1111 <li><a href="https://people.skolelinux.org/pere/blog/archive/2018/06/">June (2)</a></li>
1112
1113 <li><a href="https://people.skolelinux.org/pere/blog/archive/2018/07/">July (5)</a></li>
1114
1115 <li><a href="https://people.skolelinux.org/pere/blog/archive/2018/08/">August (3)</a></li>
1116
1117 <li><a href="https://people.skolelinux.org/pere/blog/archive/2018/09/">September (3)</a></li>
1118
1119 <li><a href="https://people.skolelinux.org/pere/blog/archive/2018/10/">October (5)</a></li>
1120
1121 <li><a href="https://people.skolelinux.org/pere/blog/archive/2018/11/">November (2)</a></li>
1122
1123 <li><a href="https://people.skolelinux.org/pere/blog/archive/2018/12/">December (4)</a></li>
1124
1125 </ul></li>
1126
1127 <li>2017
1128 <ul>
1129
1130 <li><a href="https://people.skolelinux.org/pere/blog/archive/2017/01/">January (4)</a></li>
1131
1132 <li><a href="https://people.skolelinux.org/pere/blog/archive/2017/02/">February (3)</a></li>
1133
1134 <li><a href="https://people.skolelinux.org/pere/blog/archive/2017/03/">March (5)</a></li>
1135
1136 <li><a href="https://people.skolelinux.org/pere/blog/archive/2017/04/">April (2)</a></li>
1137
1138 <li><a href="https://people.skolelinux.org/pere/blog/archive/2017/06/">June (5)</a></li>
1139
1140 <li><a href="https://people.skolelinux.org/pere/blog/archive/2017/07/">July (1)</a></li>
1141
1142 <li><a href="https://people.skolelinux.org/pere/blog/archive/2017/08/">August (1)</a></li>
1143
1144 <li><a href="https://people.skolelinux.org/pere/blog/archive/2017/09/">September (3)</a></li>
1145
1146 <li><a href="https://people.skolelinux.org/pere/blog/archive/2017/10/">October (5)</a></li>
1147
1148 <li><a href="https://people.skolelinux.org/pere/blog/archive/2017/11/">November (3)</a></li>
1149
1150 <li><a href="https://people.skolelinux.org/pere/blog/archive/2017/12/">December (4)</a></li>
1151
1152 </ul></li>
1153
1154 <li>2016
1155 <ul>
1156
1157 <li><a href="https://people.skolelinux.org/pere/blog/archive/2016/01/">January (3)</a></li>
1158
1159 <li><a href="https://people.skolelinux.org/pere/blog/archive/2016/02/">February (2)</a></li>
1160
1161 <li><a href="https://people.skolelinux.org/pere/blog/archive/2016/03/">March (3)</a></li>
1162
1163 <li><a href="https://people.skolelinux.org/pere/blog/archive/2016/04/">April (8)</a></li>
1164
1165 <li><a href="https://people.skolelinux.org/pere/blog/archive/2016/05/">May (8)</a></li>
1166
1167 <li><a href="https://people.skolelinux.org/pere/blog/archive/2016/06/">June (2)</a></li>
1168
1169 <li><a href="https://people.skolelinux.org/pere/blog/archive/2016/07/">July (2)</a></li>
1170
1171 <li><a href="https://people.skolelinux.org/pere/blog/archive/2016/08/">August (5)</a></li>
1172
1173 <li><a href="https://people.skolelinux.org/pere/blog/archive/2016/09/">September (2)</a></li>
1174
1175 <li><a href="https://people.skolelinux.org/pere/blog/archive/2016/10/">October (3)</a></li>
1176
1177 <li><a href="https://people.skolelinux.org/pere/blog/archive/2016/11/">November (8)</a></li>
1178
1179 <li><a href="https://people.skolelinux.org/pere/blog/archive/2016/12/">December (5)</a></li>
1180
1181 </ul></li>
1182
1183 <li>2015
1184 <ul>
1185
1186 <li><a href="https://people.skolelinux.org/pere/blog/archive/2015/01/">January (7)</a></li>
1187
1188 <li><a href="https://people.skolelinux.org/pere/blog/archive/2015/02/">February (6)</a></li>
1189
1190 <li><a href="https://people.skolelinux.org/pere/blog/archive/2015/03/">March (1)</a></li>
1191
1192 <li><a href="https://people.skolelinux.org/pere/blog/archive/2015/04/">April (4)</a></li>
1193
1194 <li><a href="https://people.skolelinux.org/pere/blog/archive/2015/05/">May (3)</a></li>
1195
1196 <li><a href="https://people.skolelinux.org/pere/blog/archive/2015/06/">June (4)</a></li>
1197
1198 <li><a href="https://people.skolelinux.org/pere/blog/archive/2015/07/">July (6)</a></li>
1199
1200 <li><a href="https://people.skolelinux.org/pere/blog/archive/2015/08/">August (2)</a></li>
1201
1202 <li><a href="https://people.skolelinux.org/pere/blog/archive/2015/09/">September (2)</a></li>
1203
1204 <li><a href="https://people.skolelinux.org/pere/blog/archive/2015/10/">October (9)</a></li>
1205
1206 <li><a href="https://people.skolelinux.org/pere/blog/archive/2015/11/">November (6)</a></li>
1207
1208 <li><a href="https://people.skolelinux.org/pere/blog/archive/2015/12/">December (3)</a></li>
1209
1210 </ul></li>
1211
1212 <li>2014
1213 <ul>
1214
1215 <li><a href="https://people.skolelinux.org/pere/blog/archive/2014/01/">January (2)</a></li>
1216
1217 <li><a href="https://people.skolelinux.org/pere/blog/archive/2014/02/">February (3)</a></li>
1218
1219 <li><a href="https://people.skolelinux.org/pere/blog/archive/2014/03/">March (8)</a></li>
1220
1221 <li><a href="https://people.skolelinux.org/pere/blog/archive/2014/04/">April (7)</a></li>
1222
1223 <li><a href="https://people.skolelinux.org/pere/blog/archive/2014/05/">May (1)</a></li>
1224
1225 <li><a href="https://people.skolelinux.org/pere/blog/archive/2014/06/">June (2)</a></li>
1226
1227 <li><a href="https://people.skolelinux.org/pere/blog/archive/2014/07/">July (2)</a></li>
1228
1229 <li><a href="https://people.skolelinux.org/pere/blog/archive/2014/08/">August (2)</a></li>
1230
1231 <li><a href="https://people.skolelinux.org/pere/blog/archive/2014/09/">September (5)</a></li>
1232
1233 <li><a href="https://people.skolelinux.org/pere/blog/archive/2014/10/">October (6)</a></li>
1234
1235 <li><a href="https://people.skolelinux.org/pere/blog/archive/2014/11/">November (3)</a></li>
1236
1237 <li><a href="https://people.skolelinux.org/pere/blog/archive/2014/12/">December (5)</a></li>
1238
1239 </ul></li>
1240
1241 <li>2013
1242 <ul>
1243
1244 <li><a href="https://people.skolelinux.org/pere/blog/archive/2013/01/">January (11)</a></li>
1245
1246 <li><a href="https://people.skolelinux.org/pere/blog/archive/2013/02/">February (9)</a></li>
1247
1248 <li><a href="https://people.skolelinux.org/pere/blog/archive/2013/03/">March (9)</a></li>
1249
1250 <li><a href="https://people.skolelinux.org/pere/blog/archive/2013/04/">April (6)</a></li>
1251
1252 <li><a href="https://people.skolelinux.org/pere/blog/archive/2013/05/">May (9)</a></li>
1253
1254 <li><a href="https://people.skolelinux.org/pere/blog/archive/2013/06/">June (10)</a></li>
1255
1256 <li><a href="https://people.skolelinux.org/pere/blog/archive/2013/07/">July (7)</a></li>
1257
1258 <li><a href="https://people.skolelinux.org/pere/blog/archive/2013/08/">August (3)</a></li>
1259
1260 <li><a href="https://people.skolelinux.org/pere/blog/archive/2013/09/">September (5)</a></li>
1261
1262 <li><a href="https://people.skolelinux.org/pere/blog/archive/2013/10/">October (7)</a></li>
1263
1264 <li><a href="https://people.skolelinux.org/pere/blog/archive/2013/11/">November (9)</a></li>
1265
1266 <li><a href="https://people.skolelinux.org/pere/blog/archive/2013/12/">December (3)</a></li>
1267
1268 </ul></li>
1269
1270 <li>2012
1271 <ul>
1272
1273 <li><a href="https://people.skolelinux.org/pere/blog/archive/2012/01/">January (7)</a></li>
1274
1275 <li><a href="https://people.skolelinux.org/pere/blog/archive/2012/02/">February (10)</a></li>
1276
1277 <li><a href="https://people.skolelinux.org/pere/blog/archive/2012/03/">March (17)</a></li>
1278
1279 <li><a href="https://people.skolelinux.org/pere/blog/archive/2012/04/">April (12)</a></li>
1280
1281 <li><a href="https://people.skolelinux.org/pere/blog/archive/2012/05/">May (12)</a></li>
1282
1283 <li><a href="https://people.skolelinux.org/pere/blog/archive/2012/06/">June (20)</a></li>
1284
1285 <li><a href="https://people.skolelinux.org/pere/blog/archive/2012/07/">July (17)</a></li>
1286
1287 <li><a href="https://people.skolelinux.org/pere/blog/archive/2012/08/">August (6)</a></li>
1288
1289 <li><a href="https://people.skolelinux.org/pere/blog/archive/2012/09/">September (9)</a></li>
1290
1291 <li><a href="https://people.skolelinux.org/pere/blog/archive/2012/10/">October (17)</a></li>
1292
1293 <li><a href="https://people.skolelinux.org/pere/blog/archive/2012/11/">November (10)</a></li>
1294
1295 <li><a href="https://people.skolelinux.org/pere/blog/archive/2012/12/">December (7)</a></li>
1296
1297 </ul></li>
1298
1299 <li>2011
1300 <ul>
1301
1302 <li><a href="https://people.skolelinux.org/pere/blog/archive/2011/01/">January (16)</a></li>
1303
1304 <li><a href="https://people.skolelinux.org/pere/blog/archive/2011/02/">February (6)</a></li>
1305
1306 <li><a href="https://people.skolelinux.org/pere/blog/archive/2011/03/">March (6)</a></li>
1307
1308 <li><a href="https://people.skolelinux.org/pere/blog/archive/2011/04/">April (7)</a></li>
1309
1310 <li><a href="https://people.skolelinux.org/pere/blog/archive/2011/05/">May (3)</a></li>
1311
1312 <li><a href="https://people.skolelinux.org/pere/blog/archive/2011/06/">June (2)</a></li>
1313
1314 <li><a href="https://people.skolelinux.org/pere/blog/archive/2011/07/">July (7)</a></li>
1315
1316 <li><a href="https://people.skolelinux.org/pere/blog/archive/2011/08/">August (6)</a></li>
1317
1318 <li><a href="https://people.skolelinux.org/pere/blog/archive/2011/09/">September (4)</a></li>
1319
1320 <li><a href="https://people.skolelinux.org/pere/blog/archive/2011/10/">October (2)</a></li>
1321
1322 <li><a href="https://people.skolelinux.org/pere/blog/archive/2011/11/">November (3)</a></li>
1323
1324 <li><a href="https://people.skolelinux.org/pere/blog/archive/2011/12/">December (1)</a></li>
1325
1326 </ul></li>
1327
1328 <li>2010
1329 <ul>
1330
1331 <li><a href="https://people.skolelinux.org/pere/blog/archive/2010/01/">January (2)</a></li>
1332
1333 <li><a href="https://people.skolelinux.org/pere/blog/archive/2010/02/">February (1)</a></li>
1334
1335 <li><a href="https://people.skolelinux.org/pere/blog/archive/2010/03/">March (3)</a></li>
1336
1337 <li><a href="https://people.skolelinux.org/pere/blog/archive/2010/04/">April (3)</a></li>
1338
1339 <li><a href="https://people.skolelinux.org/pere/blog/archive/2010/05/">May (9)</a></li>
1340
1341 <li><a href="https://people.skolelinux.org/pere/blog/archive/2010/06/">June (14)</a></li>
1342
1343 <li><a href="https://people.skolelinux.org/pere/blog/archive/2010/07/">July (12)</a></li>
1344
1345 <li><a href="https://people.skolelinux.org/pere/blog/archive/2010/08/">August (13)</a></li>
1346
1347 <li><a href="https://people.skolelinux.org/pere/blog/archive/2010/09/">September (7)</a></li>
1348
1349 <li><a href="https://people.skolelinux.org/pere/blog/archive/2010/10/">October (9)</a></li>
1350
1351 <li><a href="https://people.skolelinux.org/pere/blog/archive/2010/11/">November (13)</a></li>
1352
1353 <li><a href="https://people.skolelinux.org/pere/blog/archive/2010/12/">December (12)</a></li>
1354
1355 </ul></li>
1356
1357 <li>2009
1358 <ul>
1359
1360 <li><a href="https://people.skolelinux.org/pere/blog/archive/2009/01/">January (8)</a></li>
1361
1362 <li><a href="https://people.skolelinux.org/pere/blog/archive/2009/02/">February (8)</a></li>
1363
1364 <li><a href="https://people.skolelinux.org/pere/blog/archive/2009/03/">March (12)</a></li>
1365
1366 <li><a href="https://people.skolelinux.org/pere/blog/archive/2009/04/">April (10)</a></li>
1367
1368 <li><a href="https://people.skolelinux.org/pere/blog/archive/2009/05/">May (9)</a></li>
1369
1370 <li><a href="https://people.skolelinux.org/pere/blog/archive/2009/06/">June (3)</a></li>
1371
1372 <li><a href="https://people.skolelinux.org/pere/blog/archive/2009/07/">July (4)</a></li>
1373
1374 <li><a href="https://people.skolelinux.org/pere/blog/archive/2009/08/">August (3)</a></li>
1375
1376 <li><a href="https://people.skolelinux.org/pere/blog/archive/2009/09/">September (1)</a></li>
1377
1378 <li><a href="https://people.skolelinux.org/pere/blog/archive/2009/10/">October (2)</a></li>
1379
1380 <li><a href="https://people.skolelinux.org/pere/blog/archive/2009/11/">November (3)</a></li>
1381
1382 <li><a href="https://people.skolelinux.org/pere/blog/archive/2009/12/">December (3)</a></li>
1383
1384 </ul></li>
1385
1386 <li>2008
1387 <ul>
1388
1389 <li><a href="https://people.skolelinux.org/pere/blog/archive/2008/11/">November (5)</a></li>
1390
1391 <li><a href="https://people.skolelinux.org/pere/blog/archive/2008/12/">December (7)</a></li>
1392
1393 </ul></li>
1394
1395 </ul>
1396
1397
1398
1399 <h2>Tags</h2>
1400 <ul>
1401
1402 <li><a href="https://people.skolelinux.org/pere/blog/tags/3d-printer">3d-printer (19)</a></li>
1403
1404 <li><a href="https://people.skolelinux.org/pere/blog/tags/amiga">amiga (1)</a></li>
1405
1406 <li><a href="https://people.skolelinux.org/pere/blog/tags/aros">aros (1)</a></li>
1407
1408 <li><a href="https://people.skolelinux.org/pere/blog/tags/bankid">bankid (4)</a></li>
1409
1410 <li><a href="https://people.skolelinux.org/pere/blog/tags/betalkontant">betalkontant (9)</a></li>
1411
1412 <li><a href="https://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin (12)</a></li>
1413
1414 <li><a href="https://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem (17)</a></li>
1415
1416 <li><a href="https://people.skolelinux.org/pere/blog/tags/bsa">bsa (2)</a></li>
1417
1418 <li><a href="https://people.skolelinux.org/pere/blog/tags/chrpath">chrpath (2)</a></li>
1419
1420 <li><a href="https://people.skolelinux.org/pere/blog/tags/debian">debian (183)</a></li>
1421
1422 <li><a href="https://people.skolelinux.org/pere/blog/tags/debian edu">debian edu (159)</a></li>
1423
1424 <li><a href="https://people.skolelinux.org/pere/blog/tags/debian-handbook">debian-handbook (9)</a></li>
1425
1426 <li><a href="https://people.skolelinux.org/pere/blog/tags/digistan">digistan (11)</a></li>
1427
1428 <li><a href="https://people.skolelinux.org/pere/blog/tags/dld">dld (18)</a></li>
1429
1430 <li><a href="https://people.skolelinux.org/pere/blog/tags/docbook">docbook (30)</a></li>
1431
1432 <li><a href="https://people.skolelinux.org/pere/blog/tags/drivstoffpriser">drivstoffpriser (4)</a></li>
1433
1434 <li><a href="https://people.skolelinux.org/pere/blog/tags/english">english (439)</a></li>
1435
1436 <li><a href="https://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami (23)</a></li>
1437
1438 <li><a href="https://people.skolelinux.org/pere/blog/tags/fildeling">fildeling (14)</a></li>
1439
1440 <li><a href="https://people.skolelinux.org/pere/blog/tags/freeculture">freeculture (34)</a></li>
1441
1442 <li><a href="https://people.skolelinux.org/pere/blog/tags/freedombox">freedombox (9)</a></li>
1443
1444 <li><a href="https://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen (20)</a></li>
1445
1446 <li><a href="https://people.skolelinux.org/pere/blog/tags/h264">h264 (20)</a></li>
1447
1448 <li><a href="https://people.skolelinux.org/pere/blog/tags/intervju">intervju (43)</a></li>
1449
1450 <li><a href="https://people.skolelinux.org/pere/blog/tags/isenkram">isenkram (16)</a></li>
1451
1452 <li><a href="https://people.skolelinux.org/pere/blog/tags/kart">kart (23)</a></li>
1453
1454 <li><a href="https://people.skolelinux.org/pere/blog/tags/kodi">kodi (4)</a></li>
1455
1456 <li><a href="https://people.skolelinux.org/pere/blog/tags/ldap">ldap (9)</a></li>
1457
1458 <li><a href="https://people.skolelinux.org/pere/blog/tags/lego">lego (5)</a></li>
1459
1460 <li><a href="https://people.skolelinux.org/pere/blog/tags/lenker">lenker (8)</a></li>
1461
1462 <li><a href="https://people.skolelinux.org/pere/blog/tags/lsdvd">lsdvd (2)</a></li>
1463
1464 <li><a href="https://people.skolelinux.org/pere/blog/tags/ltsp">ltsp (1)</a></li>
1465
1466 <li><a href="https://people.skolelinux.org/pere/blog/tags/madewithcc">madewithcc (3)</a></li>
1467
1468 <li><a href="https://people.skolelinux.org/pere/blog/tags/mesh network">mesh network (8)</a></li>
1469
1470 <li><a href="https://people.skolelinux.org/pere/blog/tags/multimedia">multimedia (43)</a></li>
1471
1472 <li><a href="https://people.skolelinux.org/pere/blog/tags/nice free software">nice free software (13)</a></li>
1473
1474 <li><a href="https://people.skolelinux.org/pere/blog/tags/noark5">noark5 (23)</a></li>
1475
1476 <li><a href="https://people.skolelinux.org/pere/blog/tags/norsk">norsk (320)</a></li>
1477
1478 <li><a href="https://people.skolelinux.org/pere/blog/tags/nuug">nuug (198)</a></li>
1479
1480 <li><a href="https://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn (40)</a></li>
1481
1482 <li><a href="https://people.skolelinux.org/pere/blog/tags/open311">open311 (2)</a></li>
1483
1484 <li><a href="https://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett (75)</a></li>
1485
1486 <li><a href="https://people.skolelinux.org/pere/blog/tags/personvern">personvern (114)</a></li>
1487
1488 <li><a href="https://people.skolelinux.org/pere/blog/tags/raid">raid (2)</a></li>
1489
1490 <li><a href="https://people.skolelinux.org/pere/blog/tags/reactos">reactos (1)</a></li>
1491
1492 <li><a href="https://people.skolelinux.org/pere/blog/tags/reprap">reprap (11)</a></li>
1493
1494 <li><a href="https://people.skolelinux.org/pere/blog/tags/rfid">rfid (3)</a></li>
1495
1496 <li><a href="https://people.skolelinux.org/pere/blog/tags/robot">robot (16)</a></li>
1497
1498 <li><a href="https://people.skolelinux.org/pere/blog/tags/rss">rss (1)</a></li>
1499
1500 <li><a href="https://people.skolelinux.org/pere/blog/tags/ruter">ruter (7)</a></li>
1501
1502 <li><a href="https://people.skolelinux.org/pere/blog/tags/scraperwiki">scraperwiki (2)</a></li>
1503
1504 <li><a href="https://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet (59)</a></li>
1505
1506 <li><a href="https://people.skolelinux.org/pere/blog/tags/sitesummary">sitesummary (4)</a></li>
1507
1508 <li><a href="https://people.skolelinux.org/pere/blog/tags/skepsis">skepsis (5)</a></li>
1509
1510 <li><a href="https://people.skolelinux.org/pere/blog/tags/standard">standard (73)</a></li>
1511
1512 <li><a href="https://people.skolelinux.org/pere/blog/tags/stavekontroll">stavekontroll (7)</a></li>
1513
1514 <li><a href="https://people.skolelinux.org/pere/blog/tags/stortinget">stortinget (14)</a></li>
1515
1516 <li><a href="https://people.skolelinux.org/pere/blog/tags/surveillance">surveillance (63)</a></li>
1517
1518 <li><a href="https://people.skolelinux.org/pere/blog/tags/sysadmin">sysadmin (5)</a></li>
1519
1520 <li><a href="https://people.skolelinux.org/pere/blog/tags/usenix">usenix (2)</a></li>
1521
1522 <li><a href="https://people.skolelinux.org/pere/blog/tags/valg">valg (9)</a></li>
1523
1524 <li><a href="https://people.skolelinux.org/pere/blog/tags/verkidetfri">verkidetfri (20)</a></li>
1525
1526 <li><a href="https://people.skolelinux.org/pere/blog/tags/video">video (77)</a></li>
1527
1528 <li><a href="https://people.skolelinux.org/pere/blog/tags/vitenskap">vitenskap (4)</a></li>
1529
1530 <li><a href="https://people.skolelinux.org/pere/blog/tags/web">web (42)</a></li>
1531
1532 </ul>
1533
1534
1535 </div>
1536 <p style="text-align: right">
1537 Created by <a href="http://steve.org.uk/Software/chronicle">Chronicle v4.6</a>
1538 </p>
1539
1540 </body>
1541 </html>