FABACADEMY GRADUATIONS
Fab academy 2009-2010 Graduates
First year of Fab Academy was a success and we congratulate all the graduates.
The ceremony was held in Amsterdam during Fab6 and unfortunately not all the graduates were able to attend the ceremony.
I was asked to prepare a speech on why i choose to be a Fab Academy student this year and one great lesson she learned from her year in the Academy.
speech attached
Below are pictures from the ceremony
Add a comment October 19, 2010
COMPLETION OF THE FINAL PROJECT
Tshepiso busy on the charger circuit
Circuits boards ready for mounting
Battery charger circuit, battery and a tranformer
This circuit charges the battery from ac power
Conty working on the last touch_ups of the structure
Final Product
This project was build using the epilog laser cutter from the mobile fablab.
Add a comment July 15, 2010
Working on the final project
Tshepiso holding the soccer pitch for the stadium
Conty holding the soccer pitch for the stadium
Tshepiso fitting the projectors into the pitch
Conty putting glue into the pitch
Projectors into the pitch
Add a comment June 10, 2010
Step1 to the final product
The first step was to edit the LCD program as we decided to use the LCD circuit from the hello world circuit. The editted program is attached below:
; hello.LCD.44.asm
;
; LCD hello-world
;
; Fab Academy Final Project
; fabsosh 2010
;
;
.include “tn44def.inc”
;
; definitions
;
.equ DB7 = PA0
.equ DB6 = PA2
.equ DB5 = PA1
.equ DB4 = PA3
.equ E = PA5
.equ RS = PA4
;
; registers
;
.def lcdbyte = R16
.def temp = R18
.def temp1 = R19
.def temp2 = R20
.def temp3 = R21
;
; code segment
;
.cseg
.org 0
rjmp reset
;
;
;
;
;############
;
.equ count = 255
delay:
ldi temp1, count
delay_loop1:
ldi temp, count
delay_loop:
dec temp
brne delay_loop
dec temp1
brne delay_loop1
ret
;
;
;############################
; long_delay
; delay before redraw
;
.equ long_delay_time = 100
long_delay:
ldi temp1, long_delay_time
long_delay1:
ldi temp2, long_delay_time
long_delay2:
ldi temp3, long_delay_time
long_delay3:
dec temp3
brne long_delay3
dec temp2
brne long_delay2
dec temp1
brne long_delay1
ret
;
; lcd_delay
; delay between commands
;
.equ lcd_delay_time = 100
lcd_delay:
ldi temp1, lcd_delay_time
lcd_delay1:
ldi temp2, lcd_delay_time
lcd_delay2:
dec temp2
brne lcd_delay2
dec temp1
brne lcd_delay1
ret
;
; lcd_putchar
; put character in lcdbyte
;
lcd_putchar:
;
; set RS for data
;
sbi PORTA, RS
;
; output high nibble
;
cbi PORTA, DB7
sbrc lcdbyte, 7
sbi PORTA, DB7
cbi PORTA, DB6
sbrc lcdbyte, 6
sbi PORTA, DB6
cbi PORTA, DB5
sbrc lcdbyte, 5
sbi PORTA, DB5
cbi PORTA, DB4
sbrc lcdbyte, 4
sbi PORTA, DB4
;
; strobe E
;
nop
sbi PORTA, E
nop
cbi PORTA, E
;
; wait
;
rcall lcd_delay ; can be shorter
;
; output low nibble
;
cbi PORTA, DB7
sbrc lcdbyte, 3
sbi PORTA, DB7
cbi PORTA, DB6
sbrc lcdbyte, 2
sbi PORTA, DB6
cbi PORTA, DB5
sbrc lcdbyte, 1
sbi PORTA, DB5
cbi PORTA, DB4
sbrc lcdbyte, 0
sbi PORTA, DB4
;
; strobe E
;
nop
sbi PORTA, E
nop
cbi PORTA, E
;
; wait and return
;
rcall lcd_delay ; can be shorter
ret
;
; lcd_putcmd
; put command in lcdbyte
;
lcd_putcmd:
;
; clear RS for command
;
cbi PORTA, RS
;
; output command bits
;
out PORTA, lcdbyte
;
; strobe E
;
nop
sbi PORTA, E
nop
cbi PORTA, E
;
; wait and return
;
rcall lcd_delay
ret
;
; lcd_init
; initialize the LCD
;
lcd_init:
;
; power-up delay
;
rcall lcd_delay
;
; initialization sequence
;
ldi lcdbyte, (1 << DB5) + (1 << DB4)
rcall lcd_putcmd
ldi lcdbyte, (1 << DB5) + (1 << DB4)
rcall lcd_putcmd
ldi lcdbyte, (1 << DB5) + (1 << DB4)
rcall lcd_putcmd
;
; 4-bit interface
;
ldi lcdbyte, (1 << DB5)
rcall lcd_putcmd
;
; two lines, 5×7 font
;
ldi lcdbyte, (1 << DB5)
rcall lcd_putcmd
ldi lcdbyte, (1 << DB7)
rcall lcd_putcmd
;
; display on
;
;; clr lcdbyte
;; rcall lcd_putcmd
;; ldi lcdbyte, (1 << DB7) + (1 << DB6) + (1 << DB5)
;; rcall lcd_putcmd
;
;
;
;;;;;;;;;;;;;;;;;;;;;;;;; cursor on & blinking
clr lcdbyte
rcall lcd_putcmd
ldi lcdbyte,$0f ; blinking cursor
rcall lcd_putcmd
;
; entry mode
;
clr lcdbyte
rcall lcd_putcmd
ldi lcdbyte, (1 << DB6) + (1 << DB5)
rcall lcd_putcmd
ret
;
; lcd_print
; print a null-terminated string
;
lcd_print:
lcd_print_loop:
lpm
mov lcdbyte, R0
cpi lcdbyte, 0
breq return
rcall lcd_putchar
adiw zl, 1
rjmp lcd_print_loop
return:
ret
;
; strings to print
;
line_1:
.db “Hello the world “,0
line_2:
.db “2010 it’s here”,0
line_3:
.db “Welcome to”,0
line_4:
.db “South Africa”,0
line_5:
.db “Opening game”,0
line_6:
.db “MEX vs RSA”,0
line_7:
.db “Fell it!!!!”,0
line_8:
.db “it is here!!!”,0
;
; reset routine
;
reset:
;
; set stack pointer to top of RAM
;
ldi temp, high(RAMEND)
out SPH, temp
ldi temp, low(RAMEND)
out SPL, temp
;
; init I/O pins
;
cbi PORTA, DB7
sbi DDRA, DB7
cbi PORTA, DB6
sbi DDRA, DB6
cbi PORTA, DB5
sbi DDRA, DB5
cbi PORTA, DB4
sbi DDRA, DB4
cbi PORTA, E
sbi DDRA, E
cbi PORTA, RS
sbi DDRA, RS
;
; init LCD
;
rcall lcd_init
;
; main loop
;
main:
;
; go to zero position
;
clr lcdbyte
rcall lcd_putcmd
ldi lcdbyte, (1 << DB5)
rcall lcd_putcmd
;
; print first line
;
ldi zl,low(line_1*2)
ldi zh,high(line_1*2)
rcall lcd_print
;
; move to second line
;
ldi lcdbyte, (1 << DB7) + (1 << DB6)
rcall lcd_putcmd
clr lcdbyte
rcall lcd_putcmd
;
; print second line
;
ldi zl,low(line_2*2)
ldi zh,high(line_2*2)
rcall lcd_print
rcall delay
;
;
clr lcdbyte
rcall lcd_putcmd
ldi lcdbyte, (1 << DB4)
rcall lcd_putcmd
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@
;
; go to zero position//////////
;
clr lcdbyte
rcall lcd_putcmd
ldi lcdbyte,(1 << DB5)
rcall lcd_putcmd
;
; print first line
;
ldi zl,low(line_3*2)
ldi zh,high(line_3*2)
rcall lcd_print
;
; move to second line
;
ldi lcdbyte, (1 << DB7) + (1 << DB6)
rcall lcd_putcmd
clr lcdbyte
rcall lcd_putcmd
;
; print second line
;
ldi zl,low(line_4*2)
ldi zh,high(line_4*2)
rcall lcd_print
rcall delay
;
;
clr lcdbyte
rcall lcd_putcmd
ldi lcdbyte, (1 << DB4)
rcall lcd_putcmd
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
;
; go to zero position
;
clr lcdbyte
rcall lcd_putcmd
ldi lcdbyte, (1 << DB5)
rcall lcd_putcmd
;
; print first line
;
ldi zl,low(line_5*2)
ldi zh,high(line_5*2)
rcall lcd_print
;
; move to second line
;
ldi lcdbyte, (1 << DB7) + (1 << DB6)
rcall lcd_putcmd
clr lcdbyte
rcall lcd_putcmd
;
; print second line
;
ldi zl,low(line_6*2)
ldi zh,high(line_6*2)
rcall lcd_print
rcall delay
;
;
clr lcdbyte
rcall lcd_putcmd
ldi lcdbyte, (1 << DB4)
rcall lcd_putcmd
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
;
; go to zero position
;
clr lcdbyte
rcall lcd_putcmd
ldi lcdbyte, (1 << DB5)
rcall lcd_putcmd
;
; print first line
;
ldi zl,low(line_7*2)
ldi zh,high(line_7*2)
rcall lcd_print
;
; move to second line
;
ldi lcdbyte, (1 << DB7) + (1 << DB6)
rcall lcd_putcmd
clr lcdbyte
rcall lcd_putcmd
;
; print second line
;
ldi zl,low(line_8*2)
ldi zh,high(line_8*2)
rcall lcd_print
rcall delay
;
;
clr lcdbyte
rcall lcd_putcmd
ldi lcdbyte, (1 << DB4)
rcall lcd_putcmd 0p-=
; pause
;
;
; clear display
;
clr lcdbyte
rcall lcd_putcmd
ldi lcdbyte, (1 << DB4)
rcall lcd_putcmd
;
; repeat
;
rjmp main
Add a comment June 8, 2010
FAB ACADEMY FINAL PROJECT
FAB ACADEMY FINAL PROJECT PROPOSAL
SOCCER STADIUM
INTRODUCTION
We as the fab academy students from South Africa we decided to collaborate on the projects and build a soccer stadium as the world cup is coming to South Africa in the next few weeks and we all have the fever for soccer.
When we were thinking on what to do for the final project we asked ourselves the following questions
- Its 2010 what can we do?
- The world cup is coming to South Africa and what can we do in the fablab that can show that we also support the world cup?
- What is that that we can do that will be a combination of what we have learnt throughout the semester of fab academy?
- Print T- Shirts, ok may build a stadium with Perspex and add some electronics on it?
And we finally got our answer a soccer stadium.
THE IDEAL PICTURE
We will build the structure with Perspex which will be a combination of computer-aided design, manufacturing, and modeling, computer-controlled cutting, molding and casting , and add the light intensity controlled lights which will switch on when it is dark and we hope that we will succeed on the sound as we want to add the vuvusela sound as we South African a soccer match without a vuvusela is not a match which will fall under digital fabrication principles and practices, electronic design and production, computer controlled machining, embedded programming, sensors, actuators and displays.
Add a comment June 7, 2010
Hello world!
Welcome to WordPress.com. This is your first post. Edit or delete it and start blogging!
1 comment February 10, 2010


















