vineri, 23 decembrie 2016

Afisaje HDLO-2416 cu 4 caractere alfanumerice din 5x7 puncte fiecare (3)

   Fata de ceasul realiza in articolul anterior, am schimbat modul modul de afisare, dar si posibilitatea de afisare a informatiei in 3 limbi: engleza, romana sau engleza, prin schimbarea unei variabile din sketch-ul HDLO2416_DHT_RTC_adj2.ino:
   Daca se apasa butonul MENIU de intra in modul de reglare, din butonul PLUS se creste valoare actuala a paramentrului, cand ajunge la maxim revine la minim, dupa fixare valoare se trece la parametrul urmator prin apasarea butonului MENIU:
- reglaj ora:
- reglaj minute:
- reglaj an:
- reglaj luna:
- reglaj zi
- reglaj zi din saptamana (1 - luni, 2 - marti, etc):
   Schema de conecate este aceeasi:
   Am facut filmulete pentru a prezenta modul de functionare si reglaj:
   Pentru indicatii in engleza variabila limba trebuie sa aiba valoarea 1, pentru romana valoarea 2, iar pentru germana valoarea 3.

Afisaje HDLO-2416 cu 4 caractere alfanumerice din 5x7 puncte fiecare (2)

   Intr-un articol precedent, am realizat un ceas cu date meteo (umiditate si temperatura) cu date pe afisaje deosebite HDLO-2416. Aceste afisaje le-am primit de la dl. Janos Baricz si din discutii telefonice depsre proiect, am considerat ca e mai bine sa pun si reglaj al orei si al datei.
   Schema de conexiuni este similara celei anterioare, doar ca am adaugat 2 butoane, unul de meniu si unul de crestere valoare:
,
iar afisajele sunt conectate cu un 74HC138 astfel:
   In prima versiune de sketch (HDLO2416_DHT_RTC_adj.ino) modul de prezentare este urmatorul:
  Se prezinta ciclic urmatoarele informatii:
- data si ora:
- temperatura:
- umiditatea relativa:
   Dupa apasarea butonului MENIU se intra in modul de reglaj:
- ora (exemplu: 16, se apasa tasta PLUS, apare 17, se reepta, se ajunge la 23, se mai apasa o data, apare 0, apoi 1, etc, dupa care se apasa pe MENIU si apare meniul urmator)
- minute:
- an:
- luna:
- zi:
    Am facut si un filmulet, numit ceas cu date meteo pe afisaje HDLO-2416 (3) in care se vede modul de afisare si de reglaj:

   Din sketch  se poate selecta limba in care sunt prezentate informatiile, astfel, daca variabila limba = 1 este se selectata limba egleza, iar daca limba = 2 este selectata limba romana.

luni, 19 decembrie 2016

Bradut de Craciun cu leduri (2)

   Fata de articolul anterior (Bradut de Craciun cu leduri) am facut un bradut pe o placa breadboard
de data asta am folosit un carton pe care l-am taiat cu un cutter, iar gaurile le-am dat cu bormasina cu burghiu de 5mm diametru, i-am facut si un suport din carton.
   Am folosit doar leduri recuperate, unele din montaje vechi, altele din "brichete cu luminita", ledurile rosii le-am pus cate 2 in serie si cu o rezistenta de 150-220 ohmi, iar celelalte (verzi, galbene, albe, albastre, etc) sunt inseriate cu rezistente de 220-470 ohmi (cu,m am avut la indemana).
   Circuitul este cam asa:
   Am folosit ultima versiune de sketch de la bradutul anterior, marind numarul de canale de comanda (17 acum: D2-D13 si A0-A5), acum sketch-ul este christmas_tree_17channels.ino.
   Am facut mai multe filme cu bradutul neranjat prea mult:

si apoi cu el "impodobit": 

marți, 13 decembrie 2016

Robotel biped Otto

    Am primit de la Cristian Dorobantescu,  in preajma sarbatorilor de iarna, piesele printate 3D pentru un robotel biped, si anume modelul Otto (ca-s mai multe modele inrudite).
   Piesele au fost printate folosind fisierele din articolul Otto - build you own robot in two hours! de pe Instructables.
   Am descarcat fisierul care contine indicatii de asamblare (OTTO_InstructionManual_V03.pdf) si am comparat cu ce am primit:
 
 
 
 
 
   Dupa ce l-am asamblat provizoriu (cu 3 servo identice si unul diferit, ca asa am avut la indemana, o placa Arduino Nano cu ATmega168 si cablaj adaptor) si am incarcat sketch-ul din articol (OTTO_smooth_criminal.zip) am facut filmuletul Robot Otto - primul test (preliminary test)
   Mi-am dat seama ca solutia de a introduce direct axele servomotoarelor in niste gauri printate nu e buna, asa ca am adaptat tijele care vin cu servomotoarele G9, pentru a sta a trebuie sa ma folosesc de pila si bornmasina.
   In prima etapa am fixat servomotoarele in corp si am fixat cu hosuruburi modelul de brat cu o parte pe picioare, de asemenea, am mai pilit la orificiul pentru conectorul miniusb.
 
 
   Deoarece servomotoarele trebuie sa fie la 90 grade cand se asambleaza, am facut un sketch pentru a ma ajuta la pozitionare (Otto_servo_position_test1.ino), de asemenea, am facut si filmulete, pentru a fi mai usor si altora:
asamblare si teste robot Otto (1)
asamblare si teste robot Otto (1a)
   Dupa asta am conectat si celelalte 2 servomotoare si le-am pus brate cu 2 parti laterale si le-am pozitionat pentru a stii cum e pozitia normala, dupa cum se vede si in filmuletul asamblare si teste robot Robot Otto (2)
   Am trecut la partea de adaptare a talpilor la picioare, pentru asta a trebuit sa si pilesc deoarece peretii talpilor la "glezne" era prea grosi si nu se fixau bine servomotoarele.
   Am facut intai modificarea la una din talpi:
 
si am testat cum sefac miscarile, dupa cum se vede in filmuletul asamblare si teste robot Otto (3)
apoi am facut adaptarea si la cealalta talpa, chiar daca servomotorul diferea un pic:
 
si am facut si filmuletul asamblare si teste robot Otto (3a)
   Dupa asta, am schimbat si servomotorul care era diferit si am asamblat robotelul si am facut un prim filmulet cu el in regula.
    Am facut si filmuletul Robot Otto:
dupa care a fost putin cosmetizat, punaindu-se o gura
si apoi si nas, dar si o gura mai mare:
si a fost din nou facut un filmulet, care se numeste robot Otto (2)
    Am descarcat librariile si sketch-urile de la https://github.com/OttoDIY/OttoDIY, am conectat si senzorul ultrasonic de distanta si am pus sketch-ul Otto_smooth_criminal_ultrasonic.ino modificand o linie sa fie pe modul de dans daca "apare ceva in fata ochilor" deoarece nu voiam sa pun si butoane:
in
   Pentru a incarca acest sketch a trebuit sa pun o placa Arduino nano cu ATmega328 pentru ca nu are loc programul, chiar si asa apra tentionari ca memoria e folosita cam la limita. 
   Bun, am facut si acum un filmulet, numit Robot Otto (3)
    Deoarece mi-a placut mai mult dansul anterior, am implementat la sketch-ul anterior partea de senzor ultrasonic (cum am prezentat in articolul Senzorul ultrasonic de distanta HC-SR04 si Arduino)
si observand ca in pauza daca nu se opreste exact cum trebuie e o zona cand cel putin un motoras de pe servo "bazaie" ca nu e la pozitia exacta, asa ca in asteptare le-am dezactivat folosind functia detash():
   De asemenea, am pastrat configuratia din schema originala
deci schema ramane aceeasi (eu nu am buzzer-ul pus si nici baterii, momentan):
  Sketch-ul meu este Otto_smooth_criminal_ultrasonic.ino si in filmuletul Robot Otto (4) se vede cum functioneaza:

   Cam asta e pentru moment...