Wednesday, June 26, 2013

June 26 Multiple constructions with 1 NXT

What if a student wants to do have stations, but only has 1 NXT? For example where 1 robot does something and another to delivers or picks-up the material or product.

Background: The IEC 61499 tutorial assumes users have access to popular Lego NXT set. Some may be able to work in teams using multiple NXT sets together or with another device (RaspberryPi or CBCv2) so -between communication between devices can be used. 

But what if alone with just 1 NXT?
So here are suggestions for mini-robots to get the most out of 1 NXT set.

For example a windmill that grinds grain.  The Stomper alone could be used to create a Press example. Sensors are not included here, but can easily be added to control via sensor state.

Additionally a 1 motor robot (forwards/backwards only) to deliver or pick-up a product. Note the cable can interfere with how well the car goes straight forward and back to the same place.
This windmill is a combination Clinton Blackmore's Windmill and Stomper constructions.

Mini-car should be able to be constructed just from these pictures.
1 Motor Mini-Robot Car
Mini-Robot Car parts
See simple Building Ideas by Clinton Blackmore for these and other simple constructions to build on.

Saturday, June 15, 2013

June 15 RPi as BrickPi

Let's combine using Lego Mindstorms (LMS) and Raspberry Pi for hardware option for running IEC61499.

See this Kickstarter campaign for the BrickPi!   which is 60x over its goal. Still 1 day to go.

There are also instructions online to build your own BrickPi via open Hardware (links on right)
Judging from the backing this will be popular very quick.

For the tutorial it would allow those already with popular Lego Mindstorms and low-price popular Raspberry Pi and low cost BrickPi board use.

Best to use another board to run motors with RPi, so why not BrickPi and use Lego NXT motors and also get use of the Lego sensors.

Side Note: CBCv2 has been supported in release version of 4DIAC since Sept. 2012.
The CBC motors and sensors if available also work well with RPi !


Sunday, June 9, 2013

June 6 ARM7 compilers

[Back to LMS=Lego(TM) Mindstorms (TM) NXT with ARM7 inside]

We have been and currently are still using the GNU ARM toolchain with OpenOCD. (see other posts)
For a long time we have looked at other compilers to see if it would help make the FORTE footprint smaller. Especially looking for a way to try using thumb instructions.  Various tries did not work. ARM GNU looks like they have a now have t-arm-elf version.

This post will be used to document what we find out.

For a start a link collection:




Tuesday, May 28, 2013

May 28 Loopback adapter now


Using loopback adapter fixed some firewall issues in the past so install loopback adapter and will see if helps with RPi firewall issues.

Setting up loop back device with Windows 7...
Similar but slightly different to: Mar.15 Setting uploop back device post
  • Open Device Manager 
  • Right click on computer name
  • chose add legacy hardware
  • Next
  • Chose add manually
  • Chose Network adapters
  • Chose Microsoft and Loopback adapter

Tuesday, April 30, 2013

Apr. RPi+forte

A first apps using RPi work using wiringPi interface with forte.
This should help Arduino community get onboard faster.

Update (again): wiringPi is under LGPL . 4DIAC under EPL. Told "as long as you only link against an dynamic library (.so) and don't copy their code (i.e., only use their headers) it should be ok."

Picture will be added... doing more testing and working on course. Video in next post.
[Using breadboard with 220 Ohm resistors and 8 LEDs, usually red]


System model
Note: IP address is LAN IP address of the device.


Tired of blinky... here is an app to test LED on various RPi Pins:



Thursday, April 4, 2013

Apr.4 4DIAC Communication

The 4DIAC-IDE downloads the FBs to the device to start the application.
However Java does run will on RPi so downloading from Laptop using Publish/Subscribe.
First  simple test is X+3 TestApplication distributed with 4DIAC via the workspace.

[NEXT: DIO (digital input/output) SIFB for RPi]

X+3 TestApplication 

Distributed with 4DIAC via the workspace
2 Devices: 
PC for VISualisation; 
MICROCONTROLLER to do the CALCulation remotely.
  1. Laptop displays Input / Output in frame via FBDK
  2. Request published to RPi Subscribe
  3. RPI will do the calculation of X+3
  4. Result published to Laptop Subscribe
  5. Laptop displays result

ApplicationTest as-is assumes the same computer is used for both devices.
Want two physically different devices on a LAN: Laptop and RaspberryPi
System Configuration with Devices
[Update: using 224.x.x.x IP address was needed due firewall restrictions, 
regular LAN device IP address will normally work fine.] Broadcast IP address 224.0.1.1: worked for both Publish and Subscribe to RPi.
IP address use must be included in class.  (typo for MICROCONTROLLER corrected 4/5 2:30PM in Vienna)
Test Results with various Publish/Subscribe Broadcast IP addresses




Multicast References: 

Mar.27+ RPi LED SIFB

Update 4/4/12 

  • wiringPi code example for a blinky works.
  • Code used in a DIO (Digital Input/Output) SIFB compiles.
    • Publish/Subscribe problem currently. See next Post for details.
  • Neil Higgins got a Blinky from forte working! 
    • See 4DIAC / FORTE on Rasperry Pi in 4DIAC Open Discussion
    • Our set-ups are different, so both will be instructional.
      • not using wiringPi,
      • uses Gertboard
Mar.27+ Notes

  • RPi Cross compile - hello world
    • dev environment and cross-compiler install
    • Eclipse properities set-up 
      • See notes at bottom of post
    • communication set-up for testing (TODO)
  • Blinking an LED with C
    • Install of WiringPi (includes git-core)
      • Install and build on RPi
      • Install only on cross-compile computer
        • Need for includes for compiles
        • Copy the installed wiringPi from RPi to cross-compile computer (TODO)
Notes:
Blinking an LED with C - cross compile with wiringPi
http://hertaville.com/2012/09/28/development-environment-raspberry-pi-cross-compiler/
see Stephan questions and answers


RPi Cross-compilearm-linux-gnueabihf-g++

Development Environment for the Raspberry Pi using a Cross Compiling Toolchain and Eclipse Posted on September 28, 2012 by halherta

For Eclipse properties C/C++ General -> Paths and Symbols set-up I found it useful (for copy/paste) to list the files needed :
Includes
$HOME/raspberrypi/tools/arm-bcm2708/gcc-linaro-arm-gnueabihf-raspbian/
1 arm-linux-guneabihf/include
2 arm-linux-guneabihf/libc/usr/include
3 lib/arm-linux-guneabihf/4.7.2/include-fixed
4 lib/arm-linux-guneabihf/4.7.2/include
5 lib/arm-linux-guneabihf/4.7.2/finclude


Library paths
$HOME/raspberrypi/tools/arm-bcm2708/gcc-linaro-arm-gnueabihf-raspbian/
1 arm-linux-guneabihf/lib
2 arm-linux-guneabihf/libc/lib
3 arm-linux-guneabihf/libc/lib/arm-linux-guneabihf
4 lib/gcc/arm-linux-guneabihf/4.7.2
5 libexec/gcc/arm-linux-guneabihf/4.7.2