This week's assignment consists of creating a personal site describing my final project.
It may sound as a set phrase, but the problems that have to be faced by the first world population are not the same as the ones of the third world. In fact, many of the solutions and approaches developed in (and for) the first world are not suitable for underdeveloped countries or even developing countries.
Neonate children are very sensitive to their surroundings climate changes, that's why they need a lot of attention, especially on their first few days of life. This issue is specially important when we talk about premature children.
In Europe, U.S.A. or any other of the first world countries, the society has access to incubators and medical personnel to ensure they have the needed attention for their children. Unfortunately in third world countries many children die because of the absence of this basic cares.
Nowadays some low cost incubator approaches can be found on the Internet, but most of them don't meet the necessary conditions to provide a good care. That's why I decided (in junction with the FabLab Madrid CEU) to create a low cost incubator approach inspired on all the prototypes found on the internet and with the knowledge of medical personnel.
The name of the incubator I expect to build is In3. This incubator aims to be a MVP at the end of the semester, but as it will probably need more development, it will have to be a solid foundation for future developers.
P.S. the upper right image is supposed to be a hieroglyph of the project name.
The incubator to be built must meet some characteristics:
The structure of the incubator must be robust, but usability can't be forgotten. One important characteristic is that it should be easily built and repaired in third world countries without having much knowledge about 3D design or electronics.
In the initial design I will use inexpensive materials such as wood, plastic as well as recycled components, for example old computer fans.
One of the characteristics is that the bed has to be able to be tilted slightly. That will be probably adjusted manually by medical staff (it could also be regulated using an engine, but let's prioritize).
Another problem that must be faced is the isolation of the incubator. This characteristic will avoid, for example, mosquito bites and the spread of some diseases to the child. But it will also make more difficult the design of the structure, because the interior of the incubator must be easily accessible to medical staff. In conclusion, it should have holes (as can be seen in the diagram), but those must be covered by something that is easily removable.
Finally, as not every child needs the same attentions, different legs for the incubator box have been sketched.
The incubator must, at least, have the necessary sensors and executors to maintain some basic conditions inside the incubator, such as temperature and humidity.
All those sensors will be connected to a microprocessor (the model is yet to be defined) using printed circuits and wires inside the incubator.
Last but not least, the brain of the incubator should be programmed to regulate the incubator conditions. For example, if the temperature raises above 37ºC or falls below 33ºC a heater or a cooler (probably a fan) should be activated.
While I was studying Telecommunication Engineering and Computer Engineering (6 years) I worked as a trainee and as a freelance developing websites and mobile applications. During that period of time I started writing all the code using simple text editors, such as nano, vim or Notepad avoiding [if possible] the existing frameworks to learn the basics of what I was doing. A few months later I started learning how to use professional IDE and some third party libraries.
The other thing to be taken into consideration is the version controlling system. To be honest, despite of having used several programs for this purpose, such as: SVN, CVS, Git, Fossil or Team Foundation Server; I've never used Mercurial, which makes this the perfect opportunity to learn a new system.
For the last few years, my preferred version control system has is Git. In order to manage Git repositories I use both, the command line or SourceTree (an incredible simple GUI tool) depending on the situation. I have noticed that SourceTree can manage Mercurial repositories. Taking into consideration that the first few trials were successful, I will give it a chance and combine its usage with the command line for the next few months.
Installing Mercurial on OSX was pretty straightforward. It can be done executing just one command:
~$ brew install mercurial
Once installed I added the ssh keys to be able to authenticate in the repository and download the european repo:
~$ mkdir .ssh
~$ mkdir .ssh/keys
~$ mv academy .ssh/keys
~$ mv academy.pub .ssh/keys
~$ chmod go-rw .ssh/keys/academy
~$ chmod go-rw-r--r-- .ssh/keys/academy.pub
Then, I have to configure the remote host for the repository. The file must be called "config":
~$ vi ~/.ssh/keys/config
And its content should be:
Now it is time to clone the repository (it can be done anywhere we want):
~$ hg clone -e "ssh -p 846 -i ~/.ssh/keys/academy" ssh://[email protected]/academy.2015/Web/eu europe
We want to identify ourselves in every commit/push we perform, so we must edit the file "./europe/.hg/hgrc" adding the following information:
[ui] username = name surname
ssh = ssh -p 846 -i ~/.ssh/keys/academy -C [hooks] changegroup = hg update >&2
From now on, we can pull and push data using commands like the ones listed below: