Table des matières:
- Étape 1: Composants en plastique
- Étape 2: Décomposition des composants non imprimés en 3D
- Étape 3: Électronique
- Étape 4: Assemblage
- Étape 5: Coder
- Étape 6: Fichiers
Vidéo: Un chargeur de téléphone automatique : 6 étapes (avec photos)
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:09
"Cette instructable a été créée pour répondre aux exigences du projet Makecourse à l'Université de Floride du Sud (www.makecourse.com)"
L'idée derrière ce projet était de créer un appareil capable de charger un téléphone, puis de le débrancher lorsque le téléphone atteint 100%. Cela arrêterait les problèmes de surcharge.
Étape 1: Composants en plastique
Certains composants utilisés ont été imprimés en 3D. Ces composants comprenaient une base, un support pour le chargeur, un ensemble d'engrenages à crémaillère (un engrenage normal et une pièce linéaire qui change la rotation en mouvement linéaire) et une base pour que tout fonctionne. Ces composants seront expliqués dans les paragraphes suivants. Par ordre d'apparition
Support de chargeur
Le but de ceci est de tenir le chargeur du téléphone, ou au moins de lui donner une base meilleure et de niveau.
Base
La base a des anneaux pour le support de téléphone ainsi qu'une piste pour le train d'engrenages.
Support de téléphone
Tient le téléphone, évidemment
Bras de téléphone
Déplace et tient le téléphone
Ensemble d'engrenages à crémaillère et pignon
Utilisé pour déplacer le chargeur de téléphone d'avant en arrière
Étape 2: Décomposition des composants non imprimés en 3D
Ce sont les composants qui ont été soit achetés pour le projet, soit déjà possédés. Pour certaines des pièces, je leur ai lié/des articles similaires sur amazon, mais n'hésitez pas à les acquérir n'importe où.
Micro Servo:
Servo standard 0-180:
Module série Bluetooth HC-05:
Téléphone et chargeur de téléphone
Arduino
Planche à pain
Boîte ou bac pour socle
Capteur tactile:
Étape 3: Électronique
Le circuit de ce projet peut cependant en nécessiter, principalement à cause du module HC-05. La plupart des modules de ce type ont un taux d'environ 3,3 V à 6 V, ce qui se situe dans la plage de fonctionnement de l'Arduino. Mais, pour la communication série, la broche Rx fonctionne parfois mieux avec seulement 3,3 V. Comme le montre le schéma ci-dessus, les deux servos sont connectés à la broche Vin de l'Arduino. Cette tension supplémentaire peut être fournie par n'importe quoi, j'ai utilisé une batterie de 9 volts. Le capteur tactile était branché sur le 5V de l'Arduino. C'était parce que tous les composants avaient du mal à fonctionner avec la même tension. Le capteur tactile est attaché à la broche 2 afin qu'il puisse être utilisé comme une interruption de broche. Ensuite, le module Bluetooth est connecté aux broches Rx et Tx pour la communication série. Entre la broche Rx du module et Tx de l'Arduino se trouve une résistance de 2 kilo ohms avec une connexion de 1 kilo ohm à la terre. Cela permet de réguler la tension d'entrée.
Étape 4: Assemblage
Le montage est assez simple.
- avec de la super colle, montez vos servos dans leurs positions, un pour l'engrenage par la découpe sur la base et un près de l'endroit où se trouve la base du téléphone.
- Fixez le capteur tactile au support du téléphone pour qu'il sache quand le téléphone est là.
- Fixez ensuite l'engrenage et le bras à leurs servos respectifs
- Assurez-vous que les fils n'interfèrent pas avec d'autres composants lorsque vous remplissez vos appareils électroniques.
Étape 5: Coder
Trois jeux de code seront présentés, un code pour l'Arduino, qui a été créé dans l'IDE Arduino et deux codes qui ont été créés dans Android Studio. Les applications Android sont les mêmes, sauf que l'une est l'application complète qui suit la durée de vie de la batterie et l'autre non. Le second est à des fins de test.
Code Arduino
Le point principal de ce code est de faire fonctionner le capteur tactile et les moteurs, il reçoit une commande du téléphone et agit en conséquence.
#include // appelle la bibliothèque de servos afin que nous puissions contrôler les deux servosServo servo1; Servo servo2;//crée deux objets servo pour chaque servomoteur int a=0;//variable de suivi pour tester int q=0;//une variable qui permet d'avoir un délai avant que le processus de branchement ne commence char c;// variable qui contient le message série du téléphone void setup() { attachInterrupt(digitalPinToInterrupt(2), AH, FALLING);// attache une interruption en chute pour savoir exactement quand le capteur tactile voit quand le téléphone est sur servo1.attach (dix); servo2.attach(9);// initialise les deux servos Serial.begin(9600);// commence la communication série à une vitesse similaire à celle du module bluetooth servo2.write(20);//auto règle les servos sur une position de départ servo1.write(180); }
boucle vide() {
if (Serial.available()){// ceci vérifie s'il y a quelque chose qui entre du téléphone via les broches série Tx et Rx c=Serial.read(); // lit ce qui vient de if (c== 't'){//si le périphérique série lit à alors cela signifie que le téléphone est complètement chargé, le processus de débranchement commence servo2.write(120);//débranche le délai du chargeur (5000);//attend de s'assurer il y a du temps pour le retrait servo1.write(110);//met le téléphone en position verticale pour signaler //Serial.println("ici"); attachInterrupt(digitalPinToInterrupt(2), AH, FALLING);//rattache l'interruption } } if (q==1){//si la condition pour le branchement est ture alors commencez par attacher le délai du chargeur (10000); servo2.write(0);//déplace le servo en position q=0;//réinitialise la condition } }
vide AH(){
//Série.println("in"); servo1.write(180);// dépose la plate-forme téléphonique dans la position de charge q=1;// démarre la condition pour continuer le processus //a=1; detachInterrupt (digitalPinToInterrupt(2));//détache l'interruption, de sorte qu'il n'y aura aucun problème avec le démarrage de l'interruption alors qu'elle ne devrait pas }
Application Android
Ici, je n'afficherai que l'application appropriée mais le fichier de code de test sera également fourni, la seule différence sera la suppression de la classe exécutable et getBattery. Le code de série mentionné est celui qui est standard pour les téléphones se connectant à des appareils comme le module.
paquet com.example.daniel.make; importer android.bluetooth. BluetoothAdapter; importer android.bluetooth. BluetoothDevice; importer android.bluetooth. BluetoothSocket; importer android.os. Handler; importer android.support.v7.app. AppCompatActivity; importer android.os. Bundle; importer android.content. Intent; importer android.content. IntentFilter; importer android.os. BatteryManager; importer java.io. IOException; importer java.io. OutputStream; importer java.util. Set; importer java.util. UUID;
la classe publique MainActivity étend AppCompatActivity {
// création d'objets nécessaires Handler handler;//aide avec la boucle Runnable runnable;//s'exécute en continu BluetoothAdapter mBluetoothAdapter; BluetoothSocket mmSocket; Périphérique Bluetooth mmPériphérique; OutputStream mmOutputStream; volatil booléen stopWorker; privé OutputStream outputStream; chaîne finale privée DEVICE_NAME="HC-05"; UUID final privé PORT_UUID=UUID.fromString("00001101-0000-1000-8000-00805f9b34fb"); appareil BluetoothAdapter privé; prise BluetoothSocket privée; @Override protected void onCreate(Bundle saveInstanceState) {//est un ensemble d'instructions qui s'exécutent lorsque l'application est créée super.onCreate(savedInstanceState);//displya creation setContentView(R.layout.activity_main); runnable = new Runnable() { @Override public void run() {//s'exécute à plusieurs reprises int level = (int) getBattery();// obtient le niveau de batterie actuel si (level==100){//si le niveau de batterie atteint 100% try { getBT();//se connecte au module bluetooth openBT();//l'ouvre sendData();//envoie les données nécessaires closeBT();//ferme l'objet } catch (IOException ex) { } } handler.postDelayed(exécutable, 5000);//un délai } }; gestionnaire = nouveau Gestionnaire(); handler.postDelayed(exécutable, 0); }
flotteur public getBattery() {
Intent batteryIntent= registerReceiver(null, new IntentFilter(Intent. ACTION_BATTERY_CHANGED));// crée l'action qui se connecte à la batterie int level = batteryIntent.getIntExtra(BatteryManager. EXTRA_LEVEL, -1); // obtient le niveau supérieur int scale = batteryIntent.getIntExtra(BatteryManager. EXTRA_SCALE, -1); // obtient l'échelle de la batterie if (level == -1 || scale == -1) {//en cas de faux pas return 50.0f; } float batt = (level/(float)scale)*100.0f;// obtient la bonne balance de retour de batt; // renvoie le niveau }
void getBT(){// obtient les connexions Bluetooth possibles
mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();// obtient l'adaptateur if(!mBluetoothAdapter.isEnabled()) {// s'assure que le téléphone a la dent bleue sur l'intention enableBluetooth = new Intent(BluetoothAdapter. ACTION_REQUEST_ENABLE);//demande qu'il soit activé sinon startActivityForResult(enableBluetooth, 0); } Set pairedDevices = mBluetoothAdapter.getBondedDevices();// obtient la liste des Bluetooth liés if(pairedDevices.size() > 0) {//s'assure qu'il y a des périphériques pour (BluetoothDevice device: pairedDevices) {//boucles à travers le devices if(device.getName().equals("HC-05")) {//vérifie si c'est le bon mmDevice = device;//sauvegarde la cassure; } } } }
void openBT() lève IOException {
UUID uuid = UUID.fromString ("00001101-0000-1000-8000-00805f9b34fb"); //Standard //SerialPortService ID mmSocket = mmDevice.createRfcommSocketToServiceRecord(uuid);//se connecte à l'appareil avec l'ID approprié mmSocket.connect();//connecte mmOutputStream = mmSocket.getOutputStream();//démarre la possibilité d'envoyer données au module arduino }
void sendData() lève IOException {//class qui envoie le t à l'arduino
mmOutputStream.write('t'); }
void closeBT () lève IOException {// ferme toutes les connexions à l'arduino
stopWorker = vrai; mmOutputStream.close(); mmSocket.close(); } }
Étape 6: Fichiers
Merci d'avoir lu, ci-joint les fichiers qui ont été utilisés dans ce projet
Conseillé:
Chargeur de téléphone alimenté par vélo : 6 étapes (avec photos)
Chargeur de téléphone alimenté par vélo : il s'agit d'un chargeur de téléphone alimenté par vélo qui est bon marché, imprimable en 3D, facile à fabriquer et à installer, et le chargeur de téléphone est universel. C'est une chose utile à avoir si vous faites beaucoup de vélo et que vous avez besoin de recharger votre téléphone. Le chargeur a été conçu et construit
Chargeur de téléphone Iron Throne : 17 étapes (avec photos)
Chargeur de téléphone Iron Throne : je suis tellement excité à propos de la sortie de la 7e saison de Game of Thrones, j'ai dû faire un projet connexe - un chargeur de téléphone Iron Throne
Chargeur solaire USB facile de 5 minutes/chargeur USB de survie : 6 étapes (avec photos)
Chargeur solaire USB facile de 5 minutes/chargeur USB de survie : Bonjour les gars ! Aujourd'hui, je viens de fabriquer (probablement) le chargeur de panneau solaire usb le plus simple ! Tout d'abord, je suis désolé de ne pas avoir téléchargé d'instructions pour vous les gars. Mais
Chargeur de téléphone de voiture Wiggle-Loose-Be-Gone: 4 étapes (avec photos)
Chargeur de téléphone de voiture Wiggle-Loose-Be-Gone : Voici un moyen simple de garder vos chargeurs de voiture branchés sur votre véhicule; mettez du ruban adhésif au bout avant de le brancher
VESTE SOLAIRE DIY (chargeur de téléphone USB): 9 étapes (avec photos)
VESTE SOLAIRE DIY (chargeur de téléphone USB) : une veste et un sac de recharge de téléphone solaire très simples et faciles à bricoler que même vous pouvez fabriquer à la maison. charge votre téléphone pour fournir le jus dont vous avez besoin en cas d'urgence pour une vue détaillée projet n'oubliez pas de vérifier ceci ou