Helmut Wunder

Forum Replies Created

Viewing 15 posts - 16 through 30 (of 92 total)
  • Author
    Posts
  • in reply to: benchmark test: HaWe brickbench – for C# / Mono? #4973
    Author Image
    Helmut Wunder
    Participant

    ps, forgot:
    visualization of cam object detection :

    in reply to: benchmark test: HaWe brickbench – for C# / Mono? #4969
    Author Image
    Helmut Wunder
    Participant

    hey,
    thank you for contributing!
    By these benchmarks now Mono/C# reached a new highscore !
    😎

    ps, BTW:
    here are 3 examples where graphic screen output was needed:

    Astar: http://www.mindstormsforum.de/viewtopic.php?f=70&t=6619&p=55745&

    Speech recognition: http://www.mindstormsforum.de/viewtopic.php?f=70&t=6386&p=53924

    PID regulation tuning: http://www.mindstormsforum.de/viewtopic.php?f=25&t=7521&p=62137#p61930

    • This reply was modified 10 years, 1 month ago by Author ImageHelmut Wunder.
    in reply to: I2C communication PCF8574AP #4887
    Author Image
    Helmut Wunder
    Participant

    honestly, I think only one of the Mono devs can help. Or try Java instead…?

    I also once wanted to start with Mono for an i2c device ( a Microinfinity inertial Gyro) but unfortunately got no help here in this forum so I had to abandon using Mono so far.

    in reply to: I2C communication PCF8574AP #4881
    Author Image
    Helmut Wunder
    Participant

    about the technical details of i2c I don’t know more than I already told you, and the Mono code is far too complicated for me to understand, so what you are actually doing in your C# source is far beyond me.
    My skills just fit to use NXC and Sketch C.
    In Sketch C I just have to use wire.write() and wire.read(),
    and for display output I just use Serial.write() or TextOut() –
    that’s it, and that’s why I can use both NXC and Sketch (and no Mono at all).
    So for Mono you would need professional Mono helpers 😉

    in reply to: I2C communication PCF8574AP #4871
    Author Image
    Helmut Wunder
    Participant

    hi,
    you don’t need to address a register for R/W (it’s just register 0 then) –
    maybe this helps:

    I2C Interface

    I2C communication with this device is initiated by a master sending a start condition, a high-to-low transition on the SDA I/O while the SCL input is high.
    After the start condition, the device address byte is sent, most-significant bit (MSB) first, including the data direction bit (R/W).
    This device does not respond to the general call address.
    After receiving the valid address byte, this device responds with an acknowledge, a low on the SDA I/O during the high of the acknowledge-related clock pulse.
    The address inputs (A0–A2) of the slave device must not be changed between the start and the stop conditions.

    The data byte follows the address acknowledge. If the R/W bit is high, the data from this device are the values read from the P port. If the R/W bit is low, the data are from the master, to be output to the P port.
    The data byte is followed by an acknowledge sent from this device. If other data bytes are sent from the master, following the acknowledge, they are ignored by this device. Data are output only if complete bytes are received and acknowledged.

    this is the (quite simple) NXC Code you might have a look at (it reads single muxed sensors, passed by it’s number “input”; nevertheless, you might also read and return the whole bitpattern by 1 reading instead of course for quicker readings :

    
    int ReadPCF8574(char PCF8574Port, byte PCF8574ID, char input)
    {
        byte cnt = 0x02;
        byte I2CMsg[];
        byte inbuf[];
        byte Address = PCF8574ID;
        byte nByteReady = 0;
        int  result = -1;
        int loop;
    
        ArrayBuild(I2CMsg, Address);
        Wait(8);
        while (loop == STAT_COMM_PENDING)
        {
              loop = I2CStatus(PCF8574Port, nByteReady);
        }
    
        if (I2CBytes(PCF8574Port, I2CMsg, cnt, inbuf))
        {
            result = inbuf[1];
        }
    
        if( result == (result | (1<<input-1)) )
        {
           result = 0;
        }
        else
        {
           result = 1;
        }
    
        if(result==-1){
         TextOut(0, LCD_LINE1, "Error: Check the");
         TextOut(0, LCD_LINE2, "   connection!");
         Wait(500);
         ClearScreen();
        }
        return result;
    }
    
    • This reply was modified 10 years, 2 months ago by Author ImageHelmut Wunder.
    in reply to: benchmark test: HaWe brickbench – for C# / Mono? #4806
    Author Image
    Helmut Wunder
    Participant

    hi Vlad,
    a very good job – I’m honored to see that you took the challenge for completing the benchmark test!
    as I wrote already here…: http://www.monobrick.dk/forums/topic/lcd-extensions/#post-4805 😉

    in reply to: Lcd extensions #4805
    Author Image
    Helmut Wunder
    Participant

    nice to see that the spirit of my ideas, my visions, and my challenging benchmark test leads the Mono team to new frontiers, growth, prosperity, and customer success.

    😀

    For further enhancements, don’t hezitate to contact me –
    heading for new shores !!

    😎

    in reply to: benchmark test: HaWe brickbench – for C# / Mono? #4788
    Author Image
    Helmut Wunder
    Participant

    hi,
    are there updates by the latest C#/Mono release plus missing display benchmarks ?

    in reply to: 4GB image does not fit on SD-card #4768
    Author Image
    Helmut Wunder
    Participant

    as the EV3 flash got just 256 kB – for what purpose is a 4GB SD image designed for anyway?
    Does it affect the performance opposite to, e.g., a 1 GB image?
    As I only got 16GB SDHC cards – would there be a meaningful use for the unused space?

    in reply to: Convenient IDE for Mono C# for EV3 needed! #4731
    Author Image
    Helmut Wunder
    Participant

    yes, maybe that’s the point – I really do have issues working with OOP by programs like Java or C# – I’m used to program procedural, no local, no private, no encapsulated ones, just ANSI C-like, everything public and global.
    Just by these ANSI C functions I also once wrote my neural nets for the NXT and my chess robot move generator.

    The OOP issues probably for those 100000 different classes and platforms also are one the reasons why I don’t get along with all those features of your IDEs which confuse me –

    nevertheless, using Sketch C/C++ I dont’ have problems using the very simple stripped-down Sketch IDE, even for C++ objects. 😉

    in reply to: benchmark test: HaWe brickbench – for C# / Mono? #4726
    Author Image
    Helmut Wunder
    Participant

    hi,
    here I listed the current most updated results:
    http://www.mindstormsforum.de/viewtopic.php?f=71&t=8095&start=60#p64772

    and this is where I listed my ANSI C reference code for EV3 (gpp C/C++ plus John Hansen’s BricxCC brickOS API):
    http://www.mindstormsforum.de/viewtopic.php?f=71&t=8095&start=60#p64494

    subsequently you can find different other programming platforms (partially some benchmark parts missing):
    NXC code for NXT: code by myself,
    C/C++ nxtOSEK code for NXT: ported by Martin Aumair,
    RobotC code for NXT and EV3: ported by Xander Soldaat,
    Java/leJOS code for NXT and EV3: ported by Andy Shaw
    C#/Mono code for EV3: ported by Vlad Ruzov
    Sketch C code for Arduino Due: ported by “ArduFe”

    • This reply was modified 10 years, 3 months ago by Author ImageHelmut Wunder.
    in reply to: Convenient IDE for Mono C# for EV3 needed! #4725
    Author Image
    Helmut Wunder
    Participant

    sorry Anders, I should have made this issue more clear:
    I (and people I know) don’t need the full potential of the .Net framework.

    We only want to program autonomous robots which are playing games (e.g., chess or cube solvers), or find ther way through labyrinths or even detect patterns by neural nets – and maybe have a USB connection to a 2nd or a 3rd brick for daisy-chaining.

    For the EV3 I’ll never have the intention to access websites, send emails, and even make the robot post to Facebook – I even would never (!!) use .Net framework and/or Visual Studio if I ever tried to do that on my PC (and also no one else I know personally).
    So we also never would use monster IDEs like Visual Studio or Eclipse for either purpose (and Xamarin actually looks very similar).

    So as any PC or Website programming (or even other targeted platforms) of Visual Studio to us are just useless confusing ballast which obscures the view to sensor and motor and EV3 system API functions, we just needed 1 single file to be compiled and uploaded to the Lego brick by a simple stripped IDE.

    in reply to: benchmark test: HaWe brickbench – for C# / Mono? #4630
    Author Image
    Helmut Wunder
    Participant

    the code distributed with RC 4.10 which you have linked to is probably the 3.62 NXT version – is this correct?

    // hw brickbench
    // benchmark test for NXT
    // PL: ROBOTC 3.62 for NXT

    The EV3 version should be for the 4.10 EV3 version instead.
    Is there a 2nd benchmark file additionally?
    The EV3 version is supposed to have a firmware-based shellsort or quicksort routine which might be up to 100x faster.

    in reply to: benchmark test: HaWe brickbench – for C# / Mono? #4629
    Author Image
    Helmut Wunder
    Participant

    (edited)
    thank you!
    about the 4.25 samples files this is correct, it’s probably then on Xander’s homepage.
    It actually was not meant to be distributed with RobotC releases because this is a commercial product.
    Private distribution for private purposes of course is ok.

    in reply to: benchmark test: HaWe brickbench – for C# / Mono? #4624
    Author Image
    Helmut Wunder
    Participant

    hi Vlad,
    I’ll add what you reported to the spreadsheet!
    (actually Xamarin is not quite “small and made-to-measure” though, IMO, compared to BricxCC, RobotC, or the Sketch IDE)

    About RobotC, I’m curious where the code is to be found.
    As I don’t use it – can you please post the benchmark sourcecode here please or link to a zip file instead?
    I don’t have access to the file.
    Is it still part of the 4.25 RobotC example files?

    thanks for your input!
    Helmut

Viewing 15 posts - 16 through 30 (of 92 total)
Posted in

Make a donation