joi, 6 februarie 2014

Physical Weather Widget


Hello

This is my entry for Office Gadget Competition proposed by TechWeek Europe.

Besides using RaspberryPi and Arduino, I also like to use and build mechanical stuff. So, my idea is to make an electro-mechanical gadget powered by RaspberryPi + Arduino + some extra hardware, to show weather condition, temperature, wind speed and direction.

This system will use RaspberryPi to read weather information from a weather API, for example Yahoo Weaher API or Weather Underground API, parse this information with a Python script and send commands to Arduino to set servo positions. Servos will move board indicators for various weather elements as you will see below.

Here is an example of how this widget may look. The widget look could be changed by user as long as servos output shafts places are taken into consideration or servos places are changed according to desired scenario.



Below is the schematic and a possible placement of components. 

For display of Day/Night is used a disk sector driven by a servo with a Sun and a Moon printed on.

For weather condition display is used a disk made from clear plastic or other light material with good mechanical strength, with drawings/pictures of different weather conditions glued to it. This disk is also driven by a servo.  Day/Night disk and Weather Condition disk are overlapped with the last one on top.

Servos are used also for Temperature, Wind Speed and Wind Direction indicators.


In order to work, this system need power and internet access, using RaspberryPi onboard LAN connector or an USB wireless adapter.

Bellow is an approximate Bill Of Materials selected from RS shop.

Raspberry Pi                                                 1
Arduino Uno                                                 1
TinkerKit sensor shield                                  1
Micro servo                                                  6
USB Hub                                                      1
Ethernet Cable                                               1
Power supply RPi                                          1 - may be removed if USB Hub have a good power supply
Power supply Arduino                                   1
USB Micro cable                                          1
Delrin spur gear - 1.0 module 45 teeth           2 *see comment
Delrin spur gear - 1 module 15 teeth              2 *see comment
Clear plastic sheet                                         1 - can be replaced with other suitable material.
Wood/plastic/aluminium, cardboard, paper, glue, wires, etc. - for making the frame to support all                  components.

* Usual servos have approximately 180deg. movement from side to side, so additional gears are necessary to have full 360 deg. rotation for some of the dials.

luni, 25 februarie 2013

-=eXplorer=- - Partea I


Povestea robotului -= eXplorer=- a inceput in septembrie 2009 cand am descoperit Arduino. Datorita usurintei cu care se programeaza si a marii cantitati de informatii de pe internet, dezvoltarea a fost foarte rapida.

Prima varianta a avut drept sasiu o cutie goala de CD-uri. Propulsia era asigurata de 2 servouri standard modificate pentru rotatie continua la care am montat o pereche de roti de 45mm. Pentru modificarea servourilor am folosit tutorialul de aici – http://www.acroname.com/robotics/info/ideas/continuous/continuous.html

A treia roata, cea din spate se misca liber.






Pentru conectarea simpla a servourilor, micro-intrerupatoarelor si alimentarii am realizat un shield, pe care langa fiecare pin al Arduino am adus si pini de alimentare, in stilul Roboduino. Ideea a fost buna, pentru ca ulterior mi-a fost foarte usor sa alimentez senzorii optici de proximitate. Totusi, pentru cine vrea un shield profi, merita o vizita aici.

Pentru detectia obstacolelor am folosit 2 mustati de sarma care actionau cate un micro-intrerupator. In functie de contactul inchis, robotul mergea inapoi si schimba directia de mers.

Alimentarea generala era asigurata de 3 celule Li-Ion, urmate de un stabilizator de tensiune de 5V. Alimentarea placii Arduino se facea cu un cablu USB modificat, direct in mufa USB.


Aceasta varianta a mai avut si un senzor de orientare spre o sursa de lumina. Senzorul era format din 2 fotorezistente plasate pe lateralele robotului si orientate inspre inainte. Orientarea spre sursa de lumina se facea prin masurarea tensiunii pe cele 2 fotorezistente si orientarea robotului a.i. tensiunile sa se egalizeze.

Pentru actionarea servourilor folosesc libraria servo.h. Este foarte usor de folosit dar precizia este destul de scazuta. In anumite situatii trebuie modificate valorile de zero ale servourilor cu rotatie continua, pentru ca acestea sa ramana oprite.

Mustatile au fost grozave pentru prima varianta de detectie a obstacolelor, dar aveau destule minusuri. Ba erau prea flexibile, ba nu erau destul de flexibile, ba se agatau, etc. Bantuind netul, am vazut ca tot omul care tine la imaginea propriului robot il doteza cu detectie optica a obstacolelor. Peste multitudinea de solutii DIY par sa se afirme o mare varietate de senzori IR produsi de SHARP.

Pana la sosirea senzorilor Sharp si avand o vadita inclinatie spre DIY am zis sa-mi incerc mana confectionandu-mi proprii senzori. Am folosit pentru asta trei perechi de LED-uri ultrabright + fotorezistori montate in blocuri de lemn. Datorita tehnologiei de constructie folosite – in bucatarie, pe genunchi la 1 noaptea, senzorii au iesit destul de voluminosi si nu le-am mai prea gasit locul pe sasiul si asa destul de inghesuit.

Asa ca am trecut la realizarea unui nou sasiu mai spatios.

Pentru propulsie am folosit aceleasi 2 servouri standard modificate pt rotatie continua si dotate cu roti folosite la aeromodelism, din cauciuc microporos de 85 mm. In partea din spate, sasiul se sprijina pe o roata cu miscare libera. Am ales roti mai mari din cauza ca in varianta cu rotile de 45mm viteza de deplasare era foarte mica.
Alimentarea este asigurata de un pack Litiu-Polimer cu 2 celule de 1300mA. Am modificat si schema de alimentare a electronicii si servourilor. Arduino este alimentat direct din pack prin mufa dedicata de alimentare, servourile si senzorii sunt alimentate separat printr-un regulator de 5V conectat la pinii shield-ului.

Si cateva poze pt a ilustra aspectul si pozitionarea senzorilor.





sâmbătă, 11 decembrie 2010

Intalnire Tehnorama la Timisoara

Duminica 5 decembrie, a avut loc in sala B520 din cadrul Universitatii POLITEHNICA Timisoara, Facultatea de Automatica si Calculatoare prima editie a intalnirilor Tehnorama Timisoara.
Am avut placerea sa intalnesc echipa Tehnorama, impreuna cu alti pasionati ai roboticii din Timisoara. I-am vazut in actiune pe neobositul Mr. CD-BOT care a patrulat laboratorul pe toata durata intalnirii, tancul lui Viorel, controlat wireless, sofisticatul SCORPION realizat de fratii Ionica, controlat deocamdata infrarosu si hexapodul gazdelor, care navigheaza autonom folosind un senzor PING.
A fost prima "iesire in lume" pentru -=eXplorer=- , care si-a facut bine treaba, culegand bile si ocolind obstacole.
Intalnirile grupului Tehnorama Timisoara vor avea loc din doua in doua saptamani, urmatoarea intalnire fiind programata pe 17 decembrie.