The lab in May needs Lego constructions to be programmed using IEC 61499.
http://www.nxtprograms.com/ projects are a good starting place to look for models to program with IEC 61499. A modified NXT Robot Arm will be used in the May lab. Today built, modified, and tried 2 more nxtprogram projects. The Peg Sorter will also work for a quick lab exercise. Turning "Forklist" needs modification and may not be ready for May lab.
NXT Forklist that turns like NXT Robot Arm
So today modified the NXT Forklist to turn in circle like the NXT Robot Arm and go up and down. Only still need to go in and out and putting on a "car" may be the easiest solution.
NXT Peg Sorter
This construction uses a light sensor and 2 motors.
Modified so the peg pusher can be returned to it beginning "open" position.
Possible problem, if the motor stops, so white pegs are not free to fall through.
Need to test. Possibly change construction slightly.
Tuesday, April 10, 2012
Monday, March 26, 2012
Mar.26 Mechanical arm and claws
Looks like the first lab exercise is changing from the line follower to a mechanical arm because another institute deals with moving robots and automation. At the moment it seems the need for hysteresis controller is gone.
Main Task: Using IEC61499 and the Lego robot claw arm grab an object and drop into boxes of various heights.
Use step-wise refinement:
1. Motor movements (up/ down; open/close; right/left)
2. Safety shut-off: Stop with touch indicates down
3. Do something:
3a. Grab ball
3b. Go up with ball
3c. Move to right or left with ball
3d. Release ball in a box
4. Do all steps in 3 together:
4a. using switches
4b. Automatically
Advanced task: (from NXTprograms Robot Arm) Exchange two balls.
The NXTprograms Robot Arm is used as the base design.
It used 3 motors:
Added for the lab:
Main Task: Using IEC61499 and the Lego robot claw arm grab an object and drop into boxes of various heights.
Use step-wise refinement:
1. Motor movements (up/ down; open/close; right/left)
2. Safety shut-off: Stop with touch indicates down
3. Do something:
3a. Grab ball
3b. Go up with ball
3c. Move to right or left with ball
3d. Release ball in a box
4. Do all steps in 3 together:
4a. using switches
4b. Automatically
Advanced task: (from NXTprograms Robot Arm) Exchange two balls.
The NXTprograms Robot Arm is used as the base design.
It used 3 motors:
- circling (left/right)
- up/down
- open/close of a claw
Added for the lab:
- LED for indicator
- Touch sensor on arm attached to the claw motor to know when the robot arm is down
- NXTprograms Robot Arm 4 prong claw with 2 prongs fixed
- simple
- fixed in one position on one side
- 3 Prong Claw (not sure original author)
- NXT Claw Car with Game Controller - NXT Programs steps 25-32
LEGO MINDSTORMS NXT Build Instructions 3-prong Claw
- 4 Prong Claw with full motion (land version of our team's waterbotics claw in Jan.)
- must be fixed on the side, so doesn't move
- uses gear train
Monday, March 12, 2012
Mar.12 Intro to IEC61499 try 2
Installation distracts from explaining IEC61499
Installation: Using the Quick set-up from the Fordiac DevWiki
- German and English versions have different things, not just different order
- with cygwin - chose a fast mirror .... its slow and is the bottleneck
- often sooo long it end, but faster second time
- posix make doesn't work if they forgot cygwin\bin and/or cmake
\bin in path - test in command window if bash and cmake work
- forte import using hg seemed to confuse both more than expected.
- German version is much different than English, although both ways work.
- German assumes you are using the development version of everything
- English assume you get a version of IDE and Forte somewhere and says what to do with it.
- Probably a how to get and hg for beginners section or link is needed
- Got through SystemTest start
- And forte compile - hopefully later today
Tuesday, March 6, 2012
March 6 State-of -art 1499 tutorials
- Holobloc tutorial explains the concepts
- http://www.ece.auckland.ac.nz/~vyatkin/publ/IES_Mag_1499.pdf
- +Book V. Vyatkin, IEC 61499 Function Blocks for Embedded and Distributed Control Systems Design. USA: ISA-o3neida, 2012
- NxtStudio (has graphical view)
- Book R. Lewis, Modelling control systems using IEC 61499: applying function blocks to distributed systems, Institution of Electrical Eng, 2001.
- http://ie.rutgers.edu/resource/research_paper/paper_05-017.pdf
Looked ISA books - nothing recent Vyatkin and Zoitl
Googled: teaching event programming:
Teaching Event Driven Programming and State Machines related to Pearson online
Cleanroom programming related to white-box / black box programming
Thursday, February 16, 2012
Feb.16 Tacho Motor Encoder
Need interrupts to count the degrees from the tachometer in the motor.
If I understand right this is typically done by quad-code,
where the signal changes indicated how much the motor has turned.
Following are just good references found for now.
The links will be needed for references if really help:
googled "quad-code for beginners" since that what I am.
If I understand right this is typically done by quad-code,
where the signal changes indicated how much the motor has turned.
Following are just good references found for now.
The links will be needed for references if really help:
googled "quad-code for beginners" since that what I am.
- NI's Encoder Measurement: How-To Guide
- NI's Quadrature Encoder Fundamentals
- Encoder Measurments: How-To Guide
- see Figure 5. X1 Encoding for how signal looks
- fpga4fun see Quadrature Decoder
- fpga = field programable gate array
Reviewing existing motor code:
motorAvrSetPwrBrake(cyg_uint32 pa_nOutputPort, cyg_int32 pa_nPercent, int pa_nBrake)
- pa_nPercent is:
- passed in as 32 bits, but ...
- assigned to a 8 bit variable
- sizes should match
- ditto for pa_nBrake
- Also check for motor power between -100 and 100 should be in avr code. If in FB code, a new FB code could forget the check and bad data be sent.
Wednesday, February 15, 2012
Feb.15 Flip-Flop Tutorial 1st trial
Time to start testing the tutorials (text only - video coming)
Round 1
0. Pre-test and Brief IEC61499 overview
Used combination of James Christensen's (AZ has permission) and Alios Zoitl's foils and book figures.
1. Existing TestSystem supplied with the release version of 4DIAC
Not everything was installed, so finished on my laptop. Changes made to 4DIAC 1.1 version
(post-test 1) Understood it was event driven and the key models /views.
2. Flip-Flop tutorial using various ways to apply IEC61499 concepts and 4DIAC features to create a flip-flop. (WIll be long because repeat application ~5 ways)
Today. Finished install of forte and updated the Quick set-up page
Made it through creating the Flip-Flop application with existing block, but did not start System Configuration (time after set-up 1 hour)
Details update notes below.
Next: 2b.Flip-Flop using LMS as the target.
1. Existing tutorial system
Quick-set-up page has not been reviewed probably in a year:
Changed so building Posix and other targets are in different sections now.
It would be good if there were links to set-up for other targets as they are added.
Flip-Flop tutorial:
Summary:
Round 1
0. Pre-test and Brief IEC61499 overview
Used combination of James Christensen's (AZ has permission) and Alios Zoitl's foils and book figures.
1. Existing TestSystem supplied with the release version of 4DIAC
Not everything was installed, so finished on my laptop. Changes made to 4DIAC 1.1 version
(post-test 1) Understood it was event driven and the key models /views.
2. Flip-Flop tutorial using various ways to apply IEC61499 concepts and 4DIAC features to create a flip-flop. (WIll be long because repeat application ~5 ways)
Today. Finished install of forte and updated the Quick set-up page
Made it through creating the Flip-Flop application with existing block, but did not start System Configuration (time after set-up 1 hour)
Details update notes below.
Next: 2b.Flip-Flop using LMS as the target.
1. Existing tutorial system
Quick-set-up page has not been reviewed probably in a year:
Changed so building Posix and other targets are in different sections now.
It would be good if there were links to set-up for other targets as they are added.
Flip-Flop tutorial:
Summary:
- It easy to miss details a beginner doesn't know
- Video will hopefully help it go a bit faster
- IEC61499 concepts need to pointed out when used
- Didn't know to open into the System
- nor how to open System view
- Interesting since both file > new system and so is file > new application are from the menu bar, didn't even know he was in the wrong place at first.
- System creation is followed by Import
- add intro text because beginner thinks they need to both create and import system.
- When asked:
- yes a video would be faster
- yes reading can be so slow you want to take a nap.
- IDE feedback when looking for existing FBs:.
- Without a FB search how should a beginner be told to look for existing FBs without having to explain alot more!?
- need a FB search in FB palette
- Was previously told this was planned, but no feature request - so added one
- What are the differences between using F_AND and E_SWITCH to make a Flip-flop?
- Why would a Elec.Eng. think to use an E_SWITCH without being told, since they using gates?
- E_SWITCH description is confusing
- Needs a next or back at the bottom of a section -didn't know where to go at end of a section.
- IEC61499 things seen: Answered: INIT/INITO
- Tried to connect E_SWITCH.OUT to both QI and IN of the "LED" FB at first
Feb.15 Adaptors explained well
Today adaptors were explained to me and a real example with a mechanical BotBall Lego arm shown. Maybe oversimplified, but in summary:
Adaptors are like:
Interfaces because they are used within other FBs
Connectors because they can be used on the input or mirrored on the output of a FB
Their example opened questions about whether the LMS FB interfaces are really 1499 enough?
The LMS FBs are SIFBs so no ECCs, but light calibration and line follower application could be.
Adaptors are like:
Interfaces because they are used within other FBs
Connectors because they can be used on the input or mirrored on the output of a FB
Their example opened questions about whether the LMS FB interfaces are really 1499 enough?
- When should REQ and data inputs be used to set state like dir(ection).
- When should an event like FWD / BK be used to set the direction state internally.
- In part when the event will cause a state change.
- Is it 1499 like enough, if the Event Control Chart has to look at the event && data for transition?
The LMS FBs are SIFBs so no ECCs, but light calibration and line follower application could be.
Subscribe to:
Posts (Atom)