hello.py
print "Hello world !"
debarm:~# python hello.py
Hello world !
print "Hello world !"
debarm:~# apt-get updateProbleme le ping vers internet ne marche pas sur la carte.
debarm:~# apt-get install g++
#include
using namespace std;
int main(int argc, char *argv[]) {
cout << "Hello world !" << endl;
return 0;
}
debarm:~# g++ hello.cc -o hello
debarm:~# ./hello
Hello world !
#includeInstaller gcc, mais normalement il est déjà présent.
int main(void) {
printf("Hello world !\n");
return 0;
}
debarm:~# apt-get updateCompiler et executer
debarm:~# apt-get install gcc
debarm:~# gcc hello.c -o helloEn ce qui me concernet j'ai 2 gcc de dispo.
debarm:~# ./hello
Hello world !
# pour voir ce qui est configuré
git config --list
# mettre à jour son repository local en fonction du remote "origin"
git pull
# voir le statut de GIT.
git status
GIT TRUC ET ASTUCE
REM ***** BASIC *****
Sub Main
End Sub
sub code
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "CharBackgroundExt"
args1(0).Value = false
dispatcher.executeDispatch(document, ".uno:CharBackgroundExt", "", 0, args1())
rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "Bold"
args2(0).Value = true
dispatcher.executeDispatch(document, ".uno:Bold", "", 0, args2())
rem ----------------------------------------------------------------------
dim args3(2) as new com.sun.star.beans.PropertyValue
args3(0).Name = "FontHeight.Height"
args3(0).Value = 10
args3(1).Name = "FontHeight.Prop"
args3(1).Value = 100
args3(2).Name = "FontHeight.Diff"
args3(2).Value = 0
dispatcher.executeDispatch(document, ".uno:FontHeight", "", 0, args3())
rem ----------------------------------------------------------------------
dim args4(4) as new com.sun.star.beans.PropertyValue
args4(0).Name = "CharFontName.StyleName"
args4(0).Value = ""
args4(1).Name = "CharFontName.Pitch"
args4(1).Value = 1
args4(2).Name = "CharFontName.CharSet"
args4(2).Value = -1
args4(3).Name = "CharFontName.Family"
args4(3).Value = 0
args4(4).Name = "CharFontName.FamilyName"
args4(4).Value = "Courier New"
dispatcher.executeDispatch(document, ".uno:CharFontName", "", 0, args4())
end sub
The roster
Electric Technic Motor 9V Lugnet Partsref 2838c01, Peeron 2838c01, Lego 74569 The older 9V Technic motor (1990). Ungeared, it has a high rotation speed and low torque, so for most applications it requires an external gear reduction. | |
Electric Technic Micromotor Lugnet Partsref 2986, Peeron 2986, Lego 70823 Appeared in 1993, this small, light weight motor turns slowly and offer low torque - but respectable torque for its size. Must be used generally with pulley, top andbase, but other motion transmissions are possible (see examples by Brian Sadowsky, with a 16t gear/clutch or a pin joiner) | |
Electric Technic Mini-Motor 9v Lugnet Partsref 71427c01, Peeron 71427c01, Lego 71427 Since 1997, this motor replaces 2838. Geared down and quite efficient, this is the motor of choice for most applications. | |
Electric Technic Mini-Motor 9v Lego 43362 In 2002, Lego replaced 71427 motor with a new type, 43362. Externally almost identical, its internal structureis very different. Performances are almost as good, and its weight is much lower. | |
Electric RC Race Buggy Motor Introduced in 2002, this motor appeared with 8475 RC Race Buggy. Very powerful, it also consumes a lot of energy. Not recommended for use with a RCX which can't deliver the current needed by this beast. The innermost shaft hole is geared up by a 23/17 factor. Only the outermost output is tested below. | |
Electric Technic Motor 9V Geared This motor was first included in 4094 Motor Moversset (2003). Provides an axle hole with friction, allowing to choose axle length without the need of an extender. Flat bottom allowing easy mounting. | |
NXT motor This motor is specific to the NXT set (2006). Includes a rotation encoder, returning to the NXT the position of the shaft with 1° resolution. Because of the special connector of this motor (non-standard phone plug type), a cable adapter is required to drive this motor with regular 9V sources. Not recommended for use with a RCX which can't deliver the high current that this motor can consume. Slow rotation speed, minimizing the need of external gear train. | |
Power Functions Medium motor This motor belongs to a new range of motors and control elements introduced in 2007, the Power Functions. It uses a new 4 pins 9V connector that provides permanent 9V supply to control elements as well as controlled power to the motors (compatibility with old 9V system is built in extension cords). The Medium motor has holes for studless constructions as well as 6x2 bottom plate. | |
Power Functions XL motor Big brother of Power Functions Medium motor, it provides a lot of mechanical power. Actuated by the same core as NXT motors, it rotates slightly faster (less internal gear reduction). Mounting is done through several pin holes. | |
9V Train motor Stefan Vorst measured performances of the 9V Train motor. The results are below. | |
RC Train motor This motor was introduced when LEGO stopped the 9V train with metal tracks. The performances of this motor are... not so good. | |
Power Functions Train motor As the train system unifies with Power Functions, this motor , equipped with a PF cable and connector, replaces the RC train motor. Fortunately the performances are much improved, with an efficiency and power even exceeding the old 9V train motors. | |
Power Functions E-motor Introduced with LEGO Education Renewable Energy Add-On Set (9688), the strong point of this motor is that it can be easily back-driven and used as a generator. Its high speed may be also useful in some applications. But its efficiency is no better than PF-Medium, and delivered mechanical power is about half. |
Weight
|
|
|
|
|
|
48g | 10g | 42g | 28g | 55g | 40g |
|
|
|
|
|
|
|
80g | 31g | 69g | 72g | 53g | 57g | 50g |
No-load characteristics
Test conditions: motor is powered by a variable, regulated power supply. An ammeter measures current flowing through the motor, a voltmeter monitors tension across. The rotation speed is measured by a RCX equipped with a light sensor, looking at an half-white/half black cylinder.
9 V supply |
|
|
|
|
|
|
Stalled torque | 0.85 N.cm | 1.6 N.cm | 6 N.cm | 5.5 N.cm | 12 N.cm | 6 N.cm |
Stalled current | 700 mA | 80 mA | 360 mA | 340 mA | 3.2 A | 580 mA |
9 V supply |
|
|
|
|
|
|
|
Stalled torque | 50 N.cm | 11 N.cm | 40 N.cm | 2.8 N.cm | 1.7 N.cm | 3.6 N.cm * | 3.4N.cm |
Stalled current | 2 A | 850 mA | 1.8 A | 950 mA | 750 mA | 1.3 A * | 410 mA |
1.Download ardublock-all.jar ArduBlock
2. In Arduino IDE, open menu “Arduino” -> “Preferences”
3. Find “Sketchbook location:”
The drawers of ArduBlock are divided into 6 different categories.
Control blocks are for program flow control
These blocks provide access to computational data
These blocks provides operators for logical and mathematical computation
These blocks provide access to utilities functions provided by Arduino platform
These blocks provide more intuitive access to electronic bricks system.
This drawer probably needs a better name. The blocks here provide I/O access to Arduino Pins
The block below basically represent the “Hello World” of Arduino Programming mapping to the code fragments
if (digitalRead(1) == HIGH) { digitalWrite(2, HIGH); }
Multiple events on the same pin should be support by defining multiple events on the same pin. It seems that a good visual grouping of the same pin would be a good thing and improve readability of the program.
The OpenBlocks come with a pretty cool annotation system to add comments to block. This could be leveraged to enhance the readability of the program.
The analog I/O handling should work the same way as the digital one.
Doing conditional statements with Pin. The Pin 3 is identified with color in the ‘if’ statement. Maybe a label on it will work better.
Since Clojure is used as programming language to drive the ArduBlock, it seems that it pushes my design of the block language to have more functional programming favor. It may be a good thing to make program more straight forward to understand and to program. But really need to guard against the tunnel vision.
Since I am using a rule engine in a project right now, I may also be influenced by that. I see all these blocks laying out conditions to trigger actions. It may be worth a while to see if a small Reta Algorithm can be easily implemented in Arduino to handle the rules layout by the blocks. This seems to be a nature way to design a run time for this language.
The first design is of course to follow the Arduino Language Reference closely. However, the resulting block language seems to be a bit too “verbose?” Or should I say “busy” since it’s really a graphical representation of the textual program. Here is a sample of what it looks like for the equivalence of codes here.
void setup() { pinMode(1, INPUT); pinMode(2, OUTPUT); } void loop() { if (digitalRead(1) == HIGH) { digitalWrite(2, LOW); } }
Since the block language is targeted at the beginner of Arduino and programming, most of time, we talk about “When the button on pin 1 is pushed, I want the LED on pin 2 to light up.” There is a much natural way to map this statement into an intuitive block language by building the blocks around the pin. Here is how it may look like:
This language is more concise and easier to understand. The language itself should provide enough meta info to infer the setup codes. However, in order to do this, the language may need a little runtime (OS?) to be compiled along with the Sketch but it seems to be worth the effort.
The OpenBlocks codes I am playing around with the idea is available at my openblocks on github. Appreciate any feedback on this.
source: