miercuri, 27 decembrie 2017

3d Printing documents

Cam tot ce vreți sa știți despre imprimatele 3D găsiți pe pagina din linkul de mai jos:
3d-printing-documents

Am extras câteva linkuri pe care am reusit sa le deschid:
3DPrintingPaperPublicKnowledge.pdf
chopper.pdf
3D-Printing-Guide.pdf
3DPrintingBookletforBeginners.pdf

3d-printing-metal

Linux - Instalare server FTP pentru Tinkerboar Armbian

Instalare Server FTP:
sudo apt-get update && sudo apt-get upgrade -y
sudo apt-get install vsftpd -y

Configurare de baza:
sudo nano /etc/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
force_dot_files=YES
Salvare: Ctrl+X, Y și Enter

Dezactivare user root:
sudo nano /etc/ftpusers
#root
Salvare: Ctrl+X, Y și Enter

Restart server FTP:

sudo service vsftpd restart

Teatru radiofonic si arhiva TVR, câteva linkuri pentru pasionați ...

Teatru radiofonic:
teatrulamicrofon.blogspot.ro
SAMMedia Tv

Din arhiva TVR:

Arhiva TVR

Linux - Comenzile de bază

Linux Commands - Command Description
cat [filename] Display file’s contents to the standard output device
(usually your monitor).
cd /directorypath Change to directory.
chmod [options] mode filename Change a file’s permissions.
chown [options] filename Change who owns a file.
clear Clear a command line screen/window for a fresh start.
cp [options] source destination Copy files and directories.
date [options] Display or set the system date and time.
df [options] Display used and available disk space.
du [options] Show how much space each file takes up.
file [options] filename Determine what type of data is within a file.
find [pathname] [expression] Search for files matching a provided pattern.
grep [options] pattern [filesname] Search files or output for a particular pattern.
kill [options] pid Stop a process. If the process refuses to stop, use kill -9 pid.
less [options] [filename] View the contents of a file one page at a time.
ln [options] source [destination] Create a shortcut.
locate filename Search a copy of your filesystem for the specified
filename.
lpr [options] Send a print job.
ls [options] List directory contents.
man [command] Display the help information for the specified command.
mkdir [options] directory Create a new directory.
mv [options] source destination Rename or move file(s) or directories.
passwd [name [password]] Change the password or allow (for the system administrator) to
change any password.
ps [options] Display a snapshot of the currently running processes.
pwd Display the pathname for the current directory.
rm [options] directory Remove (delete) file(s) and/or directories.
rmdir [options] directory Delete empty directories.
ssh [options] user@machine Remotely log in to another Linux machine, over the network.
Leave an ssh session by typing exit.
su [options] [user [arguments]] Switch to another user account.
tail [options] [filename] Display the last n lines of a file (the default is 10).
tar [options] filename Store and extract files from a tarfile (.tar) or tarball (.tar.gz or .tgz).
top Displays the resources being used on your system. Press q to
exit.
touch filename Create an empty file with the specified name.
who [options] Display who is logged on.

marți, 26 decembrie 2017

Linux - Instalare compilator C pentru Tinkerboar Armbian

Instalarea compilatorului C in Armbian (Tinkerboard) este destul de simplă. Am rulat comenzile de mai jos și am obținut ultima versiune de compilator gcc.
sudo aptitude update
sudo aptitude safe-upgrade
sudo apt-get install build-essential
sudo aptitude install ccache

Versiunea compilatorului GCC:
root@tinkerboard:/ext# gcc --version
gcc (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.5) 5.4.0 20160609
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Am facut si un test simplu cu un program care aduna doua numere:
#include "stdio.h"
int main()
{
int a, b, c;
printf("Enter two numbers to add, separated by a space: ");
scanf("%d%d",&a,&b);
c = a + b;
printf("The sum of equals %d\n",c);
return 0;
}

Compilarea codului sursa:
root@tinkerboard:/ext# gcc sum.c -o sum
root@tinkerboard:/ext# ccache gcc sum.c -o sum

Rularea programului:
root@tinkerboard:/ext# ./sum
Enter two numbers to add, separated by a space: 3 5
The sum of equals 8

Linux - Instalare server de email pentru Tinkerboar Armbian

Instalarea unui server de email pe o mașină cu sistem de operare Linux (Armbian):
sudo aptitude update
sudo aptitude safe-upgrade
sudo aptitude install apache2 apache2-doc
sudo aptitude install mysql-server php5-mysql
sudo aptitude  install postfix
sudo service postfix restart
sudo aptitude  install dovecot-imapd dovecot-pop3d
sudo service dovecot restart
sudo aptitude  install squirrelmail
sudo squirrelmail-configure
sudo cp /etc/squirrelmail/apache.conf /etc/apache2/sites-available/squirrelmail.conf
sudo a2ensite squirrelmail.conf
sudo useradd myusername1
sudo passwd myusername1
sudo mkdir -p /var/www/html/myusername
usermod -m -d /var/www/html/myusername myusername
sudo chown -R myusername1:myusername1 /var/www/html/myusername1
Dacă am adăugat comenzile de mai sus intr-un fisier sh, rezultă o singură comandă:

./php_apache_mysql_postfix_email.sh

Success!

duminică, 24 decembrie 2017

Nu sunt mândru că sunt român ... pentru că ...

Suntem conduși de 28 ani de niște bandiți comuniștoizi aleși de niște analfabeți. De 28 de ani nu suntem în stare să construim o amărâtă de autostradă. Ne tot lăudăm cu olimpicii dar de fapt aceștia se împuținează de la an la an și oricum suntem sub media europeană.  Mai bine de jumătate din populația din România are buda în fundu grădinii. Ne tot lăudăm că suntem deștepți și ospitalieri când de fapt suntem tontălăi semi-sclavi și cam fraieri. Sportul românesc e în pragul dezastrului, rar mai vezi vreun rezultat notabil (vezi ultimele olimpiade). Îmi e frică să intru în vreun spital de stat după câte orori s-au petrecut în ultimii ani.  Birocrația din instituțiile statului ar putea îmbolnăvii de nervi chiar și un preot budist. Muncitorii calificați preferă să se "prostitueze" prin vest decât să muncească în România. Pădurile României dispar văzând cu ochii și nimeni nu ridică un deget. Râurile și lacuri sunt pline de PET-uri și de cutii de bere. Orașele, străzile și marginea șoselelor sunt jegoase. Avem cel mai puțin spațiu verde (în orașe) pe cap de locuitor. Nu ai loc sa te plimbi din cauza mașinilor parcate pe trotuar. Nu mai poți trece strada pe trecerea de pietoni din cauza șoferilor grăbiți, mai deunăzi era să mă calce un bezmetic pentru că era atent la altceva, nu la condus. Doar dacă faci mare scandal (cum fac țiganii) românii te respectă. Argumentele logice sunt luate în derâdere și persiflate. Orice idee bună sau invenție este omorâtă încă din fașă. Bătaia de joc și miștocăria este la ea acasă în țărișoara asta bătută de Dumnezeu. Justiția urmează să fie aservită bandiților.. Probabil că mai sunt și alte mizerii dar nu-mi vin acum ... Ce ne mai rămâne ? Băutura, mâncatul în exces , înjurăturile și pupatul moaștelor.


vineri, 22 decembrie 2017

Formule matematice în MathJax

Formulele matematice sunt destul de greu de reprezentat în html, mai ales formulele complicate care includ caractere grecești.
M-am lovit de această problemă în momentul în care am încercat să reprezint o sumă, ceea în matematică este cunoscut caracterul grecesc Sigma mare

\( \sum{} \)

. Pentru a reprezenta foarte ușor o formulă matematică se poate folosi MathJax, care este foarte ușor de instalat și folosit în orice pagină web.
Instalare
Pas 1. Adăugați javascriptul de mai jos în interiorul tagului head.

<script type="text/javascript"  src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>


Pas 2. Syntaxa: în interiorul unui tag <p> se adaugă formula în formatul special pentru MathJax.
 <p> 
Exemplu:
\( \sum{} \) </p>

  When \(a \ne 0\), there are two solutions to \(ax^2 + bx + c = 0\) and they are
  $$x = {-b \pm \sqrt{b^2-4ac} \over 2a}.$$
Identifier List

Besides alphabetical characters, these identifiers are also usable: \sin, \cos, \tan, \cot, \arcsin,
\arccos, \arctan, \arccot, \sinh, \cosh, \tanh, \coth, \sec, \csc, \alpha, \beta, \gamma, \Gamma, \delta, \Delta, \epsilon, \varepsilon, \zeta, \eta, \theta, \vartheta, \Theta, \iota,
\kappa, \Lambda, \lambda, \mu, \nu, \xi, \Xi, \pi, \Pi, \rho, \varrho, \sigma, \Sigma, \tau, \upsilon, \Upsilon, \phi, \varphi, \Phi, \chi, \psi, \Psi, \omega, \Omega, \partial, \eth,
\hbar, \imath, \jmath, \ell, \Re, \Im, \wp, \nabla, \infty, \aleph, \beth, and \gimel. Operators List
These are the allowed operators:
+, -, =, <, >, |, %, ,, ., $, (, ), [, ], !, \leq, \geq, \ll, \gg, \subset,
\supset, \subseteq, \supseteq, \nsubseteq, \nsupseteq, \sqsubset, \sqsupset, \sqsubseteq, \sqsupseteq, \preceq, \succeq, \doteq, \equiv, \approx, \cong, \simeq, \sim, \propto,
\neq, \parallel, \asymp, \vdash, \in, \smile, \models, \perp, \prec, \sphericalangle, \nparallel, \bowtie, \dashv, \ni, \frown, \notin, \mid, \succ, \measuredangle, \pm, \div,
\times, \cdot, \mp, \ast, \star, \dagger, \ddagger, \cap, \cup, \uplus, \sqcap, \sqcup, \vee, \wedge, \diamond, \bigtriangleup, \bigtriangledown, \triangleleft, \triangleright,
\bigcirc, \bullet, \wr, \oplus, \ominus, \otimes, \odot, \circ, \setminus, \amalg, \exists, \nexists, \forall, \neg, \land, \lor, \rightarrow, \leftarrow, \mapsto, \implies, \Rightarrow,
\leftrightarrow, \iff, \Leftrightarrow, \top, \bot, \emptyset, \varnothing, \{, \uparrow, \downarrow, \|, \}, \Uparrow, \Downarrow, /, \angle, \lceil, \lfloor, \backslash,
\rangle, \rceil, and \rfloor.

Exemple:
1. Sigma mare : \( \sum{} \)
2. Delta \( \delta{} \)


3. When \(a \ne 0\), there are two solutions to \(ax^2 + bx + c = 0\) and they are $$x = {-b \pm \sqrt{b^2-4ac} \over 2a}.$$
Pas 3. Enjoy Math :D ! Integrarea si informatii despre sintaxa le găsiți aici MathJaxDoc. Un editor pentru MathJax am gasit pearachnoid.com/latex

Sursa de tensiune liniară (bazat pe LM317) - cu transformator TS 70/16 (16.6 V / 2 A) si afisor de tensiune (10) - Finalizat

Ca urmare a unui incident, sursa mea de tensiune liniara a avut nevoie de o reparație, astfel am decis să-i montez senzorul de tensiune și curent INA219 pe care l-am testat într-un mini proiect din octombrie. Tensiunea afișată este pentru al doilea rând de conectori (-/+) de la stânga la dreapta(vezi în imaginea de mai jos). Primi doi conectori (-/+) (tot de la stânga la dreapta) îmi dau 9 V, următorii doi 0 - 12 V, apoi iar 9 V și ultimii 0 - 18 V.
Codul sursă adaptat pentru un afișor 16x2:
#include "Wire.h"
// include the library code:
#include "LiquidCrystal.h"
#include "Adafruit_INA219.h"

Adafruit_INA219 ina219;
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

#if defined(ARDUINO_ARCH_SAMD)
// for Zero, output on USB Serial console, remove line below if using programming port to program the Zero!
   #define Serial SerialUSB
#endif

void setup(void) 
{
  #ifndef ESP8266
    while (!Serial);     // will pause Zero, Leonardo, etc until serial console opens
  #endif
  uint32_t currentFrequency;
    
  Serial.begin(9600);
  Serial.println("Hello!");
   // set up the LCD's number of columns and rows: 
  lcd.begin(16, 2);
  // Print a message to the LCD.
  lcd.print("Voltmetru");
  
  // Initialize the INA219.
  // By default the initialization will use the largest range (32V, 2A).  However
  // you can call a setCalibration function to change this range (see comments).
  ina219.begin();
  // To use a slightly lower 32V, 1A range (higher precision on amps):
  ina219.setCalibration_32V_1A();
  // Or to use a lower 16V, 400mA range (higher precision on volts and amps):
  //ina219.setCalibration_16V_400mA();

  lcd.print("Measuring voltage and current with INA219 ...");
}

void loop(void) 
{
  String lcd_buffer;
  float shuntvoltage = 0.0f;
  float busvoltage = 0.0f;
  float current_mA = 0.0f;
  float current_A = 0.0f;
  float power = 0.0f;
  
  shuntvoltage = ina219.getShuntVoltage_mV();
  busvoltage = ina219.getBusVoltage_V();
  current_mA = ina219.getCurrent_mA();
  current_A = ina219.getCurrent_mA()/1000.0;
  power = busvoltage * (current_mA/1000.0); // Calculate the Power
  
  lcd.setCursor(0, 0);
  lcd.print("Volts:");
  lcd.print(busvoltage,1); 
  lcd.print("V      ");
  
  lcd.setCursor(0, 1);
  lcd.print("C:");
  lcd.print(current_A,1); 
  lcd.print("A");
  lcd.print(" P:");
  lcd.print(power,1); 
  lcd.print("W  ");

  delay(1000);
}
Merge brici ! Weekend plăcut și Sărbători fericite !

miercuri, 29 noiembrie 2017

Tinker board setup si review

Am cumpărat de black friday un nou gadget pentru rețeaua mea. Din păcate nu am fost prea mulțumit de ea. Are nevoie de o sursă de alimentare mai ciudățică, 5.1 V si 2.5 A cumpărată de pe robofun.ro, care se pare ca este și sursa oficială pentru Raspberry Pi3.  În prima fază am crezut că o sursă de 5 V și 2 A va funcționa suficient de bine, dar nu a fost sa fie, placa se reseta din 10 in 10 secunde. ASUS Tinkerboard este o placă clonă după Raspberry Pi3.
După ce am conectat sursa potrivită, placa a funcționat relativ bine. I-am instalat Kodi  în speranța că o să pot rula filme 4K, dar am fost profund dezamăgit după ce temperatura procesorului a ajuns la 90 C și a început să se reseteze ...😥. Probabil o să trebuiască să-i instalez un ventilator... patetic ...
Am încercat apoi un sistem de operare mai optimizat, să nu se mai încingă și am instalat Armbian cu care merge destul de bine.

Specificații Hardware ASUS Tinkerboard

PROCESOR

CPU Socket N/A
Chipset Rockchip
Procesoare suportate Rockchip
Viteza maxima procesor (GHz) 1.8

MEMORIE

Tip memorie DDR
Capacitate maxima memorie RAM (MB) 2048
Suport Dual chanel Nu
Suport ECC Nu
Sloturi memorie 1

CONECTIVITATE

Audio integrat Da
LAN integrat Ethernet 10/100/1000
Video integrat APU
Porturi USB 2.0 4
Conectivitate 1 x HDMI 2.0, 1 x LAN Gigabit, 4 x USB 2.0, 1 x CSI, 1 x DSI, 40 x GPIO, 1 x Jack 3.5mm

SLOTURI

Sloturi speciale 1 x CSI, 1 x DSI

ALTELE

BIOS & memorie BIOS Nu
Format Raspberry Pi
Altele Wi-Fi si Bluetooth incorporate, redare video 4K si audio 24 biti/192 KHz
Dimensiuni (L x l, cm) 8.56 x 5.65

Față - placa vine echipata cu un radiator:


Componentele:




Spate unde se observa 2GB DDR3 RAM si slotul de microSD:





Instalare System de operare:

1. Descarcă imaginea sistemului de operare Armbian OS
2. Scrie imaginea pe un microSD (minim 16 Gb) folosind Etcher

3. Login cu Putty pentru a schimba parola de root si pentru a activa serverul vnc

4. Conectarea prin intermediul Remote desktop



Probabil o sa folosesc această placă pentru un server multimedia , imprimantă și cloud. Un alt plan ar fi să conectez vreo câțiva senzori .

Pro: Performanțe foarte bune
Contra:
- Se încinge foarte repede
- foarte probabil o să aibă nevoie de un ventilator
- e mai scumpă decât un  RaspberryPi3 și mai pretențioasă

Nu recomand.👎

O seară faină tuturor !

luni, 13 noiembrie 2017

Imprimanta 3D (7) - Sistem de răcire

Imprimanta mea 3D a suferit un proces de upgrade weekendul ăsta. I-am montat un dispozitiv de răcire a pieselor. Sistemul are în componenta o suflanta, un ventilator de 40 mm și un sistem de prindere de motorul NEMA17.

Vedere din partea stângă și ventilatorul :

Suflanta este învelita în folie rezistentă la temperatură înaltă:

 Vedere din partea dreptă:

Vedere completă:
Răcirea se poate controla din aplicația Repetier-Host (marcat cu galben).

Rezultatele sunt foarte bune și din câte am observat nu este afectata mișcarea extruderului.
Modelele făcute de mine:
https://www.thingiverse.com/thing:2643177
https://www.thingiverse.com/thing:2643166

Modelul suflantei este preluat de aici:
https://www.thingiverse.com/thing:746030

O seară plăcută tuturor !

Black Friday - Listă secretă


Lista scurtă secretă:

1. Raspbery Pi3
2. AMD Ryzen
3. SSD Samsung 250GB
4. Masa de ping pong

marți, 17 octombrie 2017

Modele pentru 3D printer


Mai nou am descoperit un nou site de design. Mi-am creat un cont și m-am pus pe treabă :D
Pagina mea este: https://www.tinkercad.com/users/6MBp68Fj5g3-simedruflorin

Interfața din tinkercad este simplă , intuitivă și conține deja o gramadă de forme geometrice de bază care pot fi folosite în construirea unor alte modele mai complexe.


În plus am împărtășit modelele create de mine și pe thingverse.
https://www.thingiverse.com/thing:2571046
https://www.thingiverse.com/thing:2562025
https://www.thingiverse.com/thing:2571040
https://www.thingiverse.com/thing:2560537


O seară faină tuturor !

vineri, 13 octombrie 2017

Mini proiectul de vineri (5) - Măsurarea tensiunii si curentului cu INA219

Pentru cei interesati de măsurarea tensiunii si curentului cu placa INA219 am realizat un montaj simplu de test. În imaginile de mai jos se văd legăturile. Totul este foarte simplificat de SENZORul BIDIRECTIONAL DE CURENT SI TENSIUNE I2C INA219. Acest senzor o sa-l folosesc mai departe la monitorizarea bateriei pentru drona.





Montajul în ansamblu:

Conexiunile la Arduino Mega2560

Conexiunile la breadboard:

Pe monitor se vad valorile măsurate:

Schemele in Eagle ale senzorului le găsiți pe acest site: Adafruit-INA219-Current-Sensor-PCB

Codul de test:
#include "Wire.h"
#include "Adafruit_INA219.h" // You will need to download this library

Adafruit_INA219 sensor219(0x40); // Declare and instance of INA219

void setup(void) 
{
      
  Serial.begin(9600);    
  sensor219.begin();
  
}

void loop(void) 
{
  float busVoltage = 0;
  float current = 0; // Measure in milli amps
  float power = 0;

  busVoltage = sensor219.getBusVoltage_V();
  current = sensor219.getCurrent_mA();
  power = busVoltage * (current/1000); // Calculate the Power
  
  
  Serial.print("Bus Voltage:   "); 
  Serial.print(busVoltage); 
  Serial.println(" V");  
  
  Serial.print("Current:       "); 
  Serial.print(current); 
  Serial.println(" mA");
  
  Serial.print("Power:         "); 
  Serial.print(power); 
  Serial.println(" W");  
  
  Serial.println("");  

  delay(2000);
}
M-am inspirat de pe urmatoarele site-uri:
Adafruit-ina219-current-sensor-breakout
Ina219-arduino-current-sensor-voltmeter-tutorial-quick-start
Weekend plăcut tuturor!

duminică, 12 martie 2017

Quadcopter (7) - Cum se foloseste HC-06 cu DroidPlanner

După o muncă intensă de ... câteva .. ore :)  am reușit să conectez drona la telefonul mobil prin intermediul bluetooth. Din punct de vedere al conexiunii a trebuit să lipesc un divizor de tensiune pentru pinul de Rx al modulului HC-06 pentru a reduce tensiunea de la HKPilot de 5v la 3.3V.


Micro HKPilot Mega -  HC06
Rx                               ->Tx
Tx               -> divizor -> Rx




Am instalat DroidPlanner  și am configurat conexiunea cu modulul bluetooth conectat la drona.

Instrucțiunile pentru MissionPlanner se potrivesc și pentru DroidPlanner:
http://ardupilot.org/copter/docs/common-mission-planner-bluetooth-connectivity.html?highlight=bluetooth

Pentru alte detalii legate de bluetooth am găsit o pagina foarte bine pusă la punct:
https://mcuoneclipse.com/2013/06/19/using-the-hc-06-bluetooth-module/

Conexiunea bluetooth HC-06:

Connexiunea cu telefonul mobil:

Drona se poate arma, iar după decolare se poate aduce în siguranță la sol din DroidPlanner:


Funcționează mai bine decât mă așteptam ...

Weekend plăcut tuturor!

luni, 6 martie 2017

Quadcopter (6) - Configurare bluetooth HC-06

Scopul acestui post este de a configura și testa modulul bluetooth HC06.

Materiale studiate :D



Prin intermediul modului Modul USB to TTL RS232 converter UART CH340 3.3V 5V am conectat modulul bluethoot HC06 si l-am configurat la 57600.

Comenzi au fost trimise cu copy paste in Arduino COM serial monitor. 


Frecvente de lucru posibile:
1 --------- 1200
2 --------- 2400
3 --------- 4800
4 --------- 9600
5 --------- 19200
6 --------- 38400
7 --------- 57600
8 --------- 115200
9 --------- 230400
A --------- 460800
B --------- 921600
C --------- 1382400


AT
OK

AT+VERSION
OKLinvorV1.8


AT+BAUD7
OK
57600


AT+PIN1234

OK1234

AT+NAMEBlueBolt
OKsetname



Codul de test:
/*
* Bluetooh Basic: LED ON OFF - Avishkar
* Coder - Mayoogh Girish
* Website - http://bit.do/Avishkar
* Download the App : https://github.com/Mayoogh/Arduino-Bluetooth-Basic
* This program lets you to control a LED on pin 13 of arduino using a bluetooth module
*/
char data = 0;            //Variable for storing received data
void setup()
{
    Serial.begin(57600);   //Sets the baud for serial data transmission                               
    pinMode(13, OUTPUT);  //Sets digital pin 13 as output pin
}
void loop()
{
   if(Serial.available() > 0)      // Send data only when you receive data:
   {
      data = Serial.read();        //Read the incoming data & store into data
      Serial.print(data);          //Print Value inside data in Serial monitor
      Serial.print("\n");        
      if(data == '1')              // Checks whether value of data is equal to 1
         digitalWrite(13, HIGH);   //If value is 1 then LED turns ON
      else if(data == '0')         //  Checks whether value of data is equal to 0
         digitalWrite(13, LOW);    //If value is 0 then LED turns OFF
   }
}

Testul a constat în conectarea la modulul bluetooth folosind telefonul mobil, apoi am trimis 0 sau 1 în funcție de butonul apăsat în aplicația Arduino bluetooth. In cazul în care se primește 1 atunci se aprinde LED-ul conectat la pinul 13, iar când se primește 0 atunci se stinge. 

Circuit și rezultat:
 


Merge foarte bine :)

O seara frumoasa tuturor!