The Democratic Republic of Congo, our country, like the rest of the African continent is in a period of reconstruction and affirmation. Kinshasa is the first city in the world where road traffic is regulated by a rolling robot. This invention, the work of a Congolese engineer is commissioned around the world and proves that the African, placed in optimal conditions, can surprise the world in the field of technology. However, the DRC suffers from a glaring lack of technological infrastructure. Students in telecommunications or engineering are not always in touch with the content of their courses. A material problem whose persistence is a fatal blow on the mental plane thus limiting the creative genius of more than one.
Ideas have legs. It is advisable, to this day, to ask if this joke is not gone! Nowadays, ideas are turning into reality at a super sonic speed. In the field of football, innovations such as the goal line technology or the Var are still astonishing. Maradona may not have been successful with the famous hand of God, Ghana would have been the first African nation to reach the last four in a World Cup (the hand of Suarez as the ball had crossed the line) if there had been these innovations. All these gadgets and other applications that land every year in our homes only confirm that the assertion that ideas can not be stopped, in the same way that the field of creativity can not be limited.
Our fablab pursues among others the objective of meeting the needs of customization of the needs of the populations of Central Africa in general and of the DRC in particular, a finality: to create an ideal environment for the blooming of the Congolese and African creative genius. An opportunity to push the ideas of each other as far as possible. Thus, the Masslow scale can undergo a modification. It is no longer enough to be socially comfortable enough to satisfy one's needs for self-fulfillment. Thanks to Kdc fablab, a physiological need can be customized taking into account the purchasing power of our peoples.
I am a Congolese citizen with a degree in Networks and Telecommunications from the Arab University of Sciences from Tunis and certified Cisco IT Management, I have made the telecommunication and technology sector the essence of my life.
To my credit, many internships including the most important at Tunisie Telecom
and at Vodacom DRC.
My experience at Tunisie Telecom, the Tunisian and Maghrebian giant in the telephony sector
security, subscriber access management, and automatic configuration of network hardware through an application
was my first real contact with telecom and advanced technology.
And at Vodacom DRC, the leader in the world of telecommunication in Africa allowed me to enter the heart
of their system by performing the link budget through PATHLOSS, the latter facilitating simulations
in an area to be covered and presenting more information about the obstacles that may be encountered on an existing site or to create
To create my own FabLab in DRC and to become a node of Fab Academy
Find the craftsman you need
To give a general idea about my final project
My final project is to create a home automation to facilitate family life and optimize the resource.
Home automation is a building specialty that combines techniques to control, automate and program the habitat.
It is a recent discipline resulting from the application to the habitat of computer programming.
The word "domotics" is used recently in the language and is a contraction of the words domus (home in Latin) and the suffix "tick" associated with the technique.
The tasks associated with home automation in the home concern electrically powered technical devices.
The goal is to allow the occupant of the house a remote manipulation in order to control installed system
Make a web site
git branch develop
git push -u origin develop
$ git flow init
Initialized empty Git repository in ~/project/.git/
No branches exist yet. Base branches must be created now.
Branch name for production releases: [master]
Branch name for "next release" development: [develop]
How to name your supporting branch prefixes?
Feature branches? [feature/]
Release branches? [release/]
Hotfix branches? [hotfix/]
Support branches? [support/]
Version tag prefix? []
$ git branch
* develop
master
git checkout develop
git checkout -b feature_branch
git flow feature start feature_branch
Conception 2D, 2.5D and 3D.
Laser Cutter Design
Feature | Measured |
---|---|
Power | 60 to 80 W |
Speed | 8mm/s |
Tubes lasers | Waveguide CO2 |
Marking zone | 1000* 1500 mm |
Speed and power control | 80 % depending de material you use |
Cooling mode: | Cooling by circulation of water |
Width: | Accepts materials from two to 27.5 inches wide |
---|---|
Mechanical Resolution: | 0.0005 |
Speed | up to 20 inches per second |
Power: | Maximum strength of 250 grams |
Materials: | vinyl, paint mask, reflective vinyls, twill, heat transfer and |
Software included | Roland CutStudio |
Cooling mode: | Cooling by circulation of water |
PCB fabrication
Components | Feature | Quatity |
---|---|---|
microcontroller | ATtiny85 | 1 |
Pinheader | 2x3 2,54mm | 1 |
Diodes Zener | 3.3V or 3.6V | 2 |
Résistor | 49 Ω | 2 |
Résistor | 499 Ω | 2 |
Résistor | 1KΩ | 2 |
Solder JUMPER | - | 1 |
Capacitor 1206 | 100 nF | 1 |
LED | - | 2 |
Pin | Arduino uno | ATtiny85 |
---|---|---|
RESET | Pin 10 | Reset Pin |
MOSI | Pin 11 | Pin 0 |
MISO | Pin 12 | pin 1 |
SCK | Pin 13 | pin 2 |
int LED = 0;
void setup() {
// initialize digital pin LED as an output.
pinMode(LED, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(LED, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(LED, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
Create a 3D design
Drawing a circuit board
Using CNC
Program your board to do something
Attribute | Value |
---|---|
Série: | ATtiny44 |
Data bus width: | 8 bits |
Heart: | AVR |
Clock frequency max : | 20 MHz |
RAM : | 256 Bytes |
Operating Supply Voltage: | 2.7V - 5.5V |
Pin | Arduino uno | ATtiny 44 |
---|---|---|
RESET | Pin 10 | Reset Pin |
MOSI | Pin 11 | Pin 0 |
MISO | Pin 12 | pin 1 |
SCK | Pin 13 | pin 2 |
// ArduinoISP
int led = 1;
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin 13 as an output.
pinMode(1, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(1, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(1, LOW); // turn the LED off by making the voltage LOW
delay(200); // wait for a second
}
Design a mold around
Measure Something
Arduino UNO |
ATmega328P |
---|---|
10 | RESET (PC6) |
11 | MOSI (PB3) |
12 | MISO (PB4) |
13 | SCK (PB5) |
#include
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup(){
Serial.begin(9600);
irrecv.enableIRIn();
irrecv.blink13(true);
}
void loop(){
if (irrecv.decode(&results)){
Serial.println(results.value, HEX);
irrecv.resume();
}
}
#include
int IR_Recv = 8; //IR Receiver Pin 2
int LED = 13;
IRrecv irrecv(IR_Recv);
decode_results results;
void setup(){
Serial.begin(9600); //starts serial communication
irrecv.enableIRIn(); // Starts the receiver
pinMode(LED, OUTPUT); // sets the digital pin as output
}
void loop(){
//decodes the infrared input
if (irrecv.decode(&results)){
long int decCode = results.value;
Serial.println(results.value);
//switch case to use the selected remote control button
switch (results.value){
case 16720605: //when you press the Red button
digitalWrite(LED_R, HIGH);
break;
case 16738455 : //when you press the 1 off button
digitalWrite(LED_R, LOW);
break;
irrecv.resume(); // Receives the next value from the button you press
}
delay(10);
}
Add an output device to a microcontroller board
Arduino UNO |
ATmega328P |
---|---|
10 | RESET (PC6) |
11 | MOSI (PB3) |
12 | MISO (PB4) |
13 | SCK (PB5) |
#include
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup(){
Serial.begin(9600);
irrecv.enableIRIn();
irrecv.blink13(true);
}
void loop(){
if (irrecv.decode(&results)){
Serial.println(results.value, HEX);
irrecv.resume();
}
}
#include
int IR_Recv = 8; //IR Receiver Pin 2
int LED = 13;
IRrecv irrecv(IR_Recv);
decode_results results;
void setup(){
Serial.begin(9600); //starts serial communication
irrecv.enableIRIn(); // Starts the receiver
pinMode(LED, OUTPUT); // sets the digital pin as output
}
void loop(){
//decodes the infrared input
if (irrecv.decode(&results)){
long int decCode = results.value;
Serial.println(results.value);
//switch case to use the selected remote control button
switch (results.value){
case 16720605: //when you press the Red button
digitalWrite(LED_R, HIGH);
break;
case 16738455 : //when you press the 1 off button
digitalWrite(LED_R, LOW);
break;
irrecv.resume(); // Receives the next value from the button you press
}
delay(10);
}
Propose a final project masterpiece
TASK | PROCESS |
---|---|
Walls | 2D and 3D (Laser Cutter) |
Satshakit Board | Electronic Design and Electronic Production, Network and Communication, Embeded Programming |
Bluetooth Module | Interface and Application Programming |
PIR Module | INPUT and OUTPUT |
design, build, and connect wired or wireless node(s) with network or bus addresses
HC-05 |
Module Satshakit |
---|---|
RX | TX |
TX | RX |
VCC | 3.3 - 5V |
Gnd | Gnd |
#include
void setup() {
Serial.begin(9600);
pinMode(13, OUTPUT);
}
void loop()
{
if(Serial.available()){
while(Serial.available())
{
char inChar = (char)Serial.read(); //Lire l'entrée
inputString += inChar; //Construit une chaine de caractére a partir des caractére reçus
}
Serial.println(inputString);
while (Serial.available() > 0)
{ junk = Serial.read() ; }
if(inputString == "a"){ //Dans le cas ou l'entrée est 'a' la LED s'allume
digitalWrite(13, HIGH);
}else if(inputString == "b"){ //Dans le cas ou l'entrée est 'b' la LED s'eteint
digitalWrite(13, LOW);
}
inputString = "";
}
}
}
design a machine that includes mechanism, actuation and automation
Material Used | Hardware Used |
---|---|
Caton | Geared Mortor |
bottle tops | Bench power supply |
glue stic | |
Straw | - |
sticks | - |
Scissor | - |
Write an application
Satshakit Board | Bluetooth Module |
---|---|
Pin(Tx1) | RXD |
Pin(Rx1) | TXD |
Vcc (+5V) | VCC |
Pin13 | - |
GND | GND |
Design and produce something with a digital fabrication process
Home Automation
Tools |
Techniques |
---|---|
Laser Cutter Epilog | 2D & 3D design |
3D WOX | 3D printing |
Roland MonoFab | Elecronic production |
Eagle Autodesk | Electronics design |
123D | Computer controlled cutting |
Embedded programming | |
Input devices | |
Output devices | |
Network and Telecommunication | |
Interface and application Programming |
Arduino UNO |
ATmega328P |
---|---|
10 | RESET (PC6) |
11 | MOSI (PB3) |
12 | MISO (PB4) |
13 | SCK (PB5) |
#include
int IR_Recv = 2; //IR Receiver Pin 8
int relay = 3; // choose the pin for the RELAY
IRrecv irrecv(IR_Recv);
decode_results results;
void setup(){
Serial.begin(9600); //starts serial communication
irrecv.enableIRIn(); // Starts the receiver
digitalWrite (relay, HIGH);
}
void loop(){
//decodes the infrared input
if (irrecv.decode(&results)){
long int decCode = results.value;
Serial.println(results.value);
//switch case to use the selected remote control button
switch (results.value){
case 16720605: //when you press the OK is ON button
digitalWrite (relay, LOW);
break;
case 16738455 : //when you press 0 is off button
digitalWrite(relay,HIGH);
break;
irrecv.resume(); // Receives the next value from the button you press
}
delay(10);
}
int led = 5; // the pin that the LED is atteched to
int sensor = 8; // the pin that the sensor is atteched to
int state = LOW; // by default, no motion detected
int val = 0; // variable to store the sensor status (value)
void setup() {
pinMode(led, OUTPUT); // initalize LED as an output
pinMode(sensor, INPUT); // initialize sensor as an input
Serial.begin(9600); // initialize serial
}
void loop(){
val = digitalRead(sensor); // read sensor value
if (val == HIGH) { // check if the sensor is HIGH
Serial.println("Mot!");
digitalWrite(led, HIGH); // turn LED ON
delay(5000); // delay 100 milliseconds
digitalWrite(led, LOW);
if (state == LOW) {
Serial.println("Motion detected!");
state = HIGH; // update variable state to HIGH
}
}
}
int LED_G = 3;
int LED_R = 2;
int state = 0;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(relay, OUTPUT);
pinMode(LED_R, OUTPUT);
pinMode(LED_G, OUTPUT);
digitalWrite(LED_R, LOW);
digitalWrite(LED_G, LOW);
digitalWrite (relay, HIGH);
}
void loop() {
// put your main code here, to run repeatedly:
if(Serial.available() > 0){ // Checks whether data is comming from the serial port
state = Serial.read(); // Reads the data from the serial port
}
if (state == '0') {
digitalWrite(relay,HIGH);
Serial.println("FAN: OFF"); // Send back, to the phone, the String "LED: ON"
state = 0;
}
else if (state == '1') {
digitalWrite(relay,LOW);
Serial.println("FAN: ON");
state = 0;
}
else if (state == '2') {
digitalWrite(LED_G, HIGH);
Serial.println("LED_G: ON");
state = 0;
}
else if (state == '3') {
digitalWrite(LED_G, LOW);
Serial.println("LED_G: OFF");
state = 0;
}
else if (state == '4') {
digitalWrite(LED_R, HIGH);
Serial.println("LED_R: ON");
state = 0;
}
else if (state == '5') {
digitalWrite(LED_R, LOW);
Serial.println("LED_G: OFF");
state = 0;
}
}