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

Fab academy speech

 

Below are pictures from the ceremony

 

 

 

 

 

 

Add a comment October 19, 2010

Add a comment August 9, 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

The front panel

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

Conty working on the design

Tshepiso holding the soccer pitch for the stadium

Conty  holding the soccer pitch for the stadium

Projectors into the machine

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

LCD CIRCUIT

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

  1. Its 2010 what can we do?
  2. 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?
  3. What is that that we can do that will be a combination of what we have learnt throughout the semester of fab academy?
  4. 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

Soccer-City

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.

stadium cross-section

Add a comment June 7, 2010

welcome to fabsosh

our new fablab

Add a comment February 21, 2010

Hello world!

Welcome to WordPress.com. This is your first post. Edit or delete it and start blogging!

1 comment February 10, 2010

Pages

Categories

Links

Meta

Calendar

February 2012
M T W T F S S
« Oct    
 12345
6789101112
13141516171819
20212223242526
272829  

Most Recent Posts

 
Follow

Get every new post delivered to your Inbox.